Revision history   OpenPOWER Library

 B.4.1. Page Fault

 A page fault occurs when the requested data is not located in memory. Below are the steps leading up to a page fault and how the fault is resolved. A page fault is in the data storage class of faults.

  1. The PSL successfully converts the effective address (EA) to a virtual address (VA).

  2. The PSL is unable to locate a hardware page table entry for converting the VA into a real address (RA).

  3. The PSL sets the appropriate state in the PSL_DSISR_An Register (PSL_DSISR_An[DM,M]) and sends an interrupt to the associated operating system using LISN0.

  4. The operating system determines that the page is not resident in memory and writes the PSL_TFC_An[C] bit to a '1' to indicate the translation is not resolved.

  5. The PSL sends an acknowledgment to the AFU indicating that the requested virtual memory is paged out and not available at this time.

  6. The AFU sends a notification either through pinned shared memory or an interrupt to the corresponding application requesting that the page be touched to cause it to be paged back into memory.

  7. The AFU either saves the context and yields the remaining context interval or continues with another request.

  8. The application performs a touch of the page that causes a page fault and invokes the normal operating system paging mechanism.

  9. When the page fault is resolved (that is, the requested page is in memory), the application notifies the AFU to continue with the corresponding request.

    Note: A possible implementation is for the operating system to schedule the page to be re-installed when receiving the PSL's interrupt. In this case, there needs to be a mechanism for the operating system to notify the corresponding process so that the AFU can be notified to retry the operation. The definition of this mechanism is outside the scope of the CAIA.


loading table of contents...