Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Hi Mike, Thanks for your review. I'm going to fix the 2nd patch as you said, you're right, no need to move the #include at the bottom of the file. I'm going to post a v5, add -mm in cc and ask for inclusion in their tree. Thanks again for your time, Alex On 07/26/2018 09:16 PM, Mike Kravetz wrote: On 07/26/2018 04:46 AM, Michael Ellerman wrote: Mike Kravetz writes: On 07/20/2018 11:37 AM, Alex Ghiti wrote: Does anyone have any suggestion about those patches ? I only took a quick look. From the hugetlb perspective, I like the idea of moving routines to a common file. If any of the arch owners (or anyone else) agree, I can do a review of the series. The conversions look pretty good to me. If you want to give it a review then from my point of view it could go in -mm to shake out any bugs. Nothing of significance found in a review. As others have suggested, the (cross)compiler may be better at finding issues than human eyes. I also suggest it be added to -mm.
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Hi Alex, On 26.07.2018 21:13, Alex Ghiti wrote: > $ make ARCH=parisc O=build_parisc generic-64bit_defconfig > $ PATH=/home/alex/wip/toolchain/gcc-8.1.0-nolibc/hppa64-linux/bin:$PATH make > ARCH=parisc CROSS_COMPILE=hppa64-linux- > >> ... >> LD vmlinux.o >> MODPOST vmlinux.o >> hppa64-linux-ld: init/main.o(.text+0x98): cannot reach strreplace >> init/main.o: In function `initcall_blacklisted': >> init/.tmp_main.o:(.text+0x98): relocation truncated to fit: >> R_PARISC_PCREL22F against symbol `strreplace' defined in .text section in >> lib/string.o >> hppa64-linux-ld: init/main.o(.text+0xbc): cannot reach strcmp In order to be able to link vmlinux, we need to enable CONFIG_MLONGCALLS=y in the defconfig. Nevertheless, I see some modversion issues too which I still need to analyze (but that's a completely off-topic issue here). Helge
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
On 07/26/2018 04:46 AM, Michael Ellerman wrote: > Mike Kravetz writes: > >> On 07/20/2018 11:37 AM, Alex Ghiti wrote: >>> Does anyone have any suggestion about those patches ? >> >> I only took a quick look. From the hugetlb perspective, I like the >> idea of moving routines to a common file. If any of the arch owners >> (or anyone else) agree, I can do a review of the series. > > The conversions look pretty good to me. If you want to give it a review > then from my point of view it could go in -mm to shake out any bugs. Nothing of significance found in a review. As others have suggested, the (cross)compiler may be better at finding issues than human eyes. I also suggest it be added to -mm. -- Mike Kravetz
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Actually, I went back to v4.17, and I have the same errors. I used: $ make ARCH=parisc O=build_parisc generic-64bit_defconfig $ PATH=/home/alex/wip/toolchain/gcc-8.1.0-nolibc/hppa64-linux/bin:$PATH make ARCH=parisc CROSS_COMPILE=hppa64-linux- I downloaded the crosscompiler here: https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/8.1.0/ On 07/26/2018 05:01 PM, Alex Ghiti wrote: Hi Helge, Thanks for your tests. In case it can help you, this is what I get when I try to build generic-64bit_defconfig (I truncated the output): ... LD vmlinux.o MODPOST vmlinux.o hppa64-linux-ld: init/main.o(.text+0x98): cannot reach strreplace init/main.o: In function `initcall_blacklisted': init/.tmp_main.o:(.text+0x98): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strreplace' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.text+0xbc): cannot reach strcmp init/.tmp_main.o:(.text+0xbc): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcmp' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.text+0x21c): cannot reach strcpy init/main.o: In function `do_one_initcall': (.text+0x21c): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcpy' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.text+0x250): cannot reach strlcat (.text+0x250): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlcat' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x1d4): cannot reach strcmp init/main.o: In function `do_early_param': init/.tmp_main.o:(.init.text+0x1d4): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcmp' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x250): cannot reach strcmp init/.tmp_main.o:(.init.text+0x250): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcmp' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x294): cannot reach strlen init/main.o: In function `repair_env_string': init/.tmp_main.o:(.init.text+0x294): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlen' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x2f0): cannot reach strlen init/.tmp_main.o:(.init.text+0x2f0): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlen' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x308): cannot reach memmove init/.tmp_main.o:(.init.text+0x308): relocation truncated to fit: R_PARISC_PCREL22F against symbol `memmove' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x454): cannot reach strlen init/main.o: In function `unknown_bootoption': init/.tmp_main.o:(.init.text+0x454): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlen' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x4dc): cannot reach strchr init/.tmp_main.o:(.init.text+0x4dc): additional relocation overflows omitted from the output hppa64-linux-ld: init/main.o(.init.text+0x638): cannot reach strncmp hppa64-linux-ld: init/main.o(.init.text+0x694): cannot reach get_option hppa64-linux-ld: init/main.o(.init.text+0x744): cannot reach strsep hppa64-linux-ld: init/main.o(.init.text+0x798): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0x7d0): cannot reach strcpy hppa64-linux-ld: init/main.o(.init.text+0x954): cannot reach strlcpy hppa64-linux-ld: init/main.o(.init.text+0xab8): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xafc): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xb40): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xb84): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xbd0): cannot reach strcpy hppa64-linux-ld: init/main.o(.init.text+0xbe8): cannot reach strcpy hppa64-linux-ld: init/main.o(.init.text+0xc3c): cannot reach build_all_zonelists hppa64-linux-ld: init/main.o(.init.text+0x1200): cannot reach unknown hppa64-linux-ld: init/main.o(.init.text+0x1278): cannot reach wait_for_completion hppa64-linux-ld: init/main.o(.init.text+0x12b0): cannot reach _raw_spin_lock hppa64-linux-ld: init/main.o(.init.text+0x147c): cannot reach strcpy hppa64-linux-ld: init/main.o(.ref.text+0x40): cannot reach kernel_thread hppa64-linux-ld: init/main.o(.ref.text+0x60): cannot reach find_task_by_pid_ns hppa64-linux-ld: init/main.o(.ref.text+0x98): cannot reach set_cpus_allowed_ptr hppa64-linux-ld: init/main.o(.ref.text+0xbc): cannot reach kernel_thread hppa64-linux-ld: init/main.o(.ref.text+0xd4): cannot reach find_task_by_pid_ns hppa64-linux-ld: init/main.o(.ref.text+0x108): cannot reach complete hppa64-linux-ld: init/main.o(.ref.text+0x128): cannot reach cpu_startup_entry hppa64-linux-ld: init/main.o(.ref.text+0x164): cannot reach unknown hppa64-linux-ld: init/main.o(.ref.text+0x174): cannot reach
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Hi Helge, Thanks for your tests. In case it can help you, this is what I get when I try to build generic-64bit_defconfig (I truncated the output): ... LD vmlinux.o MODPOST vmlinux.o hppa64-linux-ld: init/main.o(.text+0x98): cannot reach strreplace init/main.o: In function `initcall_blacklisted': init/.tmp_main.o:(.text+0x98): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strreplace' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.text+0xbc): cannot reach strcmp init/.tmp_main.o:(.text+0xbc): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcmp' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.text+0x21c): cannot reach strcpy init/main.o: In function `do_one_initcall': (.text+0x21c): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcpy' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.text+0x250): cannot reach strlcat (.text+0x250): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlcat' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x1d4): cannot reach strcmp init/main.o: In function `do_early_param': init/.tmp_main.o:(.init.text+0x1d4): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcmp' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x250): cannot reach strcmp init/.tmp_main.o:(.init.text+0x250): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strcmp' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x294): cannot reach strlen init/main.o: In function `repair_env_string': init/.tmp_main.o:(.init.text+0x294): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlen' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x2f0): cannot reach strlen init/.tmp_main.o:(.init.text+0x2f0): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlen' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x308): cannot reach memmove init/.tmp_main.o:(.init.text+0x308): relocation truncated to fit: R_PARISC_PCREL22F against symbol `memmove' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x454): cannot reach strlen init/main.o: In function `unknown_bootoption': init/.tmp_main.o:(.init.text+0x454): relocation truncated to fit: R_PARISC_PCREL22F against symbol `strlen' defined in .text section in lib/string.o hppa64-linux-ld: init/main.o(.init.text+0x4dc): cannot reach strchr init/.tmp_main.o:(.init.text+0x4dc): additional relocation overflows omitted from the output hppa64-linux-ld: init/main.o(.init.text+0x638): cannot reach strncmp hppa64-linux-ld: init/main.o(.init.text+0x694): cannot reach get_option hppa64-linux-ld: init/main.o(.init.text+0x744): cannot reach strsep hppa64-linux-ld: init/main.o(.init.text+0x798): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0x7d0): cannot reach strcpy hppa64-linux-ld: init/main.o(.init.text+0x954): cannot reach strlcpy hppa64-linux-ld: init/main.o(.init.text+0xab8): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xafc): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xb40): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xb84): cannot reach strlen hppa64-linux-ld: init/main.o(.init.text+0xbd0): cannot reach strcpy hppa64-linux-ld: init/main.o(.init.text+0xbe8): cannot reach strcpy hppa64-linux-ld: init/main.o(.init.text+0xc3c): cannot reach build_all_zonelists hppa64-linux-ld: init/main.o(.init.text+0x1200): cannot reach unknown hppa64-linux-ld: init/main.o(.init.text+0x1278): cannot reach wait_for_completion hppa64-linux-ld: init/main.o(.init.text+0x12b0): cannot reach _raw_spin_lock hppa64-linux-ld: init/main.o(.init.text+0x147c): cannot reach strcpy hppa64-linux-ld: init/main.o(.ref.text+0x40): cannot reach kernel_thread hppa64-linux-ld: init/main.o(.ref.text+0x60): cannot reach find_task_by_pid_ns hppa64-linux-ld: init/main.o(.ref.text+0x98): cannot reach set_cpus_allowed_ptr hppa64-linux-ld: init/main.o(.ref.text+0xbc): cannot reach kernel_thread hppa64-linux-ld: init/main.o(.ref.text+0xd4): cannot reach find_task_by_pid_ns hppa64-linux-ld: init/main.o(.ref.text+0x108): cannot reach complete hppa64-linux-ld: init/main.o(.ref.text+0x128): cannot reach cpu_startup_entry hppa64-linux-ld: init/main.o(.ref.text+0x164): cannot reach unknown hppa64-linux-ld: init/main.o(.ref.text+0x174): cannot reach async_synchronize_full hppa64-linux-ld: init/main.o(.ref.text+0x1a4): cannot reach rcu_barrier_sched hppa64-linux-ld: init/main.o(.ref.text+0x1b4): cannot reach mark_rodata_ro hppa64-linux-ld: init/main.o(.ref.text+0x1d4): cannot reach rcu_end_inkernel_boot hppa64-linux-ld: init/main.o(.ref.text+0x1f4): cannot reach unknown hppa64-linux-ld: init/main.o(.ref.text+0x218): cannot reach printk
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
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 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 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-a...@ghiti.fr] 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 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
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Alex Ghiti 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 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-a...@ghiti.fr] 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 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
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
* Alex Ghiti : > This is the result of the build for all arches tackled in this series > rebased on 4.18-rc6: > ... > 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. Strange, but I will check that later Anyway, I applied your v4-patch to my parisc64 tree, built the kernel, started it and ran some hugetlb LTP testcases sucessfully. So, please add: Tested-by: Helge Deller # parisc Helge
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Mike Kravetz writes: > On 07/20/2018 11:37 AM, Alex Ghiti wrote: >> Does anyone have any suggestion about those patches ? > > I only took a quick look. From the hugetlb perspective, I like the > idea of moving routines to a common file. If any of the arch owners > (or anyone else) agree, I can do a review of the series. The conversions look pretty good to me. If you want to give it a review then from my point of view it could go in -mm to shake out any bugs. cheers
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
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 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 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-a...@ghiti.fr] 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 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
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Hi Paul, Thanks for having tested it, I remove mips from my list. Thanks again, Alex On 07/25/2018 02:34 AM, Paul Burton wrote: Hi Alexandre, On Thu, Jul 05, 2018 at 11:07:05AM +, 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. For MIPS these look good - I don't see any issues & they pass a build test (using cavium_octeon_defconfig which enables huge pages), so: Acked-by: Paul Burton # MIPS parts Thanks, Paul
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Hi Alexandre, On Thu, Jul 05, 2018 at 11:07:05AM +, 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. For MIPS these look good - I don't see any issues & they pass a build test (using cavium_octeon_defconfig which enables huge pages), so: Acked-by: Paul Burton # MIPS parts Thanks, Paul
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Ok will do and report when done. Thanks for your feedback, Alex On 07/23/2018 02:00 PM, Michael Ellerman wrote: Alex Ghiti 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-a...@ghiti.fr] 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 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
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Alex Ghiti 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-a...@ghiti.fr] >> >> 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 >>> 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
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
On 07/20/2018 11:37 AM, Alex Ghiti wrote: > Does anyone have any suggestion about those patches ? I only took a quick look. From the hugetlb perspective, I like the idea of moving routines to a common file. If any of the arch owners (or anyone else) agree, I can do a review of the series. -- Mike Kravetz > On 07/09/2018 02:16 PM, Michal Hocko wrote: >> [CC hugetlb guys - >> http://lkml.kernel.org/r/20180705110716.3919-1-a...@ghiti.fr] >> >> 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 >>> 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 >
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
Does anyone have any suggestion about those patches ? On 07/09/2018 02:16 PM, Michal Hocko wrote: [CC hugetlb guys - http://lkml.kernel.org/r/20180705110716.3919-1-a...@ghiti.fr] 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 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
Re: [PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
[CC hugetlb guys - http://lkml.kernel.org/r/20180705110716.3919-1-a...@ghiti.fr] 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 >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 -- Michal Hocko SUSE Labs
[PATCH v4 00/11] hugetlb: Factorize hugetlb architecture primitives
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 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