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
asm-generic/hugetlb.h proposes generic implementations of hugetlb
related functions: use __HAVE_ARCH_HUGE* defines in order to make arch
specific implementations of hugetlb functions consistent with pgtable.h
scheme.
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
---
arch/arm64/include/asm/hugetlb.h | 2 +-
include/asm-generic/hugetlb.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
arm, ia64, mips, sh, x86 architectures use the same version
of huge_ptep_set_wrprotect, so move this generic implementation into
asm-generic/hugetlb.h.
Note: powerpc uses twice for book3s/32 and nohash/32 the same version as
the above architectures, but the modification was not straightforward
and hence has not been done.
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
---
arch/arm/include/asm/hugetlb-3level.h | 6 ------
arch/arm64/include/asm/hugetlb.h | 1 +
arch/ia64/include/asm/hugetlb.h | 6 ------
arch/mips/include/asm/hugetlb.h | 6 ------
arch/parisc/include/asm/hugetlb.h | 1 +
arch/powerpc/include/asm/book3s/32/pgtable.h | 2 ++
arch/powerpc/include/asm/book3s/64/pgtable.h | 1 +
arch/powerpc/include/asm/nohash/32/pgtable.h | 2 ++
arch/powerpc/include/asm/nohash/64/pgtable.h | 1 +
arch/sh/include/asm/hugetlb.h | 6 ------
arch/sparc/include/asm/hugetlb.h | 1 +
arch/x86/include/asm/hugetlb.h | 6 ------
include/asm-generic/hugetlb.h | 8 ++++++++
13 files changed, 17 insertions(+), 30 deletions(-)
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
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
From: Mike Kravetz <hidden> Date: 2018-07-21 00:26:34
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
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
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
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
From: Paul Burton <hidden> Date: 2018-07-25 00:34:37
Hi Alexandre,
On Thu, Jul 05, 2018 at 11:07:05AM +0000, 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 [off-list ref] # MIPS parts
Thanks,
Paul
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 +0000, Alexandre Ghiti wrote:
quoted
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 [off-list ref] # MIPS parts
Thanks,
Paul
From: Alex Ghiti <alex@ghiti.fr> Date: 2018-07-26 05:41:21
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 [off-list ref] writes:
quoted
Does anyone have any suggestion about those patches ?
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
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2018-07-26 11:46:22
Mike Kravetz [off-list ref] writes:
On 07/20/2018 11:37 AM, Alex Ghiti wrote:
quoted
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
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 <deller@gmx.de> # parisc
Helge
Hi everyone,
This is the result of the build for all arches tackled in this=20=20
=20series rebased on 4.18-rc6:
arm:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 versatile_defconfig: without h=
uge page OK
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 keystone_defconfig: with huge =
page OK
arm64:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 defconfig: with huge page OK
ia64:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 generic_defconfig: with huge p=
age OK
mips:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Paul Burton tested cavium octe=
on with huge page OK
parisc:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 generic-64bit_defconfig: with =
In order to reduce copy/paste of functions across architectures and t=
hen
quoted
quoted
quoted
quoted
make riscv hugetlb port (and future ports) simpler and smaller, this
patchset intends to factorize the numerous hugetlb primitives that ar=
e
quoted
quoted
quoted
quoted
defined across all the architectures.
Except for prepare_hugepage_range, this patchset moves the versions t=
hat
quoted
quoted
quoted
quoted
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 no=
t
quoted
quoted
quoted
quoted
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=20=20
=20+----------------------
include/asm-generic/hugetlb.h | 88=20=20
=20+++++++++++++++++++++++++++-
15 files changed, 143 insertions(+), 384 deletions(-)
--=20
=202.16.2
From: Alex Ghiti <alex@ghiti.fr> Date: 2018-07-26 16:46:43
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 [off-list ref] a écrit :
quoted
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
quoted
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:
quoted
Alex Ghiti [off-list ref] writes:
quoted
Does anyone have any suggestion about those patches ?
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
From: Alex Ghiti <alex@ghiti.fr> Date: 2018-07-26 17:02:10
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
hppa64-linux-ld: init/main.o(.ref.text+0x238): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x258): cannot reach panic
hppa64-linux-ld: init/main.o(.ref.text+0x268): cannot reach printk
hppa64-linux-ld: init/main.o(.ref.text+0x280): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x29c): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x2b8): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x2d4): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x2f0): cannot reach panic
hppa64-linux-ld: init/do_mounts.o(.text+0x30): cannot reach strncasecmp
hppa64-linux-ld: init/do_mounts.o(.text+0x158): cannot reach strncmp
hppa64-linux-ld: init/do_mounts.o(.text+0x180): cannot reach strchr
...
On 07/26/2018 12:59 PM, Helge Deller wrote:
* Alex Ghiti [off-list ref]:
quoted
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 <deller@gmx.de> # parisc
Helge
From: Mike Kravetz <hidden> Date: 2018-07-26 18:42:51
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
asm-generic/hugetlb.h proposes generic implementations of hugetlb
related functions: use __HAVE_ARCH_HUGE* defines in order to make arch
specific implementations of hugetlb functions consistent with pgtable.h
scheme.
Reviewed-by: Mike Kravetz <redacted>
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 18:47:01
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
arm, arm64, mips, parisc, sh, x86 architectures use the
same version of hugetlb_free_pgd_range, so move this generic
implementation into asm-generic/hugetlb.h.
Just one small issue below. Not absolutely necessary to fix.
Reviewed-by: Mike Kravetz <redacted>
I don't think moving the #include is necessary in this case where you are
not adding a __HAVE_ARCH_HUGE* definition. I like having all the #include
statements at the top if possible.
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 19:01:45
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
arm, ia64, mips, powerpc, sh, x86 architectures use the
same version of set_huge_pte_at, so move this generic
implementation into asm-generic/hugetlb.h.
Just one comment below, otherwise:
Reviewed-by: Mike Kravetz <redacted>
Since <asm-generic/hugetlb.h> is not directly included in this file,
I had to search around in the #include dependency chain to look for
it. It makes me just a tiny bit nervous, but since it compiled, I'm
sure there is not an issue.
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 19:06:35
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
arm, arm64, ia64, mips, parisc, powerpc, sh, sparc, x86
architectures use the same version of huge_pte_wrprotect, so move
this generic implementation into asm-generic/hugetlb.h.
Reviewed-by: Mike Kravetz <redacted>
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 19:07:25
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
arm, arm64, powerpc, sparc, x86 architectures use the same version of
prepare_hugepage_range, so move this generic implementation into
asm-generic/hugetlb.h.
Reviewed-by: Mike Kravetz <redacted>
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 19:07:54
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
arm, arm64, ia64, parisc, powerpc, sh, sparc, x86 architectures
use the same version of huge_pte_none, so move this generic
implementation into asm-generic/hugetlb.h.
Reviewed-by: Mike Kravetz <redacted>
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 19:12:13
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
arm, ia64, mips, sh, x86 architectures use the same version
of huge_ptep_set_wrprotect, so move this generic implementation into
asm-generic/hugetlb.h.
Note: powerpc uses twice for book3s/32 and nohash/32 the same version as
the above architectures, but the modification was not straightforward
and hence has not been done.
Just one small comment, otehrwise
Reviewed-by: Mike Kravetz <redacted>
As in patch 03, the book3s and nohash header files do not explicitly
include <asm-generic/hugetlb.h>. With these, I had an even harder time
finding out who brought in that file. This is not an issue with this
patch, just wish there was some easier way to check/prove include file
dependencies. Since it compiles, I am sure it is OK.
--
Mike Kravetz
From: Alex Ghiti <alex@ghiti.fr> Date: 2018-07-26 19:14:21
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
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
hppa64-linux-ld: init/main.o(.ref.text+0x238): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x258): cannot reach panic
hppa64-linux-ld: init/main.o(.ref.text+0x268): cannot reach printk
hppa64-linux-ld: init/main.o(.ref.text+0x280): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x29c): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x2b8): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x2d4): cannot reach unknown
hppa64-linux-ld: init/main.o(.ref.text+0x2f0): cannot reach panic
hppa64-linux-ld: init/do_mounts.o(.text+0x30): cannot reach strncasecmp
hppa64-linux-ld: init/do_mounts.o(.text+0x158): cannot reach strncmp
hppa64-linux-ld: init/do_mounts.o(.text+0x180): cannot reach strchr
...
On 07/26/2018 12:59 PM, Helge Deller wrote:
quoted
* Alex Ghiti [off-list ref]:
quoted
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 <deller@gmx.de> # parisc
Helge
From: Mike Kravetz <hidden> Date: 2018-07-26 19:17:15
On 07/05/2018 04:07 AM, Alexandre Ghiti wrote:
ia64, mips, parisc, powerpc, sh, sparc, x86 architectures use the
same version of huge_ptep_get, so move this generic implementation into
asm-generic/hugetlb.h.
Reviewed-by: Mike Kravetz <redacted>
--
Mike Kravetz
From: Mike Kravetz <hidden> Date: 2018-07-26 19:18:01
On 07/26/2018 04:46 AM, Michael Ellerman wrote:
Mike Kravetz [off-list ref] writes:
quoted
On 07/20/2018 11:37 AM, Alex Ghiti wrote:
quoted
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
$ 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-
quoted
...
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
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:
quoted
Mike Kravetz [off-list ref] writes:
quoted
On 07/20/2018 11:37 AM, Alex Ghiti wrote:
quoted
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.