Message ID | 20230105101844.1893104-40-jthoughton@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Based on latest mm-unstable (85b44c25cd1e). | expand |
On Thu, Jan 5, 2023 at 5:19 AM James Houghton <jthoughton@google.com> wrote: > > Now that HGM is fully supported for GENERAL_HUGETLB, x86 can enable it. > The x86 KVM MMU already properly handles HugeTLB HGM pages (it does a > page table walk to determine which size to use in the second-stage page > table instead of, for example, checking vma_mmu_pagesize, like arm64 > does). > > We could also enable HugeTLB HGM for arm (32-bit) at this point, as it > also uses GENERAL_HUGETLB and I don't see anything else that is needed > for it. However, I haven't tested on arm at all, so I won't enable it. Given that we are using a high bit for VM_HUGETLB_HGM, we can only support 64-bit architectures. Userfaultfd minor faults is limited to 64-bit architectures for the same reason: VM_UFFD_MINOR uses a bit. > > Signed-off-by: James Houghton <jthoughton@google.com> > --- > arch/x86/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index 3604074a878b..3d08cd45549c 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -126,6 +126,7 @@ config X86 > select ARCH_WANT_GENERAL_HUGETLB > select ARCH_WANT_HUGE_PMD_SHARE > select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP if X86_64 > + select ARCH_WANT_HUGETLB_HIGH_GRANULARITY_MAPPING This needs `if X86_64` at the end. Will be corrected for v2. > select ARCH_WANT_LD_ORPHAN_WARN > select ARCH_WANTS_THP_SWAP if X86_64 > select ARCH_HAS_PARANOID_L1D_FLUSH > -- > 2.39.0.314.g84b9a713c41-goog >
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 3604074a878b..3d08cd45549c 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -126,6 +126,7 @@ config X86 select ARCH_WANT_GENERAL_HUGETLB select ARCH_WANT_HUGE_PMD_SHARE select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP if X86_64 + select ARCH_WANT_HUGETLB_HIGH_GRANULARITY_MAPPING select ARCH_WANT_LD_ORPHAN_WARN select ARCH_WANTS_THP_SWAP if X86_64 select ARCH_HAS_PARANOID_L1D_FLUSH
Now that HGM is fully supported for GENERAL_HUGETLB, x86 can enable it. The x86 KVM MMU already properly handles HugeTLB HGM pages (it does a page table walk to determine which size to use in the second-stage page table instead of, for example, checking vma_mmu_pagesize, like arm64 does). We could also enable HugeTLB HGM for arm (32-bit) at this point, as it also uses GENERAL_HUGETLB and I don't see anything else that is needed for it. However, I haven't tested on arm at all, so I won't enable it. Signed-off-by: James Houghton <jthoughton@google.com> --- arch/x86/Kconfig | 1 + 1 file changed, 1 insertion(+)