Page faults - are they performed Synchronously?

I’m wondering if all page faults are preformed (meant to be performed)
Synchronously?
By saying “all page faults”, I mean for those caused by a virtual address
not present in physical memory (either since it was a missing page for an
executable file, data file or a page that was swapped out of memory).

My second question is: do all page faults create IRP’s, or can they use the
FAST_IO method?

Many thanks, Alon.

Yes, page faults are synchronous, as the thread that faulted can not very
well continue executing untill the data it tried to access is brought
in. It would be nice though if there was a way to request that a given
block of memory be asynchronously paged in and locked, but if there is one,
I have not found it.

I’m not sure about the fastio. The use of fastio is to perform operations
on cached data. I don’t think that a page can be in the filesystem cache,
and not be in a process memory space that needs it. I am prety sure that
if the page is maped into the filesystem cache, that it will be shared with
the process that explicitly maps it, and so a fastio request for paging IO
does not make much sense…

At 08:36 AM 4/9/00 +0000, you wrote:

I’m wondering if all page faults are preformed (meant to be performed)
Synchronously?
By saying “all page faults”, I mean for those caused by a virtual address
not present in physical memory (either since it was a missing page for an
executable file, data file or a page that was swapped out of memory).

My second question is: do all page faults create IRP’s, or can they use the
FAST_IO method?

Many thanks, Alon.


You are currently subscribed to ntfsd as: xxxxx@iag.net
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

Page faults never go through the fastio path, they always generate IRPs.

Neal Christiansen

-----Original Message-----
From: Phillip Susi [mailto:xxxxx@iag.net]
Sent: Saturday, April 08, 2000 9:09 PM
To: File Systems Developers
Subject: [ntfsd] Re: Page faults - are they performed Synchronously?

Yes, page faults are synchronous, as the thread that faulted can not very
well continue executing untill the data it tried to access is brought
in. It would be nice though if there was a way to request that a given
block of memory be asynchronously paged in and locked, but if there is one,
I have not found it.

I’m not sure about the fastio. The use of fastio is to perform operations
on cached data. I don’t think that a page can be in the filesystem cache,
and not be in a process memory space that needs it. I am prety sure that
if the page is maped into the filesystem cache, that it will be shared with
the process that explicitly maps it, and so a fastio request for paging IO
does not make much sense…

At 08:36 AM 4/9/00 +0000, you wrote:

I’m wondering if all page faults are preformed (meant to be performed)
Synchronously?
By saying “all page faults”, I mean for those caused by a virtual address
not present in physical memory (either since it was a missing page for an
executable file, data file or a page that was swapped out of memory).

My second question is: do all page faults create IRP’s, or can they use the
FAST_IO method?

Many thanks, Alon.


You are currently subscribed to ntfsd as: xxxxx@iag.net
To unsubscribe send a blank email to $subst(‘Email.Unsub’)


You are currently subscribed to ntfsd as: xxxxx@Exchange.Microsoft.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)