[PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE2200d

6 messages, 2 authors, 2020-09-01 · open the first message on its own page

[PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

From: Aneesh Kumar K.V <hidden>
Date: 2020-09-01 08:05:06

The test is broken w.r.t page table update rules and results in kernel
crash as below. Disable the support untill we get the tests updated.

[   21.083506] ------------[ cut here ]------------
[   21.083519] kernel BUG at arch/powerpc/mm/pgtable.c:304!
cpu 0x0: Vector: 700 (Program Check) at [c000000c6d1e76c0]
    pc: c00000000009a5ec: assert_pte_locked+0x14c/0x380
    lr: c0000000005eeeec: pte_update+0x11c/0x190
    sp: c000000c6d1e7950
   msr: 8000000002029033
  current = 0xc000000c6d172c80
  paca    = 0xc000000003ba0000   irqmask: 0x03   irq_happened: 0x01
    pid   = 1, comm = swapper/0
kernel BUG at arch/powerpc/mm/pgtable.c:304!
Linux version 5.9.0-rc2-34902-g4da73871507c (kvaneesh@ltczz75-lp2) (gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #301 SMP Tue Sep 1 02:28:29 CDT 2020
enter ? for help
[link register   ] c0000000005eeeec pte_update+0x11c/0x190
[c000000c6d1e7950] 0000000000000001 (unreliable)
[c000000c6d1e79b0] c0000000005eee14 pte_update+0x44/0x190
[c000000c6d1e7a10] c000000001a2ca9c pte_advanced_tests+0x160/0x3d8
[c000000c6d1e7ab0] c000000001a2d4fc debug_vm_pgtable+0x7e8/0x1338
[c000000c6d1e7ba0] c0000000000116ec do_one_initcall+0xac/0x5f0
[c000000c6d1e7c80] c0000000019e4fac kernel_init_freeable+0x4dc/0x5a4
[c000000c6d1e7db0] c000000000012474 kernel_init+0x24/0x160
[c000000c6d1e7e20] c00000000000cbd0 ret_from_kernel_thread+0x5c/0x6c

With DEBUG_VM disabled

[   20.530152] BUG: Kernel NULL pointer dereference on read at 0x00000000
[   20.530183] Faulting instruction address: 0xc0000000000df330
cpu 0x33: Vector: 380 (Data SLB Access) at [c000000c6d19f700]
    pc: c0000000000df330: memset+0x68/0x104
    lr: c00000000009f6d8: hash__pmdp_huge_get_and_clear+0xe8/0x1b0
    sp: c000000c6d19f990
   msr: 8000000002009033
   dar: 0
  current = 0xc000000c6d177480
  paca    = 0xc00000001ec4f400   irqmask: 0x03   irq_happened: 0x01
    pid   = 1, comm = swapper/0
Linux version 5.9.0-rc2-34902-g4da73871507c (kvaneesh@ltczz75-lp2) (gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #302 SMP Tue Sep 1 02:56:02 CDT 2020
enter ? for help
[link register   ] c00000000009f6d8 hash__pmdp_huge_get_and_clear+0xe8/0x1b0
[c000000c6d19f990] c00000000009f748 hash__pmdp_huge_get_and_clear+0x158/0x1b0 (unreliable)
[c000000c6d19fa10] c0000000019ebf30 pmd_advanced_tests+0x1f0/0x378
[c000000c6d19fab0] c0000000019ed088 debug_vm_pgtable+0x79c/0x1244
[c000000c6d19fba0] c0000000000116ec do_one_initcall+0xac/0x5f0
[c000000c6d19fc80] c0000000019a4fac kernel_init_freeable+0x4dc/0x5a4
[c000000c6d19fdb0] c000000000012474 kernel_init+0x24/0x160
[c000000c6d19fe20] c00000000000cbd0 ret_from_kernel_thread+0x5c/0x6c
33:mon>

Signed-off-by: Aneesh Kumar K.V <redacted>
---
 arch/powerpc/Kconfig | 1 -
 1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 65bed1fdeaad..787e829b6f25 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -116,7 +116,6 @@ config PPC
 	#
 	select ARCH_32BIT_OFF_T if PPC32
 	select ARCH_HAS_DEBUG_VIRTUAL
-	select ARCH_HAS_DEBUG_VM_PGTABLE
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_ELF_RANDOMIZE
 	select ARCH_HAS_FORTIFY_SOURCE
-- 
2.26.2

Re: [PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

From: Christophe Leroy <hidden>
Date: 2020-09-01 08:12:41


Le 01/09/2020 à 10:02, Aneesh Kumar K.V a écrit :
The test is broken w.r.t page table update rules and results in kernel
crash as below. Disable the support untill we get the tests updated.


Signed-off-by: Aneesh Kumar K.V <redacted>
Any Fixes: tag ?
quoted hunk
---
  arch/powerpc/Kconfig | 1 -
  1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 65bed1fdeaad..787e829b6f25 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -116,7 +116,6 @@ config PPC
  	#
  	select ARCH_32BIT_OFF_T if PPC32
  	select ARCH_HAS_DEBUG_VIRTUAL
-	select ARCH_HAS_DEBUG_VM_PGTABLE

You say you remove support for ppc64 but you are removing it for both 
PPC64 and PPC32. Should you replace the line by:

	select ARCH_HAS_DEBUG_VM_PGTABLE if PPC32
  	select ARCH_HAS_DEVMEM_IS_ALLOWED
  	select ARCH_HAS_ELF_RANDOMIZE
  	select ARCH_HAS_FORTIFY_SOURCE
What about Documentation/features/debug/debug-vm-pgtable/arch-support.txt ?

Christophe

Re: [PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

From: Aneesh Kumar K.V <hidden>
Date: 2020-09-01 08:14:57

On 9/1/20 1:40 PM, Christophe Leroy wrote:

Le 01/09/2020 à 10:02, Aneesh Kumar K.V a écrit :
quoted
The test is broken w.r.t page table update rules and results in kernel
crash as below. Disable the support untill we get the tests updated.


Signed-off-by: Aneesh Kumar K.V <redacted>
Any Fixes: tag ?
quoted
---
  arch/powerpc/Kconfig | 1 -
  1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 65bed1fdeaad..787e829b6f25 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -116,7 +116,6 @@ config PPC
      #
      select ARCH_32BIT_OFF_T if PPC32
      select ARCH_HAS_DEBUG_VIRTUAL
-    select ARCH_HAS_DEBUG_VM_PGTABLE

You say you remove support for ppc64 but you are removing it for both 
PPC64 and PPC32. Should you replace the line by:
Does it work on PPC32 with DEBUG_VM enabled? I was expecting it will be 
broken there too.
     select ARCH_HAS_DEBUG_VM_PGTABLE if PPC32
quoted
      select ARCH_HAS_DEVMEM_IS_ALLOWED
      select ARCH_HAS_ELF_RANDOMIZE
      select ARCH_HAS_FORTIFY_SOURCE
What about Documentation/features/debug/debug-vm-pgtable/arch-support.txt ?
I am hoping we can enable the config once we resolve the test issues. 
may be in next merge window.

-aneesh


Re: [PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

From: Christophe Leroy <hidden>
Date: 2020-09-01 08:17:49


Le 01/09/2020 à 10:12, Aneesh Kumar K.V a écrit :
On 9/1/20 1:40 PM, Christophe Leroy wrote:
quoted

Le 01/09/2020 à 10:02, Aneesh Kumar K.V a écrit :
quoted
The test is broken w.r.t page table update rules and results in kernel
crash as below. Disable the support untill we get the tests updated.


Signed-off-by: Aneesh Kumar K.V <redacted>
Any Fixes: tag ?
quoted
---
  arch/powerpc/Kconfig | 1 -
  1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 65bed1fdeaad..787e829b6f25 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -116,7 +116,6 @@ config PPC
      #
      select ARCH_32BIT_OFF_T if PPC32
      select ARCH_HAS_DEBUG_VIRTUAL
-    select ARCH_HAS_DEBUG_VM_PGTABLE

You say you remove support for ppc64 but you are removing it for both 
PPC64 and PPC32. Should you replace the line by:
Does it work on PPC32 with DEBUG_VM enabled? I was expecting it will be 
broken there too.
I was wondering. I have just started a build to test that on my 8xx. 
I'll tell you before noon (Paris).

Christophe
quoted
     select ARCH_HAS_DEBUG_VM_PGTABLE if PPC32
quoted
      select ARCH_HAS_DEVMEM_IS_ALLOWED
      select ARCH_HAS_ELF_RANDOMIZE
      select ARCH_HAS_FORTIFY_SOURCE
What about 
Documentation/features/debug/debug-vm-pgtable/arch-support.txt ?
I am hoping we can enable the config once we resolve the test issues. 
may be in next merge window.

-aneesh

Re: [PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

From: Christophe Leroy <hidden>
Date: 2020-09-01 09:15:24


Le 01/09/2020 à 10:15, Christophe Leroy a écrit :

Le 01/09/2020 à 10:12, Aneesh Kumar K.V a écrit :
quoted
On 9/1/20 1:40 PM, Christophe Leroy wrote:
quoted

Le 01/09/2020 à 10:02, Aneesh Kumar K.V a écrit :
quoted
The test is broken w.r.t page table update rules and results in kernel
crash as below. Disable the support untill we get the tests updated.


Signed-off-by: Aneesh Kumar K.V <redacted>
Any Fixes: tag ?
quoted
---
  arch/powerpc/Kconfig | 1 -
  1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 65bed1fdeaad..787e829b6f25 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -116,7 +116,6 @@ config PPC
      #
      select ARCH_32BIT_OFF_T if PPC32
      select ARCH_HAS_DEBUG_VIRTUAL
-    select ARCH_HAS_DEBUG_VM_PGTABLE

You say you remove support for ppc64 but you are removing it for both 
PPC64 and PPC32. Should you replace the line by:
Does it work on PPC32 with DEBUG_VM enabled? I was expecting it will 
be broken there too.
I was wondering. I have just started a build to test that on my 8xx. 
I'll tell you before noon (Paris).
There are warnings but it boots OK. So up to you, but if you deactivate 
it for both PPC32 and PPC64, say so in the subject like.

[    7.065399] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating 
architecture page table helpers
[    7.075155] ------------[ cut here ]------------
[    7.079590] WARNING: CPU: 0 PID: 1 at arch/powerpc/mm/pgtable.c:185 
set_pte_at+0x20/0xf4
[    7.087542] CPU: 0 PID: 1 Comm: swapper Not tainted 
5.9.0-rc2-s3k-dev-01348-g283e890ee4ad #3933
[    7.096122] NIP:  c000f634 LR: c07440f8 CTR: 00000000
[    7.101124] REGS: c9023c50 TRAP: 0700   Not tainted 
(5.9.0-rc2-s3k-dev-01348-g283e890ee4ad)
[    7.109445] MSR:  00029032 <EE,ME,IR,DR,RI>  CR: 53000339  XER: 80006100
[    7.116072]
[    7.116072] GPR00: c07440f8 c9023d08 c60e4000 c6ba4000 1efac000 
c6ba8eb0 c9023da8 00000001
[    7.116072] GPR08: 00000004 007346c9 c6ba8ebc 00000000 93000333 
00000000 c000390c 00000000
[    7.116072] GPR16: c0840000 00000ec9 000001ec 00734000 06ba8000 
c6bb0000 c05f43e8 1efac000
[    7.116072] GPR24: fffffff0 c6b96d08 c6ba8eac c6ba4000 1efac000 
007346c9 c6ba8eb0 007346c9
[    7.150796] NIP [c000f634] set_pte_at+0x20/0xf4
[    7.155274] LR [c07440f8] pte_advanced_tests+0xec/0x2bc
[    7.160401] Call Trace:
[    7.162831] [c9023d08] [c080db94] 0xc080db94 (unreliable)
[    7.168183] [c9023d28] [c07440f8] pte_advanced_tests+0xec/0x2bc
[    7.174036] [c9023dd8] [c0744498] debug_vm_pgtable+0x1d0/0x668
[    7.179827] [c9023e98] [c0734cd4] do_one_initcall+0x8c/0x1cc
[    7.185405] [c9023ef8] [c0735008] kernel_init_freeable+0x178/0x1d0
[    7.191511] [c9023f28] [c0003920] kernel_init+0x14/0x114
[    7.196763] [c9023f38] [c000e184] ret_from_kernel_thread+0x14/0x1c
[    7.202818] Instruction dump:
[    7.205754] bba10014 7c0803a6 38210020 4e800020 7c0802a6 9421ffe0 
bfc10018 90010024
[    7.213412] 83e60000 81250000 71270001 41820008 <0fe00000> 73e90040 
41820080 73ea0001
[    7.221249] ---[ end trace 95bbebcafa22d0f7 ]---
[    7.226049] ------------[ cut here ]------------
[    7.230438] WARNING: CPU: 0 PID: 1 at arch/powerpc/mm/pgtable.c:185 
set_pte_at+0x20/0xf4
[    7.238410] CPU: 0 PID: 1 Comm: swapper Tainted: G        W 
5.9.0-rc2-s3k-dev-01348-g283e890ee4ad #3933
[    7.248363] NIP:  c000f634 LR: c0744218 CTR: 00000000
[    7.253368] REGS: c9023c50 TRAP: 0700   Tainted: G        W 
(5.9.0-rc2-s3k-dev-01348-g283e890ee4ad)
[    7.263064] MSR:  00029032 <EE,ME,IR,DR,RI>  CR: 53000335  XER: a0006100
[    7.269690]
[    7.269690] GPR00: c0744218 c9023d08 c60e4000 c6ba4000 1efac000 
c6ba8eb0 c9023da8 00000001
[    7.269690] GPR08: 00000000 007341c9 00000000 007341c9 93000333 
00000000 c000390c 00000000
[    7.269690] GPR16: c0840000 00000ec9 000001ec 00734000 06ba8000 
c6bb0000 c05f43e8 1efac000
[    7.269690] GPR24: fffffff0 c6b96d08 c6ba8eac c6ba4000 1efac000 
007346c9 c6ba8eb0 007346c9
[    7.304418] NIP [c000f634] set_pte_at+0x20/0xf4
[    7.308892] LR [c0744218] pte_advanced_tests+0x20c/0x2bc
[    7.314105] Call Trace:
[    7.316535] [c9023d08] [c080db94] 0xc080db94 (unreliable)
[    7.321888] [c9023d28] [c0744218] pte_advanced_tests+0x20c/0x2bc
[    7.327826] [c9023dd8] [c0744498] debug_vm_pgtable+0x1d0/0x668
[    7.333613] [c9023e98] [c0734cd4] do_one_initcall+0x8c/0x1cc
[    7.339196] [c9023ef8] [c0735008] kernel_init_freeable+0x178/0x1d0
[    7.345300] [c9023f28] [c0003920] kernel_init+0x14/0x114
[    7.350551] [c9023f38] [c000e184] ret_from_kernel_thread+0x14/0x1c
[    7.356609] Instruction dump:
[    7.359545] bba10014 7c0803a6 38210020 4e800020 7c0802a6 9421ffe0 
bfc10018 90010024
[    7.367203] 83e60000 81250000 71270001 41820008 <0fe00000> 73e90040 
41820080 73ea0001
[    7.375039] ---[ end trace 95bbebcafa22d0f8 ]---
[    7.379783] ------------[ cut here ]------------
[    7.384228] WARNING: CPU: 0 PID: 1 at arch/powerpc/mm/pgtable.c:276 
set_huge_pte_at+0x104/0x134
[    7.392803] CPU: 0 PID: 1 Comm: swapper Tainted: G        W 
5.9.0-rc2-s3k-dev-01348-g283e890ee4ad #3933
[    7.402756] NIP:  c000f8fc LR: c074465c CTR: 00000000
[    7.407761] REGS: c9023d00 TRAP: 0700   Tainted: G        W 
(5.9.0-rc2-s3k-dev-01348-g283e890ee4ad)
[    7.417456] MSR:  00029032 <EE,ME,IR,DR,RI>  CR: 53000339  XER: a0006100
[    7.424082]
[    7.424082] GPR00: c074465c c9023db8 c60e4000 c6ba4000 000001ec 
c6ba8eb0 c9023e48 00000001
[    7.424082] GPR08: c6ba90ac 0000000b 007346c9 007341c9 93000333 
00000000 c000390c 00000000
[    7.424082] GPR16: c0840000 c6ba8eac 000001ec 00734000 06ba8000 
c6bb0000 c05f43e8 1efac000
[    7.424082] GPR24: c7fb39a0 c6ba8000 c6b96d08 000001cd 000006c9 
c0840000 007346c9 00000080
[    7.458810] NIP [c000f8fc] set_huge_pte_at+0x104/0x134
[    7.463885] LR [c074465c] debug_vm_pgtable+0x394/0x668
[    7.468928] Call Trace:
[    7.471358] [c9023db8] [c6ba8000] 0xc6ba8000 (unreliable)
[    7.476709] [c9023dd8] [c074465c] debug_vm_pgtable+0x394/0x668
[    7.482497] [c9023e98] [c0734cd4] do_one_initcall+0x8c/0x1cc
[    7.488081] [c9023ef8] [c0735008] kernel_init_freeable+0x178/0x1d0
[    7.494182] [c9023f28] [c0003920] kernel_init+0x14/0x114
[    7.499436] [c9023f38] [c000e184] ret_from_kernel_thread+0x14/0x1c
[    7.505494] Instruction dump:
[    7.508429] 7d2a482e 712a0800 40a2ff78 812204b4 2f890000 419e0014 
812900a0 55290034
[    7.516088] 2b890400 419e0014 57de06b0 4bffff54 <0fe00000> 4bffff3c 
7fa3eb78 90a10008
[    7.523925] ---[ end trace 95bbebcafa22d0f9 ]---


Christophe

Re: [PATCH] powerpc/mm: Remove DEBUG_VM_PGTABLE support on ppc64

From: Aneesh Kumar K.V <hidden>
Date: 2020-09-01 09:19:03

On 9/1/20 2:40 PM, Christophe Leroy wrote:

Le 01/09/2020 à 10:15, Christophe Leroy a écrit :
quoted

Le 01/09/2020 à 10:12, Aneesh Kumar K.V a écrit :
quoted
On 9/1/20 1:40 PM, Christophe Leroy wrote:
quoted

Le 01/09/2020 à 10:02, Aneesh Kumar K.V a écrit :
quoted
The test is broken w.r.t page table update rules and results in kernel
crash as below. Disable the support untill we get the tests updated.


Signed-off-by: Aneesh Kumar K.V <redacted>
Any Fixes: tag ?
quoted
---
  arch/powerpc/Kconfig | 1 -
  1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 65bed1fdeaad..787e829b6f25 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -116,7 +116,6 @@ config PPC
      #
      select ARCH_32BIT_OFF_T if PPC32
      select ARCH_HAS_DEBUG_VIRTUAL
-    select ARCH_HAS_DEBUG_VM_PGTABLE

You say you remove support for ppc64 but you are removing it for 
both PPC64 and PPC32. Should you replace the line by:
Does it work on PPC32 with DEBUG_VM enabled? I was expecting it will 
be broken there too.
I was wondering. I have just started a build to test that on my 8xx. 
I'll tell you before noon (Paris).
There are warnings but it boots OK. So up to you, but if you deactivate 
it for both PPC32 and PPC64, say so in the subject like.
I will update the subject line to indicate powerpc instead of ppc64

-aneesh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help