From: Alexander Duyck <[email protected]>
Move the static definition for things such as HUGETLB_PAGE_ORDER out of
asm/pgtable.h and place it in page-defs.h. By doing this the includes
become much easier to deal with as currently arm64 is the only architecture
that didn't include this definition in the asm/page.h file or a file
included by it.
It also makes logical sense as PAGE_SHIFT was already defined in
page-defs.h so now we also have HPAGE_SHIFT defined there as well.
Signed-off-by: Alexander Duyck <[email protected]>
---
arch/arm64/include/asm/page-def.h | 9 +++++++++
arch/arm64/include/asm/pgtable.h | 9 ---------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm64/include/asm/page-def.h b/arch/arm64/include/asm/page-def.h
index f99d48ecbeef..1c5b079e2482 100644
--- a/arch/arm64/include/asm/page-def.h
+++ b/arch/arm64/include/asm/page-def.h
@@ -20,4 +20,13 @@
#define CONT_SIZE (_AC(1, UL) << (CONT_SHIFT + PAGE_SHIFT))
#define CONT_MASK (~(CONT_SIZE-1))
+/*
+ * Hugetlb definitions.
+ */
+#define HUGE_MAX_HSTATE 4
+#define HPAGE_SHIFT PMD_SHIFT
+#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
+#define HPAGE_MASK (~(HPAGE_SIZE - 1))
+#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
+
#endif /* __ASM_PAGE_DEF_H */
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index 7576df00eb50..06a376de9bd6 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -305,15 +305,6 @@ static inline int pte_same(pte_t pte_a, pte_t pte_b)
*/
#define pte_mkhuge(pte) (__pte(pte_val(pte) & ~PTE_TABLE_BIT))
-/*
- * Hugetlb definitions.
- */
-#define HUGE_MAX_HSTATE 4
-#define HPAGE_SHIFT PMD_SHIFT
-#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
-#define HPAGE_MASK (~(HPAGE_SIZE - 1))
-#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
-
static inline pte_t pgd_pte(pgd_t pgd)
{
return __pte(pgd_val(pgd));
On 07.09.19 19:25, Alexander Duyck wrote:
> From: Alexander Duyck <[email protected]>
>
> Move the static definition for things such as HUGETLB_PAGE_ORDER out of
> asm/pgtable.h and place it in page-defs.h. By doing this the includes
> become much easier to deal with as currently arm64 is the only architecture
> that didn't include this definition in the asm/page.h file or a file
> included by it.
>
> It also makes logical sense as PAGE_SHIFT was already defined in
> page-defs.h so now we also have HPAGE_SHIFT defined there as well.
>
> Signed-off-by: Alexander Duyck <[email protected]>
> ---
> arch/arm64/include/asm/page-def.h | 9 +++++++++
> arch/arm64/include/asm/pgtable.h | 9 ---------
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm64/include/asm/page-def.h b/arch/arm64/include/asm/page-def.h
> index f99d48ecbeef..1c5b079e2482 100644
> --- a/arch/arm64/include/asm/page-def.h
> +++ b/arch/arm64/include/asm/page-def.h
> @@ -20,4 +20,13 @@
> #define CONT_SIZE (_AC(1, UL) << (CONT_SHIFT + PAGE_SHIFT))
> #define CONT_MASK (~(CONT_SIZE-1))
>
> +/*
> + * Hugetlb definitions.
> + */
> +#define HUGE_MAX_HSTATE 4
> +#define HPAGE_SHIFT PMD_SHIFT
> +#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
> +#define HPAGE_MASK (~(HPAGE_SIZE - 1))
> +#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
> +
I wonder if you should initially limit "config PAGE_REPORTING" to x86
only and unlock it for the other targets once we actually test it there.
Or did you test PAGE_REPORTING on other architectures as well?
--
Thanks,
David / dhildenb
On Mon, 2019-09-09 at 10:52 +0200, David Hildenbrand wrote:
> On 07.09.19 19:25, Alexander Duyck wrote:
> > From: Alexander Duyck <[email protected]>
> >
> > Move the static definition for things such as HUGETLB_PAGE_ORDER out of
> > asm/pgtable.h and place it in page-defs.h. By doing this the includes
> > become much easier to deal with as currently arm64 is the only architecture
> > that didn't include this definition in the asm/page.h file or a file
> > included by it.
> >
> > It also makes logical sense as PAGE_SHIFT was already defined in
> > page-defs.h so now we also have HPAGE_SHIFT defined there as well.
> >
> > Signed-off-by: Alexander Duyck <[email protected]>
> > ---
> > arch/arm64/include/asm/page-def.h | 9 +++++++++
> > arch/arm64/include/asm/pgtable.h | 9 ---------
> > 2 files changed, 9 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm64/include/asm/page-def.h b/arch/arm64/include/asm/page-def.h
> > index f99d48ecbeef..1c5b079e2482 100644
> > --- a/arch/arm64/include/asm/page-def.h
> > +++ b/arch/arm64/include/asm/page-def.h
> > @@ -20,4 +20,13 @@
> > #define CONT_SIZE (_AC(1, UL) << (CONT_SHIFT + PAGE_SHIFT))
> > #define CONT_MASK (~(CONT_SIZE-1))
> >
> > +/*
> > + * Hugetlb definitions.
> > + */
> > +#define HUGE_MAX_HSTATE 4
> > +#define HPAGE_SHIFT PMD_SHIFT
> > +#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
> > +#define HPAGE_MASK (~(HPAGE_SIZE - 1))
> > +#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
> > +
>
> I wonder if you should initially limit "config PAGE_REPORTING" to x86
> only and unlock it for the other targets once we actually test it there.
> Or did you test PAGE_REPORTING on other architectures as well?
>
I haven't, but essentially the effects should be the same regardless of
architecture. In addition since this is a feature that can be
enabled/disabled via QEMU I am not sure there is much harm other than
getting additional testing by enabling for all of the architectures at
once.
On Sat, Sep 07, 2019 at 10:25:45AM -0700, Alexander Duyck wrote:
> From: Alexander Duyck <[email protected]>
>
> Move the static definition for things such as HUGETLB_PAGE_ORDER out of
> asm/pgtable.h and place it in page-defs.h. By doing this the includes
> become much easier to deal with as currently arm64 is the only architecture
> that didn't include this definition in the asm/page.h file or a file
> included by it.
>
> It also makes logical sense as PAGE_SHIFT was already defined in
> page-defs.h so now we also have HPAGE_SHIFT defined there as well.
>
> Signed-off-by: Alexander Duyck <[email protected]>
> ---
> arch/arm64/include/asm/page-def.h | 9 +++++++++
> arch/arm64/include/asm/pgtable.h | 9 ---------
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm64/include/asm/page-def.h b/arch/arm64/include/asm/page-def.h
> index f99d48ecbeef..1c5b079e2482 100644
> --- a/arch/arm64/include/asm/page-def.h
> +++ b/arch/arm64/include/asm/page-def.h
> @@ -20,4 +20,13 @@
> #define CONT_SIZE (_AC(1, UL) << (CONT_SHIFT + PAGE_SHIFT))
> #define CONT_MASK (~(CONT_SIZE-1))
>
> +/*
> + * Hugetlb definitions.
> + */
> +#define HUGE_MAX_HSTATE 4
> +#define HPAGE_SHIFT PMD_SHIFT
> +#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
> +#define HPAGE_MASK (~(HPAGE_SIZE - 1))
> +#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
> +
> #endif /* __ASM_PAGE_DEF_H */
> diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> index 7576df00eb50..06a376de9bd6 100644
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -305,15 +305,6 @@ static inline int pte_same(pte_t pte_a, pte_t pte_b)
> */
> #define pte_mkhuge(pte) (__pte(pte_val(pte) & ~PTE_TABLE_BIT))
>
> -/*
> - * Hugetlb definitions.
> - */
> -#define HUGE_MAX_HSTATE 4
> -#define HPAGE_SHIFT PMD_SHIFT
> -#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
> -#define HPAGE_MASK (~(HPAGE_SIZE - 1))
> -#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
> -
Acked-by: Will Deacon <[email protected]>
I'm assuming you're taking this along with the other patches, but please
shout if you'd rather it went via the arm64 tree.
Will
On Tue, Sep 17, 2019 at 10:49 AM Will Deacon <[email protected]> wrote:
>
> On Sat, Sep 07, 2019 at 10:25:45AM -0700, Alexander Duyck wrote:
> > From: Alexander Duyck <[email protected]>
> >
> > Move the static definition for things such as HUGETLB_PAGE_ORDER out of
> > asm/pgtable.h and place it in page-defs.h. By doing this the includes
> > become much easier to deal with as currently arm64 is the only architecture
> > that didn't include this definition in the asm/page.h file or a file
> > included by it.
> >
> > It also makes logical sense as PAGE_SHIFT was already defined in
> > page-defs.h so now we also have HPAGE_SHIFT defined there as well.
> >
> > Signed-off-by: Alexander Duyck <[email protected]>
> > ---
> > arch/arm64/include/asm/page-def.h | 9 +++++++++
> > arch/arm64/include/asm/pgtable.h | 9 ---------
> > 2 files changed, 9 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm64/include/asm/page-def.h b/arch/arm64/include/asm/page-def.h
> > index f99d48ecbeef..1c5b079e2482 100644
> > --- a/arch/arm64/include/asm/page-def.h
> > +++ b/arch/arm64/include/asm/page-def.h
> > @@ -20,4 +20,13 @@
> > #define CONT_SIZE (_AC(1, UL) << (CONT_SHIFT + PAGE_SHIFT))
> > #define CONT_MASK (~(CONT_SIZE-1))
> >
> > +/*
> > + * Hugetlb definitions.
> > + */
> > +#define HUGE_MAX_HSTATE 4
> > +#define HPAGE_SHIFT PMD_SHIFT
> > +#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
> > +#define HPAGE_MASK (~(HPAGE_SIZE - 1))
> > +#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
> > +
> > #endif /* __ASM_PAGE_DEF_H */
> > diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
> > index 7576df00eb50..06a376de9bd6 100644
> > --- a/arch/arm64/include/asm/pgtable.h
> > +++ b/arch/arm64/include/asm/pgtable.h
> > @@ -305,15 +305,6 @@ static inline int pte_same(pte_t pte_a, pte_t pte_b)
> > */
> > #define pte_mkhuge(pte) (__pte(pte_val(pte) & ~PTE_TABLE_BIT))
> >
> > -/*
> > - * Hugetlb definitions.
> > - */
> > -#define HUGE_MAX_HSTATE 4
> > -#define HPAGE_SHIFT PMD_SHIFT
> > -#define HPAGE_SIZE (_AC(1, UL) << HPAGE_SHIFT)
> > -#define HPAGE_MASK (~(HPAGE_SIZE - 1))
> > -#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
> > -
>
> Acked-by: Will Deacon <[email protected]>
>
> I'm assuming you're taking this along with the other patches, but please
> shout if you'd rather it went via the arm64 tree.
>
> Will
As it turns out I am close to submitting a v10 that doesn't need this
patch. I basically just needed to move the list manipulators out of
mmzone.h and then moved my header file out of there so I no longer
needed the code.
Thanks.
- Alex