Messages in this thread | | | Subject | Re: [PATCH 03/13] mm: Add generic p?d_large() macros | From | "Liang, Kan" <> | Date | Mon, 18 Feb 2019 22:44:10 -0500 |
| |
On 2/18/2019 9:19 AM, Steven Price wrote: > On 18/02/2019 11:31, Peter Zijlstra wrote: >> On Fri, Feb 15, 2019 at 05:02:24PM +0000, Steven Price wrote: >>> From: James Morse <james.morse@arm.com> >>> >>> Exposing the pud/pgd levels of the page tables to walk_page_range() means >>> we may come across the exotic large mappings that come with large areas >>> of contiguous memory (such as the kernel's linear map). >>> >>> For architectures that don't provide p?d_large() macros, provided a >>> does nothing default. >> >> Kan was going to fix that for all archs I think.. >
Yes, I'm still working on a generic function to retrieve page size. The generic p?d_large() issue has been fixed. However, I found that the pgd_page() is not generic either. I'm still working on it. I will update you on the other thread when all issues are fixed.
> The latest series I can find from Kan is still x86 specific. I'm happy > to rebase onto something else if Kan has an implementation already > (please point me in the right direction). Otherwise Kan is obviously > free to base on these changes. >
My implementation is similar as yours. I'm happy to re-base on your changes.
Could you please also add a generic p4d_large()?
Thanks, Kan
> Steve > >> See: >> >> http://lkml.kernel.org/r/20190204105409.GA17550@hirez.programming.kicks-ass.net >> >>> Signed-off-by: James Morse <james.morse@arm.com> >>> Signed-off-by: Steven Price <steven.price@arm.com> >>> --- >>> include/asm-generic/pgtable.h | 10 ++++++++++ >>> 1 file changed, 10 insertions(+) >>> >>> diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h >>> index 05e61e6c843f..7630d663cd51 100644 >>> --- a/include/asm-generic/pgtable.h >>> +++ b/include/asm-generic/pgtable.h >>> @@ -1186,4 +1186,14 @@ static inline bool arch_has_pfn_modify_check(void) >>> #define mm_pmd_folded(mm) __is_defined(__PAGETABLE_PMD_FOLDED) >>> #endif >>> >>> +#ifndef pgd_large >>> +#define pgd_large(x) 0 >>> +#endif >>> +#ifndef pud_large >>> +#define pud_large(x) 0 >>> +#endif >>> +#ifndef pmd_large >>> +#define pmd_large(x) 0 >>> +#endif >>> + >>> #endif /* _ASM_GENERIC_PGTABLE_H */ >>> -- >>> 2.20.1 >>> >> >> _______________________________________________ >> linux-arm-kernel mailing list >> linux-arm-kernel@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >> >
| |