Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives

From: Alex Ghiti
Date: Thu Jul 26 2018 - 12:46:45 EST


Hi Christophe,

Sorry, I should have done it already: with and without huge page activated, the build for mpc885_ads_defconfig is OK.

Thanks,

Alex

On 07/26/2018 03:13 PM, LEROY Christophe wrote:
Alex Ghiti <alex@xxxxxxxx> a ÃcritÂ:

Hi everyone,

This is the result of the build for all arches tackled in this series rebased on 4.18-rc6:

arm:
ÂÂÂÂÂÂÂ versatile_defconfig: without huge page OK
ÂÂÂÂÂÂÂ keystone_defconfig: with huge page OK
arm64:
ÂÂÂÂÂÂÂ defconfig: with huge page OK
ia64:
ÂÂÂÂÂÂÂ generic_defconfig: with huge page OK
mips:
ÂÂÂÂÂÂÂ Paul Burton tested cavium octeon with huge page OK
parisc:
ÂÂÂÂÂÂÂ generic-64bit_defconfig: with huge page does not link
ÂÂÂÂÂÂÂ generic-64bit_defconfig: without huge page does not link
ÂÂÂÂÂÂÂ BUT not because of this series, any feedback welcome.
powerpc:
ÂÂÂÂÂÂÂ ppc64_defconfig: without huge page OK
ÂÂÂÂÂÂÂ ppc64_defconfig: with huge page OK

Can you also test ppc32 both with and without hugepage (mpc885_ads_defconfig)

Thanks
Christophe

sh:
ÂÂÂÂÂÂÂ dreamcast_defconfig: with huge page OK
sparc:
ÂÂÂÂÂÂÂ sparc32_defconfig: without huge page OK
sparc64:
ÂÂÂÂÂÂÂ sparc64_defconfig: with huge page OK
x86:
ÂÂÂÂÂÂÂ with huge page OK

Alex

On 07/23/2018 02:00 PM, Michael Ellerman wrote:
Alex Ghiti <alex@xxxxxxxx> writes:

Does anyone have any suggestion about those patches ?
Cross compiling it for some non-x86 arches would be a good start :)

There are cross compilers available here:

 https://mirrors.edge.kernel.org/pub/tools/crosstool/


cheers

On 07/09/2018 02:16 PM, Michal Hocko wrote:
[CC hugetlb guys - http://lkml.kernel.org/r/20180705110716.3919-1-alex@xxxxxxxx]

On Thu 05-07-18 11:07:05, Alexandre Ghiti wrote:
In order to reduce copy/paste of functions across architectures and then
make riscv hugetlb port (and future ports) simpler and smaller, this
patchset intends to factorize the numerous hugetlb primitives that are
defined across all the architectures.

Except for prepare_hugepage_range, this patchset moves the versions that
are just pass-through to standard pte primitives into
asm-generic/hugetlb.h by using the same #ifdef semantic that can be
found in asm-generic/pgtable.h, i.e. __HAVE_ARCH_***.

s390 architecture has not been tackled in this serie since it does not
use asm-generic/hugetlb.h at all.
powerpc could be factorized a bit more (cf huge_ptep_set_wrprotect).

This patchset has been compiled on x86 only.

Changelog:

v4:
ÂÂ Fix powerpc build error due to misplacing of #include
ÂÂ <asm-generic/hugetlb.h> outside of #ifdef CONFIG_HUGETLB_PAGE, as
ÂÂ pointed by Christophe Leroy.

v1, v2, v3:
ÂÂ Same version, just problems with email provider and misuse of
ÂÂ --batch-size option of git send-email

Alexandre Ghiti (11):
ÂÂ hugetlb: Harmonize hugetlb.h arch specific defines with pgtable.h
ÂÂ hugetlb: Introduce generic version of hugetlb_free_pgd_range
ÂÂ hugetlb: Introduce generic version of set_huge_pte_at
ÂÂ hugetlb: Introduce generic version of huge_ptep_get_and_clear
ÂÂ hugetlb: Introduce generic version of huge_ptep_clear_flush
ÂÂ hugetlb: Introduce generic version of huge_pte_none
ÂÂ hugetlb: Introduce generic version of huge_pte_wrprotect
ÂÂ hugetlb: Introduce generic version of prepare_hugepage_range
ÂÂ hugetlb: Introduce generic version of huge_ptep_set_wrprotect
ÂÂ hugetlb: Introduce generic version of huge_ptep_set_access_flags
ÂÂ hugetlb: Introduce generic version of huge_ptep_get

 arch/arm/include/asm/hugetlb-3level.h | 32 +---------
 arch/arm/include/asm/hugetlb.h | 33 +----------
 arch/arm64/include/asm/hugetlb.h | 39 +++---------
 arch/ia64/include/asm/hugetlb.h | 47 ++-------------
 arch/mips/include/asm/hugetlb.h | 40 +++----------
 arch/parisc/include/asm/hugetlb.h | 33 +++--------
 arch/powerpc/include/asm/book3s/32/pgtable.h | 2 +
 arch/powerpc/include/asm/book3s/64/pgtable.h | 1 +
 arch/powerpc/include/asm/hugetlb.h | 43 ++------------
 arch/powerpc/include/asm/nohash/32/pgtable.h | 2 +
 arch/powerpc/include/asm/nohash/64/pgtable.h | 1 +
 arch/sh/include/asm/hugetlb.h | 54 ++---------------
 arch/sparc/include/asm/hugetlb.h | 40 +++----------
 arch/x86/include/asm/hugetlb.h | 72 +----------------------
 include/asm-generic/hugetlb.h | 88 +++++++++++++++++++++++++++-
 15 files changed, 143 insertions(+), 384 deletions(-)

--
2.16.2