parisc: Switch from DISCONTIGMEM to SPARSEMEM
Helge Deller
maintainerPATCH 1/1 parisc: Switch from DISCONTIGMEM to SPARSEMEM
The commit 1c30844d2dfe ("mm: reclaim small amounts of memory when an external fragmentation event occurs") breaks memory management on a parisc c8000 workstation with this memory layout:
0) Start 0x0000000000000000 End 0x000000003fffffff Size 1024 MB 1) Start 0x0000000100000000 End 0x00000001bfdfffff Size 3070 MB 2) Start 0x0000004040000000 End 0x00000040ffffffff Size 3072 MB
With the patch 1c30844d2dfe, the kernel will incorrectly reclaim the first zone when it fills up, ignoring the fact that there are two completely free zones. Basiscally, it limits cache size to 1GiB.
The parisc kernel is currently using the DISCONTIGMEM implementation, but isn't NUMA. Avoid this issue and strange work-arounds by switching to the more commonly used SPARSEMEM implementation.
arch/parisc/Kconfig +4 -8
@@ -36,6 +36,7 @@ config PARISC select GENERIC_STRNCPY_FROM_USER select SYSCTL_ARCH_UNALIGN_ALLOW select SYSCTL_EXCEPTION_TRACE + select ARCH_DISCARD_MEMBLOCK select HAVE_MOD_ARCH_SPECIFIC select VIRT_TO_BUS select MODULES_USE_ELF_RELA
@@ -314,21 +315,16 @@ config ARCH_SELECT_MEMORY_MODEL def_bool y depends on 64BIT -config ARCH_DISCONTIGMEM_ENABLE +config ARCH_SPARSEMEM_ENABLE def_bool y depends on 64BIT config ARCH_FLATMEM_ENABLE def_bool y -config ARCH_DISCONTIGMEM_DEFAULT +config ARCH_SPARSEMEM_DEFAULT def_bool y - depends on ARCH_DISCONTIGMEM_ENABLE - -config NODES_SHIFT - int - default "3" - depends on NEED_MULTIPLE_NODES + depends on ARCH_SPARSEMEM_ENABLE source "kernel/Kconfig.hz"
arch/parisc/include/asm/mmzone.h +1 -57
63 lines not on this page · raw message
arch/parisc/include/asm/page.h +2 -2
@@ -147,9 +147,9 @@ extern int npmem_ranges;#define __pa (x) ((unsigned long)(x)-PAGE_OFFSET)#define __va (x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) -#ifndef CONFIG_DISCONTIGMEM +#ifndef CONFIG_SPARSEMEM #define pfn_valid (pfn) ((pfn) < max_mapnr) -#endif /* CONFIG_DISCONTIGMEM */ +#endif #ifdef CONFIG_HUGETLB_PAGE #define HPAGE_SHIFT PMD_SHIFT/* fixed for transparent huge pages */
arch/parisc/include/asm/sparsemem.h new file +14 -0
@@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef ASM_PARISC_SPARSEMEM_H +#define ASM_PARISC_SPARSEMEM_H + +/* We have these possible memory map layouts: +* Astro: 0-3.75, 67.75-68, 4-64 +* zx1: 0-1, 257-260, 4-256 +* Stretch (N-class): 0-2, 4-32, 34-xxx +*/ + +#define MAX_PHYSMEM_BITS 42 +#define SECTION_SIZE_BITS 27 + +#endif
arch/parisc/kernel/parisc_ksyms.c +0 -6
@@ -138,12 +138,6 @@ extern void $$dyncall(void);EXPORT_SYMBOL ($$dyncall);#endif -#ifdef CONFIG_DISCONTIGMEM -#include <asm/mmzone.h> -EXPORT_SYMBOL (node_data); -EXPORT_SYMBOL (pfnnid_map); -#endif -#ifdef CONFIG_FUNCTION_TRACER extern void _mcount (void );EXPORT_SYMBOL (_mcount);
arch/parisc/mm/init.c +46 -55
182 lines not on this page · raw message
Hi,
Quoted 8 lines · Helge Deller
The commit
1c30844d2dfe("mm: reclaim small amounts of memory when an external fragmentation event occurs") breaks memory management on a parisc c8000 workstation with this memory layout:0) Start 0x0000000000000000 End 0x000000003fffffff Size 1024 MB 1) Start 0x0000000100000000 End 0x00000001bfdfffff Size 3070 MB 2) Start 0x0000004040000000 End 0x00000040ffffffff Size 3072 MB
Quoted 8 lines
With the patch
1c30844d2dfe, the kernel will incorrectly reclaim the first zone when it fills up, ignoring the fact that there are two completely free zones. Basiscally, it limits cache size to 1GiB.The parisc kernel is currently using the DISCONTIGMEM implementation, but isn't NUMA. Avoid this issue and strange work-arounds by switching to the more commonly used SPARSEMEM implementation.
[..]
unfortunately this patch breaks booting on my J5000. The second CPU fails to start, and triggers a HPMC (Bus timeout). Running with this patch adding the nosmp command line option works. On my C3750 there's no problem.
Here's the dmesg:
[ 0.000000] Linux version 5.1.0-rc3-64bit+ (svens@t470p) (gcc version 7.4.0 (GCC)) #259 SMP Mon Apr 15 20:57:57 CEST 2019
[ 0.000000] CPU0: thread -1, cpu 0, socket 0
[ 0.000000] FP[0] enabled: Rev 1 Model 16
[ 0.000000] The 64-bit Kernel has started...
[ 0.000000] Kernel default page size is 4 KB. Huge pages disabled.
[ 0.000000] printk: bootconsole [ttyB0] enabled
[ 0.000000] Initialized PDC Console for debugging.
[ 0.000000] Determining PDC firmware type: System Map.
[ 0.000000] model 00005bd0 00000491 00000000 00000002 782482ee 100000f0 00000008 000000b2 000000b2
[ 0.000000] vers 00000201
[ 0.000000] CPUID vers 17 rev 5 (0x00000225)
[ 0.000000] capabilities 0x3
[ 0.000000] model 9000/785/J5000
[ 0.000000] Memory Ranges:
[ 0.000000] 0) Start 0x0000000000000000 End 0x00000000efffffff Size 3840 MB
[ 0.000000] 1) Start 0x00000010f0000000 End 0x00000010ffffffff Size 256 MB
[ 0.000000] Total Memory: 4096 MB
[ 0.000000] PDT: type PDT_PDC, size 50, entries 0, status 2, dbe_loc 0xffffffffffffffff, good_mem 171 MB
[ 0.000000] PDT: Firmware reports all memory OK.
[ 0.000000] LCD display at fffffff0f05d0008,fffffff0f05d0000 registered
[ 0.000000] percpu: Embedded 25 pages/cpu @(____ptrval____) s64064 r8192 d30144 u102400
[ 0.000000] SMP: bootstrap CPU ID is 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1032192
[ 0.000000] Kernel command line: HOME=/ root=/dev/sda4 panic_timeout=60 panic=10 console=ttyS0,9600 kgdboc=ttyS0,9600 palo_kernel=0/vmlinuz
[ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.000000] Memory: 4102676K/4194304K available (5660K kernel code, 1638K rwdata, 940K rodata, 444K init, 932K bss, 91628K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] NR_IRQS: 128
[ 0.000019] sched_clock: 64 bits at 440MHz, resolution 2ns, wraps every 4398046511103ns
[ 0.106184] Console: colour dummy device 160x64
[ 0.165835] Calibrating delay loop... 872.44 BogoMIPS (lpj=1744896)
[ 0.269845] pid_max: default: 32768 minimum: 301
[ 0.330589] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.422023] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.514921] *** VALIDATE proc ***
[ 0.558204] *** VALIDATE cgroup1 ***
[ 0.605858] *** VALIDATE cgroup2 ***
[ 0.655933] rcu: Hierarchical SRCU implementation.
[ 0.878065] smp: Bringing up secondary CPUs ...
[ 0.937862] smp: Brought up 1 node, 1 CPU
[ 0.994306] devtmpfs: initialized
[ 1.040437] random: get_random_u32 called from bucket_table_alloc+0x270/0x2a0 with crng_init=0
[ 1.154583] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 1.281884] futex hash table entries: 1024 (order: 3, 32768 bytes)
[ 1.366411] NET: Registered protocol family 16
[ 1.426212] Searching for devices...
[ 1.717848] Found devices:
[ 1.749864] 1. Astro BC Runway Port at 0xfffffffffed00000 [10] { 12, 0x0, 0x582, 0x0000b }
[ 1.861898] 2. Elroy PCI Bridge at 0xfffffffffed30000 [10/0] { 13, 0x0, 0x782, 0x0000a }
[ 1.965864] 3. Elroy PCI Bridge at 0xfffffffffed32000 [10/1] { 13, 0x0, 0x782, 0x0000a }
[ 2.073861] 4. Elroy PCI Bridge at 0xfffffffffed34000 [10/2] { 13, 0x0, 0x782, 0x0000a }
[ 2.177861] 5. Elroy PCI Bridge at 0xfffffffffed38000 [10/4] { 13, 0x0, 0x782, 0x0000a }
[ 2.285861] 6. Elroy PCI Bridge at 0xfffffffffed3c000 [10/6] { 13, 0x0, 0x782, 0x0000a }
[ 2.393860] 7. Forte W 2-way at 0xfffffffffffa0000 [32] { 0, 0x0, 0x5bd, 0x00004 }
[ 2.493860] 8. Forte W 2-way at 0xfffffffffffa2000 [34] { 0, 0x0, 0x5bd, 0x00004 }
[ 2.593860] 9. Memory at 0xfffffffffed10200 [49] { 1, 0x0, 0x088, 0x00009 }
[ 2.681855] Enabling regular chassis codes support v0.05
[ 2.874416] CPU1: thread -1, cpu 0, socket 1
[ 2.935257] Releasing cpu 1 now, hpa=fffffffffffa2000[hangs here forever]
One interesting detail is that if i reserve PAGE0 from the memory mem, at least the HPMC handler from the kernel is triggered:
[ 2.785875] Backtrace: [ 2.785875] [<00000000401d20b4>] smp_boot_one_cpu+0x15c/0x1e8 [ 2.785875] [<00000000401d2270>] __cpu_up+0xe0/0xf0 [ 2.785875] [<00000000401f2580>] bringup_cpu+0xa0/0x1e0 [ 2.785875] [<00000000401f1770>] cpuhp_invoke_callback+0x118/0x848 [ 2.785875] [<00000000401f4848>] do_cpu_up+0x290/0x3d8 [ 2.785875] [<00000000401f49f8>] cpu_up+0x68/0x80 [ 2.785875] [<000000004010c47c>] processor_probe+0x3ec/0x420 [ 2.785875] [<00000000401cae7c>] parisc_driver_probe+0x6c/0x98 [ 2.785875] [<000000004083cb20>] really_probe+0x398/0x560 [ 2.785875] [<000000004083d1e8>] driver_probe_device+0x198/0x1a0 [ 2.785875] [<000000004083d3d0>] __driver_attach+0x1e0/0x1e8 [ 2.785875] [<0000000040837ba0>] bus_for_each_dev+0x108/0x170 [ 2.785875] [<000000004083bbb8>] driver_attach+0x80/0x98 [ 2.785875] [<000000004083ab70>] bus_add_driver+0x298/0x4b8 [ 2.785875] [<000000004083e628>] driver_register+0xe0/0x268 [ 2.785875] [<00000000401cb0a0>] register_parisc_driver+0xa0/0x118 [ 2.785875] [<000000004010cb44>] processor_init+0x6c/0x80 [ 2.785875] [<0000000040108348>] parisc_init+0x348/0x5c0 [ 2.785875] [<00000000401b30bc>] do_one_initcall+0xb4/0x2c8 [ 2.785875] [<0000000040102ac0>] kernel_init_freeable+0x5a0/0x730 [ 2.785875] [<0000000040bb0890>] kernel_init+0x60/0x318 [ 2.785875] [<00000000401be020>] ret_from_kernel_thread+0x20/0x28 [ 2.785875] [ 2.785875] [ 2.785875] High Priority Machine Check (HPMC): Code=1 (High-priority machine check (HPMC)) at addr 0000000000000000 [ 2.785875] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.0.0-64bit+ #116 [ 2.785875] Hardware name: 9000/785/J5000 [ 2.785875] [ 2.785875] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI [ 2.785875] PSW: 00001000000001001111011100001111 Not tainted [ 2.785875] r00-03 000000ff0804f70f 0000000040d27a80 0000000040bab790 00000000400ecfe0 [ 2.785875] r04-07 0000000040c58a80 0000000000000064 0000000000000002 0000000040ecee30 [ 2.785875] r08-11 00000000400ecfb0 0000000040c7ba80 0000000000000001 000000004106c858 [ 2.785875] r12-15 000000004106c860 0000000040f0c9e8 0000000000000064 0000000000000001 [ 2.785875] r16-19 0000000000000000 0000000040d29a80 0000000040c78280 000000005666f671 [ 2.785875] r20-23 0000000000000000 0000000000000000 00000000000001b8 000000000000abe0 [ 2.785875] r24-27 00000000400ecfe0 0000000000000000 0000000000000000 0000000040c58a80 [ 2.785875] r28-31 000000000000abe0 00000000400ed040 00000000400ed070 0000000056679e96 [ 2.785875] sr00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 2.785875] sr04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 2.785875] [ 2.785875] IASQ: 0000000000000000 0000000000000000 IAOQ: 0000000040bab7c8 0000000040bab7cc [ 2.785875] IIR: 82953fb5 ISR: 0000000010340000 IOR: 000000003b4ed078 [ 2.785875] CPU: 0 CR30: 00000000400ec000 CR31: 00000000ffffffff [ 2.785875] ORIG_R28: 0000000000000000 [ 2.785875] IAOQ[0]: __udelay+0xe0/0x110 [ 2.785875] IAOQ[1]: __udelay+0xe4/0x110 [ 2.785875] RP(r2): __udelay+0xa8/0x110 [ 2.785875] Backtrace: [ 2.785875] [<00000000401d20b4>] smp_boot_one_cpu+0x15c/0x1e8 [ 2.785875] [<00000000401d2270>] __cpu_up+0xe0/0xf0 [ 2.785875] [<00000000401f2580>] bringup_cpu+0xa0/0x1e0 [ 2.785875] [<00000000401f1770>] cpuhp_invoke_callback+0x118/0x848 [ 2.785875] [<00000000401f4848>] do_cpu_up+0x290/0x3d8 [ 2.785875] [<00000000401f49f8>] cpu_up+0x68/0x80 [ 2.785875] [<000000004010c47c>] processor_probe+0x3ec/0x420 [ 2.785875] [<00000000401cae7c>] parisc_driver_probe+0x6c/0x98 [ 2.785875] [<000000004083cb20>] really_probe+0x398/0x560 [ 2.785875] [<000000004083d1e8>] driver_probe_device+0x198/0x1a0 [ 2.785875] [<000000004083d3d0>] __driver_attach+0x1e0/0x1e8 [ 2.785875] [<0000000040837ba0>] bus_for_each_dev+0x108/0x170 [ 2.785875] [<000000004083bbb8>] driver_attach+0x80/0x98 [ 2.785875] [<000000004083ab70>] bus_add_driver+0x298/0x4b8 [ 2.785875] [<000000004083e628>] driver_register+0xe0/0x268 [ 2.785875] [<00000000401cb0a0>] register_parisc_driver+0xa0/0x118 [ 2.785875] [<000000004010cb44>] processor_init+0x6c/0x80 [ 2.785875] [<0000000040108348>] parisc_init+0x348/0x5c0 [ 2.785875] [<00000000401b30bc>] do_one_initcall+0xb4/0x2c8 [ 2.785875] [<0000000040102ac0>] kernel_init_freeable+0x5a0/0x730 [ 2.785875] [<0000000040bb0890>] kernel_init+0x60/0x318 [ 2.785875] [<00000000401be020>] ret_from_kernel_thread+0x20/0x28 [ 2.785875] [ 2.785875] Kernel panic - not syncing: High Priority Machine Check (HPMC) [ 2.785875] Rebooting in 10 seconds..
PIM record shows:
----------------- Processor 1 HPMC Information ------------------
Timestamp =
Thu Apr 11 13:35:21 GMT 2019 (20:19:04:11:13:35:21)
HPMC Chassis Codes = 2cbf0 2510b 2cbf5 2cbfc
General Registers 0 - 31
00-03 0000000000000000 0000000040000000 000000f0f0002090 0000000000000000 04-07 0000000000000e33 fffffff0f0400008 00000000000000fa fffffff0f0002f68 08-11 fffffffffee003f8 00000000000000c4 000000000000000a fffffff0f0001608 12-15 00000000000000f2 0000000000000001 0000000000000001 00000000000000f3 16-19 0000000002020202 0000000000000002 fffffff0f000016c 0440c24000000000 20-23 00000000000000cc 0000000000000001 0000000000000009 0000000000000000 24-27 000000000400c240 fffffffffffa2000 fffffff0f0000018 fffffff0f0412000 28-31 fffffffffffa2000 fffffff0f040ae70 00000010fb0e6f60 0000000000000000
<Press any key to continue (q to quit)>
Control Registers 0 - 31
00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000 04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 08-11 0000000000000000 0000000000000000 0000000000000000 0000000000000000 12-15 0000000000000000 0000000000000000 0000000000000000 0000000000000000 16-19 0000001959e11c2f 0000000000000000 0000000000100274 000000000fd010de 20-23 00000000a637ffec c0000000398e6f68 000000ff00007f08 0000000000000000 24-27 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 28-31 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
Space Registers 0 - 7
00-03 00000000 00000000 00000000 00000000 04-07 00000000 00000000 00000000 00000000
<Press any key to continue (q to quit)>
IIA Space = 0x0000000000000000 IIA Offset = 0x0000000000100278 Check Type = 0x20000000 CPU State = 0x9e000004 Cache Check = 0x00000000 TLB Check = 0x00000000 Bus Check = 0x0030103b Assists Check = 0x00000000 Assist State = 0x00000000 Path Info = 0x00000000 System Responder Address = 0x000000fffb0e6f68 System Requestor Address = 0xfffffffffffa2000
0000000040100250 <smp_slave_stext>:
40100250: 00 00 38 20 mtsp r0,sr4
40100254: 00 00 78 20 mtsp r0,sr5
40100258: 00 00 b8 20 mtsp r0,sr6
4010025c: 00 00 f8 20 mtsp r0,sr7
40100260: 23 d6 50 20 ldil L%106c800,sp
40100264: 37 de 00 b0 ldo 58(sp),sp
40100268: 0f c0 10 de ldd 0(sp),sp
4010026c: 20 20 08 00 ldil L%40000000,r1
40100270: 08 3e 04 1e sub sp,r1,sp 40100274: 0f d0 10 de ldd 8(sp),sp <-- HPMC
40100278: 03 de 18 40 mtctl sp,tr6
4010027c: 37 de 01 80 ldo c0(sp),sp
40100280: 20 94 20 20 ldil L%1029000,r4
40100284: 34 84 00 00 ldo 0(r4),r4
40100288: 03 04 18 40 mtctl r4,tr0
4010028c: 03 24 18 40 mtctl r4,tr1
40100290: 08 1a 02 43 copy r26,r3
40100294: 21 66 18 02 ldil L%4010c800,r11
40100298: 35 6b 0e c0 ldo 760(r11),r11
4010029c: e8 1f 1c b5 b,l 401000fc <common_stext>,r0
401002a0: 08 00 02 40 nopsp (r30) is 00000010fb0e6f60, which is valid RAM. However, it's triggering a HPMC and the Display show Bus timeout. Does anyone have an idea what's going wrong?
Regards,
Sven
The stack pointer contains fffffff0f0000018:
24-27 000000000400c240 fffffffffffa2000 fffffff0f0000018 fffffff0f0412000
I presume that it is initialized incorrectly:
[ 0.000000] Memory Ranges: [ 0.000000] 0) Start 0x0000000000000000 End 0x00000000efffffff Size 3840 MB [ 0.000000] 1) Start 0x00000010f0000000 End 0x00000010ffffffff Size 256 MB
Dave
Quoted 250 lines · Sven Schnelle
Hi,
Quoted 8 lines · Helge Deller
The commit
1c30844d2dfe("mm: reclaim small amounts of memory when an external fragmentation event occurs") breaks memory management on a parisc c8000 workstation with this memory layout:0) Start 0x0000000000000000 End 0x000000003fffffff Size 1024 MB 1) Start 0x0000000100000000 End 0x00000001bfdfffff Size 3070 MB 2) Start 0x0000004040000000 End 0x00000040ffffffff Size 3072 MBQuoted 8 lines
With the patch
1c30844d2dfe, the kernel will incorrectly reclaim the first zone when it fills up, ignoring the fact that there are two completely free zones. Basiscally, it limits cache size to 1GiB.The parisc kernel is currently using the DISCONTIGMEM implementation, but isn't NUMA. Avoid this issue and strange work-arounds by switching to the more commonly used SPARSEMEM implementation.
[..]unfortunately this patch breaks booting on my J5000. The second CPU fails to start, and triggers a HPMC (Bus timeout). Running with this patch adding the nosmp command line option works. On my C3750 there's no problem.
Here's the dmesg:
[ 0.000000] Linux version 5.1.0-rc3-64bit+ (svens@t470p) (gcc version 7.4.0 (GCC)) #259 SMP Mon Apr 15 20:57:57 CEST 2019 [ 0.000000] CPU0: thread -1, cpu 0, socket 0 [ 0.000000] FP[0] enabled: Rev 1 Model 16 [ 0.000000] The 64-bit Kernel has started... [ 0.000000] Kernel default page size is 4 KB. Huge pages disabled. [ 0.000000] printk: bootconsole [ttyB0] enabled [ 0.000000] Initialized PDC Console for debugging. [ 0.000000] Determining PDC firmware type: System Map. [ 0.000000] model 00005bd0 00000491 00000000 00000002 782482ee 100000f0 00000008 000000b2 000000b2 [ 0.000000] vers 00000201 [ 0.000000] CPUID vers 17 rev 5 (0x00000225) [ 0.000000] capabilities 0x3 [ 0.000000] model 9000/785/J5000 [ 0.000000] Memory Ranges: [ 0.000000] 0) Start 0x0000000000000000 End 0x00000000efffffff Size 3840 MB [ 0.000000] 1) Start 0x00000010f0000000 End 0x00000010ffffffff Size 256 MB [ 0.000000] Total Memory: 4096 MB [ 0.000000] PDT: type PDT_PDC, size 50, entries 0, status 2, dbe_loc 0xffffffffffffffff, good_mem 171 MB [ 0.000000] PDT: Firmware reports all memory OK. [ 0.000000] LCD display at fffffff0f05d0008,fffffff0f05d0000 registered [ 0.000000] percpu: Embedded 25 pages/cpu @(____ptrval____) s64064 r8192 d30144 u102400 [ 0.000000] SMP: bootstrap CPU ID is 0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 1032192 [ 0.000000] Kernel command line: HOME=/ root=/dev/sda4 panic_timeout=60 panic=10 console=ttyS0,9600 kgdboc=ttyS0,9600 palo_kernel=0/vmlinuz [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes) [ 0.000000] Memory: 4102676K/4194304K available (5660K kernel code, 1638K rwdata, 940K rodata, 444K init, 932K bss, 91628K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=16, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] NR_IRQS: 128 [ 0.000019] sched_clock: 64 bits at 440MHz, resolution 2ns, wraps every 4398046511103ns [ 0.106184] Console: colour dummy device 160x64 [ 0.165835] Calibrating delay loop... 872.44 BogoMIPS (lpj=1744896) [ 0.269845] pid_max: default: 32768 minimum: 301 [ 0.330589] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes) [ 0.422023] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes) [ 0.514921] *** VALIDATE proc *** [ 0.558204] *** VALIDATE cgroup1 *** [ 0.605858] *** VALIDATE cgroup2 *** [ 0.655933] rcu: Hierarchical SRCU implementation. [ 0.878065] smp: Bringing up secondary CPUs ... [ 0.937862] smp: Brought up 1 node, 1 CPU [ 0.994306] devtmpfs: initialized [ 1.040437] random: get_random_u32 called from bucket_table_alloc+0x270/0x2a0 with crng_init=0 [ 1.154583] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 1.281884] futex hash table entries: 1024 (order: 3, 32768 bytes) [ 1.366411] NET: Registered protocol family 16 [ 1.426212] Searching for devices... [ 1.717848] Found devices: [ 1.749864] 1. Astro BC Runway Port at 0xfffffffffed00000 [10] { 12, 0x0, 0x582, 0x0000b } [ 1.861898] 2. Elroy PCI Bridge at 0xfffffffffed30000 [10/0] { 13, 0x0, 0x782, 0x0000a } [ 1.965864] 3. Elroy PCI Bridge at 0xfffffffffed32000 [10/1] { 13, 0x0, 0x782, 0x0000a } [ 2.073861] 4. Elroy PCI Bridge at 0xfffffffffed34000 [10/2] { 13, 0x0, 0x782, 0x0000a } [ 2.177861] 5. Elroy PCI Bridge at 0xfffffffffed38000 [10/4] { 13, 0x0, 0x782, 0x0000a } [ 2.285861] 6. Elroy PCI Bridge at 0xfffffffffed3c000 [10/6] { 13, 0x0, 0x782, 0x0000a } [ 2.393860] 7. Forte W 2-way at 0xfffffffffffa0000 [32] { 0, 0x0, 0x5bd, 0x00004 } [ 2.493860] 8. Forte W 2-way at 0xfffffffffffa2000 [34] { 0, 0x0, 0x5bd, 0x00004 } [ 2.593860] 9. Memory at 0xfffffffffed10200 [49] { 1, 0x0, 0x088, 0x00009 } [ 2.681855] Enabling regular chassis codes support v0.05 [ 2.874416] CPU1: thread -1, cpu 0, socket 1 [ 2.935257] Releasing cpu 1 now, hpa=fffffffffffa2000[hangs here forever]
One interesting detail is that if i reserve PAGE0 from the memory mem, at least the HPMC handler from the kernel is triggered:
[ 2.785875] Backtrace: [ 2.785875] [<00000000401d20b4>] smp_boot_one_cpu+0x15c/0x1e8 [ 2.785875] [<00000000401d2270>] __cpu_up+0xe0/0xf0 [ 2.785875] [<00000000401f2580>] bringup_cpu+0xa0/0x1e0 [ 2.785875] [<00000000401f1770>] cpuhp_invoke_callback+0x118/0x848 [ 2.785875] [<00000000401f4848>] do_cpu_up+0x290/0x3d8 [ 2.785875] [<00000000401f49f8>] cpu_up+0x68/0x80 [ 2.785875] [<000000004010c47c>] processor_probe+0x3ec/0x420 [ 2.785875] [<00000000401cae7c>] parisc_driver_probe+0x6c/0x98 [ 2.785875] [<000000004083cb20>] really_probe+0x398/0x560 [ 2.785875] [<000000004083d1e8>] driver_probe_device+0x198/0x1a0 [ 2.785875] [<000000004083d3d0>] __driver_attach+0x1e0/0x1e8 [ 2.785875] [<0000000040837ba0>] bus_for_each_dev+0x108/0x170 [ 2.785875] [<000000004083bbb8>] driver_attach+0x80/0x98 [ 2.785875] [<000000004083ab70>] bus_add_driver+0x298/0x4b8 [ 2.785875] [<000000004083e628>] driver_register+0xe0/0x268 [ 2.785875] [<00000000401cb0a0>] register_parisc_driver+0xa0/0x118 [ 2.785875] [<000000004010cb44>] processor_init+0x6c/0x80 [ 2.785875] [<0000000040108348>] parisc_init+0x348/0x5c0 [ 2.785875] [<00000000401b30bc>] do_one_initcall+0xb4/0x2c8 [ 2.785875] [<0000000040102ac0>] kernel_init_freeable+0x5a0/0x730 [ 2.785875] [<0000000040bb0890>] kernel_init+0x60/0x318 [ 2.785875] [<00000000401be020>] ret_from_kernel_thread+0x20/0x28 [ 2.785875] [ 2.785875] [ 2.785875] High Priority Machine Check (HPMC): Code=1 (High-priority machine check (HPMC)) at addr 0000000000000000 [ 2.785875] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.0.0-64bit+ #116 [ 2.785875] Hardware name: 9000/785/J5000 [ 2.785875] [ 2.785875] YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI [ 2.785875] PSW: 00001000000001001111011100001111 Not tainted [ 2.785875] r00-03 000000ff0804f70f 0000000040d27a80 0000000040bab790 00000000400ecfe0 [ 2.785875] r04-07 0000000040c58a80 0000000000000064 0000000000000002 0000000040ecee30 [ 2.785875] r08-11 00000000400ecfb0 0000000040c7ba80 0000000000000001 000000004106c858 [ 2.785875] r12-15 000000004106c860 0000000040f0c9e8 0000000000000064 0000000000000001 [ 2.785875] r16-19 0000000000000000 0000000040d29a80 0000000040c78280 000000005666f671 [ 2.785875] r20-23 0000000000000000 0000000000000000 00000000000001b8 000000000000abe0 [ 2.785875] r24-27 00000000400ecfe0 0000000000000000 0000000000000000 0000000040c58a80 [ 2.785875] r28-31 000000000000abe0 00000000400ed040 00000000400ed070 0000000056679e96 [ 2.785875] sr00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 2.785875] sr04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 2.785875] [ 2.785875] IASQ: 0000000000000000 0000000000000000 IAOQ: 0000000040bab7c8 0000000040bab7cc [ 2.785875] IIR: 82953fb5 ISR: 0000000010340000 IOR: 000000003b4ed078 [ 2.785875] CPU: 0 CR30: 00000000400ec000 CR31: 00000000ffffffff [ 2.785875] ORIG_R28: 0000000000000000 [ 2.785875] IAOQ[0]: __udelay+0xe0/0x110 [ 2.785875] IAOQ[1]: __udelay+0xe4/0x110 [ 2.785875] RP(r2): __udelay+0xa8/0x110 [ 2.785875] Backtrace: [ 2.785875] [<00000000401d20b4>] smp_boot_one_cpu+0x15c/0x1e8 [ 2.785875] [<00000000401d2270>] __cpu_up+0xe0/0xf0 [ 2.785875] [<00000000401f2580>] bringup_cpu+0xa0/0x1e0 [ 2.785875] [<00000000401f1770>] cpuhp_invoke_callback+0x118/0x848 [ 2.785875] [<00000000401f4848>] do_cpu_up+0x290/0x3d8 [ 2.785875] [<00000000401f49f8>] cpu_up+0x68/0x80 [ 2.785875] [<000000004010c47c>] processor_probe+0x3ec/0x420 [ 2.785875] [<00000000401cae7c>] parisc_driver_probe+0x6c/0x98 [ 2.785875] [<000000004083cb20>] really_probe+0x398/0x560 [ 2.785875] [<000000004083d1e8>] driver_probe_device+0x198/0x1a0 [ 2.785875] [<000000004083d3d0>] __driver_attach+0x1e0/0x1e8 [ 2.785875] [<0000000040837ba0>] bus_for_each_dev+0x108/0x170 [ 2.785875] [<000000004083bbb8>] driver_attach+0x80/0x98 [ 2.785875] [<000000004083ab70>] bus_add_driver+0x298/0x4b8 [ 2.785875] [<000000004083e628>] driver_register+0xe0/0x268 [ 2.785875] [<00000000401cb0a0>] register_parisc_driver+0xa0/0x118 [ 2.785875] [<000000004010cb44>] processor_init+0x6c/0x80 [ 2.785875] [<0000000040108348>] parisc_init+0x348/0x5c0 [ 2.785875] [<00000000401b30bc>] do_one_initcall+0xb4/0x2c8 [ 2.785875] [<0000000040102ac0>] kernel_init_freeable+0x5a0/0x730 [ 2.785875] [<0000000040bb0890>] kernel_init+0x60/0x318 [ 2.785875] [<00000000401be020>] ret_from_kernel_thread+0x20/0x28 [ 2.785875] [ 2.785875] Kernel panic - not syncing: High Priority Machine Check (HPMC) [ 2.785875] Rebooting in 10 seconds..PIM record shows:
----------------- Processor 1 HPMC Information ------------------
Timestamp =
Thu Apr 11 13:35:21 GMT 2019 (20:19:04:11:13:35:21)HPMC Chassis Codes = 2cbf0 2510b 2cbf5 2cbfc
General Registers 0 - 31
00-03 0000000000000000 0000000040000000 000000f0f0002090 0000000000000000 04-07 0000000000000e33 fffffff0f0400008 00000000000000fa fffffff0f0002f68 08-11 fffffffffee003f8 00000000000000c4 000000000000000a fffffff0f0001608 12-15 00000000000000f2 0000000000000001 0000000000000001 00000000000000f3 16-19 0000000002020202 0000000000000002 fffffff0f000016c 0440c24000000000 20-23 00000000000000cc 0000000000000001 0000000000000009 0000000000000000 24-27 000000000400c240 fffffffffffa2000 fffffff0f0000018 fffffff0f0412000 28-31 fffffffffffa2000 fffffff0f040ae70 00000010fb0e6f60 0000000000000000<Press any key to continue (q to quit)>
Control Registers 0 - 31
00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000 04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 08-11 0000000000000000 0000000000000000 0000000000000000 0000000000000000 12-15 0000000000000000 0000000000000000 0000000000000000 0000000000000000 16-19 0000001959e11c2f 0000000000000000 0000000000100274 000000000fd010de 20-23 00000000a637ffec c0000000398e6f68 000000ff00007f08 0000000000000000 24-27 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 28-31 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffffSpace Registers 0 - 7
00-03 00000000 00000000 00000000 00000000 04-07 00000000 00000000 00000000 00000000<Press any key to continue (q to quit)>
IIA Space = 0x0000000000000000 IIA Offset = 0x0000000000100278 Check Type = 0x20000000 CPU State = 0x9e000004 Cache Check = 0x00000000 TLB Check = 0x00000000 Bus Check = 0x0030103b Assists Check = 0x00000000 Assist State = 0x00000000 Path Info = 0x00000000 System Responder Address = 0x000000fffb0e6f68 System Requestor Address = 0xfffffffffffa20000000000040100250 <
smp_slave_stext>:40100250: 00 00 38 20 mtsp r0,sr4 40100254: 00 00 78 20 mtsp r0,sr5 40100258: 00 00 b8 20 mtsp r0,sr6 4010025c: 00 00 f8 20 mtsp r0,sr7 40100260: 23 d6 50 20 ldil L%106c800,sp 40100264: 37 de 00 b0 ldo 58(sp),sp 40100268: 0f c0 10 de ldd 0(sp),sp 4010026c: 20 20 08 00 ldil L%40000000,r1 40100270: 08 3e 04 1e sub sp,r1,sp40100274: 0f d0 10 de ldd 8(sp),sp <-- HPMC 40100278: 03 de 18 40 mtctl sp,tr6 4010027c: 37 de 01 80 ldo c0(sp),sp 40100280: 20 94 20 20 ldil L%1029000,r4 40100284: 34 84 00 00 ldo 0(r4),r4 40100288: 03 04 18 40 mtctl r4,tr0 4010028c: 03 24 18 40 mtctl r4,tr1 40100290: 08 1a 02 43 copy r26,r3 40100294: 21 66 18 02 ldil L%4010c800,r11 40100298: 35 6b 0e c0 ldo 760(r11),r11 4010029c: e8 1f 1c b5 b,l 401000fc <common_stext>,r0 401002a0: 08 00 02 40 nopsp (r30) is
00000010fb0e6f60, which is valid RAM. However, it's triggering a HPMC and the Display show Bus timeout. Does anyone have an idea what's going wrong?Regards,
Sven
Signature · 1 line
John David Anglin [email protected]