Hello, This series brings HugeTLB pages and Transparent Huge Pages (THP) to ARM on short descriptors. We use a pair of 1MB sections to represent a 2MB huge page. Both HugeTLB and THP entries are represented by PMDs with the same bit layout. The short descriptor page table manipulation code on ARM makes a distinction between Linux and hardware ptes and performs the necessary translation in the assembler pte setter functions. The huge page code instead manipulates the hardware entries directly. There is one small bit of translation that takes place to populate an appropriate pgprot_t value for the VMA containing the huge page. Once we have that pgprot_t, we can manipulate huge ptes/pmds as normal with the bit and modify funcs. In order to be able to manipulate huge ptes directly, I've introduced three new manipulation functions: huge_pte_page, huge_present and huge_pte_young. If undefined, these will default to the standard pte analogues. I have tested this series on an Arndale board running 3.14-rc3. The libhugetlbfs checks, LTP and some custom THP PROT_NONE tests were used to test this series. Since the RFC in December, I have rebased the code against 3.14-rc3 and tidied up the code. Cheers, -- Steve Steve Capper (5): mm: hugetlb: Introduce huge_pte_{page,present,young} arm: mm: Adjust the parameters for __sync_icache_dcache arm: mm: Make mmu_gather aware of huge pages arm: mm: HugeTLB support for non-LPAE systems arm: mm: Add Transparent HugePage support for non-LPAE arch/arm/Kconfig | 4 +- arch/arm/include/asm/hugetlb-2level.h | 121 +++++++++++++++++++++++++++++++ arch/arm/include/asm/hugetlb-3level.h | 6 ++ arch/arm/include/asm/hugetlb.h | 10 +-- arch/arm/include/asm/pgtable-2level.h | 133 +++++++++++++++++++++++++++++++++- arch/arm/include/asm/pgtable-3level.h | 3 +- arch/arm/include/asm/pgtable.h | 9 +-- arch/arm/include/asm/tlb.h | 14 +++- arch/arm/kernel/head.S | 10 ++- arch/arm/mm/fault.c | 13 ---- arch/arm/mm/flush.c | 9 +-- arch/arm/mm/fsr-2level.c | 4 +- arch/arm/mm/hugetlbpage.c | 2 +- arch/arm/mm/mmu.c | 51 +++++++++++++ include/linux/hugetlb.h | 12 +++ mm/hugetlb.c | 22 +++--- 16 files changed, 370 insertions(+), 53 deletions(-) create mode 100644 arch/arm/include/asm/hugetlb-2level.h -- 1.8.1.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>