Skip to content

Conversation

dancrossnyc
Copy link
Contributor

This prototypes support for self-referential mappings by making use of pseudo-recursive page tables. These are "standard" page tables, but we allocate some portion of the address space they define to what we call "the recursive region". We then map the page tables that make up the non-recursive regions of the address space into the recursive region, using addresses derived from the addresses those tables map.

This prototypes support for self-referential mappings by making
use of pseudo-recursive page tables.  These are "standard" page
tables, but we allocate some portion of the address space they
define to what we call "the recursive region".  We then map the
page tables that make up the non-recursive regions of the
address space into the recursive region, using addresses derived
from the addresses those tables map.

These maps are set up early in boot, before entry to main, when
setting up the mapping for the per-node data and per-CPU Mach
structure for ccNUMA node 0 and CPU 0, respectively.

Signed-off-by: Dan Cross <cross@gajendra.net>
@dancrossnyc dancrossnyc merged commit 9dd6806 into main Oct 10, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants