Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTFSD
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Page faults - are they performed Synchronously?

OSR_Community_UserOSR_Community_User Member Posts: 110,217
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.

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    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: [email protected]
    >To unsubscribe send a blank email to $subst('Email.Unsub')
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Page faults never go through the fastio path, they always generate IRPs.

    Neal Christiansen

    -----Original Message-----
    From: Phillip Susi [mailto:[email protected]]
    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: [email protected]
    >To unsubscribe send a blank email to $subst('Email.Unsub')


    ---
    You are currently subscribed to ntfsd as: [email protected]
    To unsubscribe send a blank email to $subst('Email.Unsub')
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Writing WDF Drivers 7 Dec 2020 LIVE ONLINE
Internals & Software Drivers 25 Jan 2021 LIVE ONLINE
Developing Minifilters 8 March 2021 LIVE ONLINE