Re: [PATCH V2 2/2] mm/pgtable/debug: Add test validating architecture page table helpers
Le 13/09/2019 à 11:02, Anshuman Khandual a écrit : +#if !defined(__PAGETABLE_PMD_FOLDED) && !defined(__ARCH_HAS_4LEVEL_HACK) #ifdefs have to be avoided as much as possible, see below Yeah but it has been bit difficult to avoid all these $ifdef because of the availability (or lack of it) for all these pgtable helpers in various config combinations on all platforms. As far as I can see these pgtable helpers should exist everywhere at least via asm-generic/ files. Can you spot a particular config which fails ? [...] +#if !defined(__PAGETABLE_PUD_FOLDED) && !defined(__ARCH_HAS_5LEVEL_HACK) The same can be done here. IIRC not only the page table helpers but there are data types (pxx_t) which were not present on various configs and these wrappers help prevent build failures. Any ways will try and see if this can be improved further. But meanwhile if you have some suggestions, please do let me know. pgt_t and pmd_t are everywhere I guess. then pud_t and p4d_t have fallbacks in asm-generic files. So it shouldn't be an issue. Maybe if a couple of arches miss them, the best would be to fix the arches, since that's the purpose of your testsuite isn't it ? Christophe ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V2 2/2] mm/pgtable/debug: Add test validating architecture page table helpers
On Fri, Sep 13, 2019 at 02:32:04PM +0530, Anshuman Khandual wrote: > > On 09/12/2019 10:44 PM, Christophe Leroy wrote: > > > > > > Le 12/09/2019 à 08:02, Anshuman Khandual a écrit : > >> This adds a test module which will validate architecture page table helpers > >> and accessors regarding compliance with generic MM semantics expectations. > >> This will help various architectures in validating changes to the existing > >> page table helpers or addition of new ones. > >> > >> Test page table and memory pages creating it's entries at various level are > >> all allocated from system memory with required alignments. If memory pages > >> with required size and alignment could not be allocated, then all depending > >> individual tests are skipped. > >> > > > > [...] > > > >> > >> Suggested-by: Catalin Marinas > >> Signed-off-by: Anshuman Khandual > >> --- > >> arch/x86/include/asm/pgtable_64_types.h | 2 + > >> mm/Kconfig.debug | 14 + > >> mm/Makefile | 1 + > >> mm/arch_pgtable_test.c | 429 > >> 4 files changed, 446 insertions(+) > >> create mode 100644 mm/arch_pgtable_test.c > >> > >> diff --git a/arch/x86/include/asm/pgtable_64_types.h > >> b/arch/x86/include/asm/pgtable_64_types.h > >> index 52e5f5f2240d..b882792a3999 100644 > >> --- a/arch/x86/include/asm/pgtable_64_types.h > >> +++ b/arch/x86/include/asm/pgtable_64_types.h > >> @@ -40,6 +40,8 @@ static inline bool pgtable_l5_enabled(void) > >> #define pgtable_l5_enabled() 0 > >> #endif /* CONFIG_X86_5LEVEL */ > >> +#define mm_p4d_folded(mm) (!pgtable_l5_enabled()) > >> + > > > > This is specific to x86, should go in a separate patch. > > Thought about it but its just a single line. Kirill suggested this in the > previous version. There is a generic fallback definition but s390 has it's > own. This change overrides the generic one for x86 probably as a fix or as > an improvement. Kirill should be able to help classify it in which case it > can be a separate patch. I don't think it worth a separate patch. -- Kirill A. Shutemov ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V2 2/2] mm/pgtable/debug: Add test validating architecture page table helpers
On 09/12/2019 10:44 PM, Christophe Leroy wrote: > > > Le 12/09/2019 à 08:02, Anshuman Khandual a écrit : >> This adds a test module which will validate architecture page table helpers >> and accessors regarding compliance with generic MM semantics expectations. >> This will help various architectures in validating changes to the existing >> page table helpers or addition of new ones. >> >> Test page table and memory pages creating it's entries at various level are >> all allocated from system memory with required alignments. If memory pages >> with required size and alignment could not be allocated, then all depending >> individual tests are skipped. >> > > [...] > >> >> Suggested-by: Catalin Marinas >> Signed-off-by: Anshuman Khandual >> --- >> arch/x86/include/asm/pgtable_64_types.h | 2 + >> mm/Kconfig.debug | 14 + >> mm/Makefile | 1 + >> mm/arch_pgtable_test.c | 429 >> 4 files changed, 446 insertions(+) >> create mode 100644 mm/arch_pgtable_test.c >> >> diff --git a/arch/x86/include/asm/pgtable_64_types.h >> b/arch/x86/include/asm/pgtable_64_types.h >> index 52e5f5f2240d..b882792a3999 100644 >> --- a/arch/x86/include/asm/pgtable_64_types.h >> +++ b/arch/x86/include/asm/pgtable_64_types.h >> @@ -40,6 +40,8 @@ static inline bool pgtable_l5_enabled(void) >> #define pgtable_l5_enabled() 0 >> #endif /* CONFIG_X86_5LEVEL */ >> +#define mm_p4d_folded(mm) (!pgtable_l5_enabled()) >> + > > This is specific to x86, should go in a separate patch. Thought about it but its just a single line. Kirill suggested this in the previous version. There is a generic fallback definition but s390 has it's own. This change overrides the generic one for x86 probably as a fix or as an improvement. Kirill should be able to help classify it in which case it can be a separate patch. > >> extern unsigned int pgdir_shift; >> extern unsigned int ptrs_per_p4d; >> diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug >> index 327b3ebf23bf..ce9c397f7b07 100644 >> --- a/mm/Kconfig.debug >> +++ b/mm/Kconfig.debug >> @@ -117,3 +117,17 @@ config DEBUG_RODATA_TEST >> depends on STRICT_KERNEL_RWX >> ---help--- >> This option enables a testcase for the setting rodata read-only. >> + >> +config DEBUG_ARCH_PGTABLE_TEST >> + bool "Test arch page table helpers for semantics compliance" >> + depends on MMU >> + depends on DEBUG_KERNEL >> + help >> + This options provides a kernel module which can be used to test >> + architecture page table helper functions on various platform in >> + verifying if they comply with expected generic MM semantics. This >> + will help architectures code in making sure that any changes or >> + new additions of these helpers will still conform to generic MM >> + expected semantics. >> + >> + If unsure, say N. >> diff --git a/mm/Makefile b/mm/Makefile >> index d996846697ef..bb572c5aa8c5 100644 >> --- a/mm/Makefile >> +++ b/mm/Makefile >> @@ -86,6 +86,7 @@ obj-$(CONFIG_HWPOISON_INJECT) += hwpoison-inject.o >> obj-$(CONFIG_DEBUG_KMEMLEAK) += kmemleak.o >> obj-$(CONFIG_DEBUG_KMEMLEAK_TEST) += kmemleak-test.o >> obj-$(CONFIG_DEBUG_RODATA_TEST) += rodata_test.o >> +obj-$(CONFIG_DEBUG_ARCH_PGTABLE_TEST) += arch_pgtable_test.o >> obj-$(CONFIG_PAGE_OWNER) += page_owner.o >> obj-$(CONFIG_CLEANCACHE) += cleancache.o >> obj-$(CONFIG_MEMORY_ISOLATION) += page_isolation.o >> diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c >> new file mode 100644 >> index ..8b4a92756ad8 >> --- /dev/null >> +++ b/mm/arch_pgtable_test.c >> @@ -0,0 +1,429 @@ >> +// SPDX-License-Identifier: GPL-2.0-only >> +/* >> + * This kernel module validates architecture page table helpers & >> + * accessors and helps in verifying their continued compliance with >> + * generic MM semantics. >> + * >> + * Copyright (C) 2019 ARM Ltd. >> + * >> + * Author: Anshuman Khandual >> + */ >> +#define pr_fmt(fmt) "arch_pgtable_test: %s " fmt, __func__ >> + >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include > > Add (see other mails, build failure on ppc book3s/32) Okay. > >> +#include >> +#include >> + >> +/* >> + * Basic operations >> + * >> + * mkold(entry) = An old and not a young entry >> + * mkyoung(entry) = A young and not an old entry >> + * mkdirty(entry) = A dirty and not a clean entry >> + * mkclean(entry) = A clean and not a dirty entry >> + * mkwrite(entry) = A write and not a write protected entry >> + * wrprotect(entry) = A write protected and not a write entry >> + * pxx_bad(entry) = A mapped and non-table entry >> + * pxx_same(entry1, entry2) = Both entries hold the exact same value >> + */ >> +#define VMFLAGS
Re: [PATCH] mm/pgtable/debug: Fix test validating architecture page table helpers
On Fri, Sep 13, 2019 at 02:12:45PM +0530, Anshuman Khandual wrote: > > > On 09/13/2019 12:41 PM, Christophe Leroy wrote: > > > > > > Le 13/09/2019 à 09:03, Christophe Leroy a écrit : > >> > >> > >> Le 13/09/2019 à 08:58, Anshuman Khandual a écrit : > >>> On 09/13/2019 11:53 AM, Christophe Leroy wrote: > Fix build failure on powerpc. > > Fix preemption imbalance. > > Signed-off-by: Christophe Leroy > --- > mm/arch_pgtable_test.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c > index 8b4a92756ad8..f2b3c9ec35fa 100644 > --- a/mm/arch_pgtable_test.c > +++ b/mm/arch_pgtable_test.c > @@ -24,6 +24,7 @@ > #include > #include > #include > +#include > >>> > >>> This is okay. > >>> > #include > #include > @@ -400,6 +401,8 @@ static int __init arch_pgtable_tests_init(void) > p4d_clear_tests(p4dp); > pgd_clear_tests(mm, pgdp); > + pte_unmap(ptep); > + > >>> > >>> Now the preemption imbalance via pte_alloc_map() path i.e > >>> > >>> pte_alloc_map() -> pte_offset_map() -> kmap_atomic() > >>> > >>> Is not this very much powerpc 32 specific or this will be applicable > >>> for all platform which uses kmap_XXX() to map high memory ? > >>> > >> > >> See > >> https://elixir.bootlin.com/linux/v5.3-rc8/source/include/linux/highmem.h#L91 > >> > >> I think it applies at least to all arches using the generic implementation. > >> > >> Applies also to arm: > >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/mm/highmem.c#L52 > >> > >> Applies also to mips: > >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/mips/mm/highmem.c#L47 > >> > >> Same on sparc: > >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/sparc/mm/highmem.c#L52 > >> > >> Same on x86: > >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/mm/highmem_32.c#L34 > >> > >> I have not checked others, but I guess it is like that for all. > >> > > > > > > Seems like I answered too quickly. All kmap_atomic() do preempt_disable(), > > but not all pte_alloc_map() call kmap_atomic(). > > > > However, for instance ARM does: > > > > https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/include/asm/pgtable.h#L200 > > > > And X86 as well: > > > > https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/include/asm/pgtable_32.h#L51 > > > > Microblaze also: > > > > https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/microblaze/include/asm/pgtable.h#L495 > > All the above platforms checks out to be using k[un]map_atomic(). I am > wondering whether > any of the intermediate levels will have similar problems on any these 32 bit > platforms > or any other platforms which might be using generic k[un]map_atomic(). No. Kernel only allocates pte page table from highmem. All other page tables are always visible in kernel address space. -- Kirill A. Shutemov ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] mm/pgtable/debug: Fix test validating architecture page table helpers
On 09/13/2019 12:41 PM, Christophe Leroy wrote: > > > Le 13/09/2019 à 09:03, Christophe Leroy a écrit : >> >> >> Le 13/09/2019 à 08:58, Anshuman Khandual a écrit : >>> On 09/13/2019 11:53 AM, Christophe Leroy wrote: Fix build failure on powerpc. Fix preemption imbalance. Signed-off-by: Christophe Leroy --- mm/arch_pgtable_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c index 8b4a92756ad8..f2b3c9ec35fa 100644 --- a/mm/arch_pgtable_test.c +++ b/mm/arch_pgtable_test.c @@ -24,6 +24,7 @@ #include #include #include +#include >>> >>> This is okay. >>> #include #include @@ -400,6 +401,8 @@ static int __init arch_pgtable_tests_init(void) p4d_clear_tests(p4dp); pgd_clear_tests(mm, pgdp); + pte_unmap(ptep); + >>> >>> Now the preemption imbalance via pte_alloc_map() path i.e >>> >>> pte_alloc_map() -> pte_offset_map() -> kmap_atomic() >>> >>> Is not this very much powerpc 32 specific or this will be applicable >>> for all platform which uses kmap_XXX() to map high memory ? >>> >> >> See >> https://elixir.bootlin.com/linux/v5.3-rc8/source/include/linux/highmem.h#L91 >> >> I think it applies at least to all arches using the generic implementation. >> >> Applies also to arm: >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/mm/highmem.c#L52 >> >> Applies also to mips: >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/mips/mm/highmem.c#L47 >> >> Same on sparc: >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/sparc/mm/highmem.c#L52 >> >> Same on x86: >> https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/mm/highmem_32.c#L34 >> >> I have not checked others, but I guess it is like that for all. >> > > > Seems like I answered too quickly. All kmap_atomic() do preempt_disable(), > but not all pte_alloc_map() call kmap_atomic(). > > However, for instance ARM does: > > https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/include/asm/pgtable.h#L200 > > And X86 as well: > > https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/include/asm/pgtable_32.h#L51 > > Microblaze also: > > https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/microblaze/include/asm/pgtable.h#L495 All the above platforms checks out to be using k[un]map_atomic(). I am wondering whether any of the intermediate levels will have similar problems on any these 32 bit platforms or any other platforms which might be using generic k[un]map_atomic(). There can be many permutations here. p4dp = p4d_alloc(mm, pgdp, vaddr); pudp = pud_alloc(mm, p4dp, vaddr); pmdp = pmd_alloc(mm, pudp, vaddr); Otherwise pte_alloc_map()/pte_unmap() looks good enough which will atleast take care of a known failure. ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] mm/pgtable/debug: Fix test validating architecture page table helpers
Le 13/09/2019 à 09:03, Christophe Leroy a écrit : Le 13/09/2019 à 08:58, Anshuman Khandual a écrit : On 09/13/2019 11:53 AM, Christophe Leroy wrote: Fix build failure on powerpc. Fix preemption imbalance. Signed-off-by: Christophe Leroy --- mm/arch_pgtable_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c index 8b4a92756ad8..f2b3c9ec35fa 100644 --- a/mm/arch_pgtable_test.c +++ b/mm/arch_pgtable_test.c @@ -24,6 +24,7 @@ #include #include #include +#include This is okay. #include #include @@ -400,6 +401,8 @@ static int __init arch_pgtable_tests_init(void) p4d_clear_tests(p4dp); pgd_clear_tests(mm, pgdp); + pte_unmap(ptep); + Now the preemption imbalance via pte_alloc_map() path i.e pte_alloc_map() -> pte_offset_map() -> kmap_atomic() Is not this very much powerpc 32 specific or this will be applicable for all platform which uses kmap_XXX() to map high memory ? See https://elixir.bootlin.com/linux/v5.3-rc8/source/include/linux/highmem.h#L91 I think it applies at least to all arches using the generic implementation. Applies also to arm: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/mm/highmem.c#L52 Applies also to mips: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/mips/mm/highmem.c#L47 Same on sparc: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/sparc/mm/highmem.c#L52 Same on x86: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/mm/highmem_32.c#L34 I have not checked others, but I guess it is like that for all. Seems like I answered too quickly. All kmap_atomic() do preempt_disable(), but not all pte_alloc_map() call kmap_atomic(). However, for instance ARM does: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/include/asm/pgtable.h#L200 And X86 as well: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/include/asm/pgtable_32.h#L51 Microblaze also: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/microblaze/include/asm/pgtable.h#L495 Christophe ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] mm/pgtable/debug: Fix test validating architecture page table helpers
Le 13/09/2019 à 08:58, Anshuman Khandual a écrit : On 09/13/2019 11:53 AM, Christophe Leroy wrote: Fix build failure on powerpc. Fix preemption imbalance. Signed-off-by: Christophe Leroy --- mm/arch_pgtable_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c index 8b4a92756ad8..f2b3c9ec35fa 100644 --- a/mm/arch_pgtable_test.c +++ b/mm/arch_pgtable_test.c @@ -24,6 +24,7 @@ #include #include #include +#include This is okay. #include #include @@ -400,6 +401,8 @@ static int __init arch_pgtable_tests_init(void) p4d_clear_tests(p4dp); pgd_clear_tests(mm, pgdp); + pte_unmap(ptep); + Now the preemption imbalance via pte_alloc_map() path i.e pte_alloc_map() -> pte_offset_map() -> kmap_atomic() Is not this very much powerpc 32 specific or this will be applicable for all platform which uses kmap_XXX() to map high memory ? See https://elixir.bootlin.com/linux/v5.3-rc8/source/include/linux/highmem.h#L91 I think it applies at least to all arches using the generic implementation. Applies also to arm: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/arm/mm/highmem.c#L52 Applies also to mips: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/mips/mm/highmem.c#L47 Same on sparc: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/sparc/mm/highmem.c#L52 Same on x86: https://elixir.bootlin.com/linux/v5.3-rc8/source/arch/x86/mm/highmem_32.c#L34 I have not checked others, but I guess it is like that for all. Christophe ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] mm/pgtable/debug: Fix test validating architecture page table helpers
On 09/13/2019 11:53 AM, Christophe Leroy wrote: > Fix build failure on powerpc. > > Fix preemption imbalance. > > Signed-off-by: Christophe Leroy > --- > mm/arch_pgtable_test.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c > index 8b4a92756ad8..f2b3c9ec35fa 100644 > --- a/mm/arch_pgtable_test.c > +++ b/mm/arch_pgtable_test.c > @@ -24,6 +24,7 @@ > #include > #include > #include > +#include This is okay. > #include > #include > > @@ -400,6 +401,8 @@ static int __init arch_pgtable_tests_init(void) > p4d_clear_tests(p4dp); > pgd_clear_tests(mm, pgdp); > > + pte_unmap(ptep); > + Now the preemption imbalance via pte_alloc_map() path i.e pte_alloc_map() -> pte_offset_map() -> kmap_atomic() Is not this very much powerpc 32 specific or this will be applicable for all platform which uses kmap_XXX() to map high memory ? ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V2 0/2] mm/debug: Add tests for architecture exported page table helpers
Le 13/09/2019 à 08:24, Anshuman Khandual a écrit : On 09/12/2019 08:12 PM, Christophe Leroy wrote: Hi, I didn't get patch 1 of this series, and it is not on linuxppc-dev patchwork either. Can you resend ? Its there on linux-mm patchwork and copied on linux-ker...@vger.kernel.org as well. The CC list for the first patch was different than the second one. https://patchwork.kernel.org/patch/11142317/ Let me know if you can not find it either on MM or LKML list. I finaly found it on linux-mm archive, thanks. See my other mails and my fixing patch. Christophe ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V2 2/2] mm/pgtable/debug: Add test validating architecture page table helpers
Le 12/09/2019 à 17:52, Christophe Leroy a écrit : Le 12/09/2019 à 17:36, Christophe Leroy a écrit : Le 12/09/2019 à 17:00, Christophe Leroy a écrit : On 09/12/2019 06:02 AM, Anshuman Khandual wrote: This adds a test module which will validate architecture page table helpers and accessors regarding compliance with generic MM semantics expectations. This will help various architectures in validating changes to the existing page table helpers or addition of new ones. Test page table and memory pages creating it's entries at various level are all allocated from system memory with required alignments. If memory pages with required size and alignment could not be allocated, then all depending individual tests are skipped. Build failure on powerpc book3s/32. This is because asm/highmem.h is missing. It can't be included from asm/book3s/32/pgtable.h because it creates circular dependency. So it has to be included from mm/arch_pgtable_test.c In fact it is that needs to be added, adding directly provokes build failure at link time. I get the following failure, [ 0.704685] [ cut here ] [ 0.709239] initcall arch_pgtable_tests_init+0x0/0x228 returned with preemption imbalance preempt_disable() is called from kmap_atomic() which is called from pte_alloc_map() via pte_offset_map(). pte_unmap() has to be called to release the mapped pte and re-enable preemtion. Christophe [ 0.717539] WARNING: CPU: 0 PID: 1 at init/main.c:952 do_one_initcall+0x18c/0x1d4 [ 0.724922] CPU: 0 PID: 1 Comm: swapper Not tainted 5.3.0-rc7-s3k-dev-00880-g28fd02a838e5-dirty #2307 [ 0.734070] NIP: c070e674 LR: c070e674 CTR: c001292c [ 0.739084] REGS: df4a5dd0 TRAP: 0700 Not tainted (5.3.0-rc7-s3k-dev-00880-g28fd02a838e5-dirty) [ 0.747975] MSR: 00029032 CR: 28000222 XER: [ 0.754628] [ 0.754628] GPR00: c070e674 df4a5e88 df4a 004e 000a 00ca 38207265 [ 0.754628] GPR08: 1032 0800 22000422 c0004a7c [ 0.754628] GPR16: c081 c080 c0816f30 [ 0.754628] GPR24: c070dc20 c074702c 0006 009c c0724494 c074e140 [ 0.789339] NIP [c070e674] do_one_initcall+0x18c/0x1d4 [ 0.794435] LR [c070e674] do_one_initcall+0x18c/0x1d4 [ 0.799437] Call Trace: [ 0.801867] [df4a5e88] [c070e674] do_one_initcall+0x18c/0x1d4 (unreliable) [ 0.808694] [df4a5ee8] [c070e8c0] kernel_init_freeable+0x204/0x2dc [ 0.814830] [df4a5f28] [c0004a94] kernel_init+0x18/0x110 [ 0.820107] [df4a5f38] [c00122ac] ret_from_kernel_thread+0x14/0x1c [ 0.826220] Instruction dump: [ 0.829161] 4beb1069 7d2000a6 61298000 7d200124 89210008 2f89 41be0048 3c60c06a [ 0.836849] 38a10008 7fa4eb78 3863cacc 4b915115 <0fe0> 482c 81220070 712a0004 [ 0.844723] ---[ end trace 969d686308d40b33 ]--- Then starting init fails: [ 3.894074] Run /init as init process [ 3.898403] Failed to execute /init (error -14) [ 3.903009] Run /sbin/init as init process [ 3.907172] Run /etc/init as init process [ 3.911251] Run /bin/init as init process [ 3.915513] Run /bin/sh as init process [ 3.919471] Starting init: /bin/sh exists but couldn't execute it (error -14) [ 3.926732] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. [ 3.940864] CPU: 0 PID: 1 Comm: init Tainted: G W 5.3.0-rc7-s3k-dev-00880-g28fd02a838e5-dirty #2307 [ 3.951165] Call Trace: [ 3.953617] [df4a5ec8] [c002392c] panic+0x12c/0x320 (unreliable) [ 3.959621] [df4a5f28] [c0004b8c] rootfs_mount+0x0/0x2c [ 3.964849] [df4a5f38] [c00122ac] ret_from_kernel_thread+0x14/0x1c Christophe ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V2 0/2] mm/debug: Add tests for architecture exported page table helpers
On 09/12/2019 08:12 PM, Christophe Leroy wrote: > Hi, > > I didn't get patch 1 of this series, and it is not on linuxppc-dev patchwork > either. Can you resend ? Its there on linux-mm patchwork and copied on linux-ker...@vger.kernel.org as well. The CC list for the first patch was different than the second one. https://patchwork.kernel.org/patch/11142317/ Let me know if you can not find it either on MM or LKML list. - Anshuman ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH] mm/pgtable/debug: Fix test validating architecture page table helpers
Fix build failure on powerpc. Fix preemption imbalance. Signed-off-by: Christophe Leroy --- mm/arch_pgtable_test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/arch_pgtable_test.c b/mm/arch_pgtable_test.c index 8b4a92756ad8..f2b3c9ec35fa 100644 --- a/mm/arch_pgtable_test.c +++ b/mm/arch_pgtable_test.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -400,6 +401,8 @@ static int __init arch_pgtable_tests_init(void) p4d_clear_tests(p4dp); pgd_clear_tests(mm, pgdp); + pte_unmap(ptep); + pmd_populate_tests(mm, pmdp, saved_ptep); pud_populate_tests(mm, pudp, saved_pmdp); p4d_populate_tests(mm, p4dp, saved_pudp); -- 2.13.3 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc