HomeFreeBSD

Simplify flow of pmap_demote_pde_locked() and add more comprehensive

Description

Simplify flow of pmap_demote_pde_locked() and add more comprehensive
debugging checks.

In particular,

  • Move the code to handle failure to allocate page table page into a helper.
  • After the previous item is done, it is possible to distinguish !PG_A case and case of missed page, in the control flow.
  • Make the variable to indicate that in-kernel mapping is demoted.
  • Assert that missed page table page can only happen for in-kernel mapping when demoting direct map.
  • If DIAGNOSTIC is enabled, and the page table page should be already filled, check all ptes instead of only first one.

Reviewed by: alc, markj
Tested by: pho (previous version)
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D20266

Details

Provenance
kibAuthored on
Reviewer
alc
Differential Revision
D20266: Simplify flow of pmap_demote_pde_locked() and add more comprehensive debugging checks.
Parents
rS348475: Add 11.3-BETA2.
Branches
Unknown
Tags
Unknown