On 20/12/2024 20:31, Dave Hansen wrote: > On 12/20/24 02:58, Kevin Brodsky wrote: >>> One super tiny nit is that the PAE pgd _can_ be allocated using >>> __get_free_pages(). It was originally there for Xen, but I think it's >>> being used for PTI only at this point and the comments are wrong-ish. >>> >>> I kinda think we should just get rid of the 32-bit kmem_cache entirely. >> That would certainly simplify things on the x86 side! I'm not at all >> familiar with that code though, would you be happy with providing a >> patch? I could add it to this series if that's convenient. > I hacked this together yesterday: > >> https://git.kernel.org/pub/scm/linux/kernel/git/daveh/devel.git/log/?h=simplify-pae-20241220 > It definitely needs some more work. I'm particularly still puzzling > about why SHARED_KERNEL_PMD is used both as a trigger for 32b vs. > PAGE_SIZE PAE pgd allocations _and_ for the actual PMD sharing. > > Xen definitely needed the whole page behavior but I'm not sure why PTI did. > > Either way, that series should make the PAE PGDs a _bit_ less weird at > the cost of an extra ~2 pages per process for folks who are running > 32-bit PAE kernels with PTI disabled. > > But I think the diffstat is worth it: > > 5 files changed, 16 insertions(+), 96 deletions(-) That does look like a nice simplification! After the first patch, with my series, we could get rid of _pgd_alloc() and _pgd_free() in arch/x86/mm/pgtable.c and just call __pgd_alloc() and __pgd_free() directly. Considering that these changes are not trivial and may need more work, should I let you post those patches as a separate series? If it gets merged soon, I'll adapt my series, otherwise I can post a follow-up patch later if needed. - Kevin