[RFC PATCH 0/6] Huge pages for short descriptors on ARM
Steve Capper
steve.capper at linaro.org
Fri Dec 13 14:05:40 EST 2013
Hello,
This RFC is another attempt at bringing HugeTLB pages and Transparent
Huge Pages (THP) to ARM on short descriptors.
Since my last resend in October I have rebased the code and simplified
it quite a lot. Rather than translate pte representations from software
bits to hardware bits and from hardware bits to software bits, I use
huge_pte_... analogues of the pte functions to deal with huge pages
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.
I have tested this series on an Arndale board running 3.13-rc3 with the
cache flushing fixes mentioned at:
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-December/219081.html
The libhugetlbfs checks, LTP and some custom THP PROT_NONE tests were
used to test this series.
To go forward with this series I would really like to know if anyone is
interested in huge pages for short-descriptors on ARM, and whether or
not these patches work well for those people?
As always, I would also appreciate any comments, critique or flames :-).
Cheers,
--
Steve
Steve Capper (6):
mm: hugetlb: Introduce huge_pte_page and huge_pte_present
arm: mm: Adjust the parameters for __sync_icache_dcache
arm: mm: Make mmu_gather aware of huge pages
arm: mm: Compute pgprot values for huge page sections
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 | 137 ++++++++++++++++++++++++++++++++--
arch/arm/include/asm/pgtable-3level.h | 6 ++
arch/arm/include/asm/pgtable.h | 9 +--
arch/arm/include/asm/tlb.h | 10 ++-
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 | 52 +++++++++++++
include/linux/hugetlb.h | 8 ++
mm/hugetlb.c | 18 ++---
16 files changed, 368 insertions(+), 51 deletions(-)
create mode 100644 arch/arm/include/asm/hugetlb-2level.h
--
1.8.1.4
More information about the linux-arm-kernel
mailing list