On 11/25/24 10:53, David Woodhouse wrote: >> I think we have a lot of software-available space in the page table >> pointer entries. What would folks think if we set a special bit in those >> p4d entries that said: >> >> "I don't need to be propagated to >> the user portion of the page tables." >> >> It would obviously get set in this code that you're trying to fix. It >> might _also_ be able to be set in in "_USR", like here: >> >> #define _KERNPG_TABLE_NOENC (__PP|__RW| 0|___A| 0|___D| 0| 0) >> #define _PAGE_TABLE_NOENC (__PP|__RW|_USR|___A| 0|___D| 0| 0) >> >> like: >> >> #define _USR _PAGE_USER|_PAGE_SW_WHATEVER > In fact, do we even need a separate bit? Any PTE without the _PAGE_USER > bit set clearly doesn't need to be mirrored into the user page > tables...? I can't think of any exceptions where this would break off the top of my head. It seems too simple to work. ;)