[Skiboot] [PATCH] external/mambo: Disable MEMORY_OVERFLOW
Gustavo Romero
gromero at linux.vnet.ibm.com
Sat Jun 27 03:31:47 AEST 2020
Hi Michael,
On 6/25/20 8:56 AM, Michael Ellerman wrote:
> Mambo has a strange feature called MEMORY_OVERFLOW, enabled by
> default, which causes some accesses to non-existent memory addresses
> to transparently "create" memory.
>
> This can be confusing when debugging, eg:
>
> systemsim % mysim cpu 0 display spr pc
> 0xC0000000000246B8
> systemsim % mysim memory display 0xC0000000000246B8 8
> 0x0000000000000000
>
> Appears to show that the memory at pc (NIP) is currently zeroes.
>
> The astute observer will note that "mysim memory display" takes
> physical addresses, not effective addresses. So unless this machine
> has > 12XB of RAM, this access should have failed as there is no
> memory at that address.
>
> Turning MEMORY_OVERFLOW off gives us a much more sensible result:
>
> systemsim % mysim memory display 0xC0000000000246B8 8
> Illegal Address 0xC0000000000246B8
>
> It doesn't appear to have any effect on accesses done from Linux, with
> the setting enabled or disabled we still get a machine check for bad
> accesses in real mode:
With that change applied, on mambo P10 running on a POWER8 I'm getting
the following mambo exception that forbids the kernel to continue booting:
[...]
142233280: (536372251): [ 0.001554] printk: bootconsole [udbg0] disabled
142387801: (537126772): [ 0.001870] mempolicy: Enabling automatic NUMA balancing. Configure with numa_balancing= or the kernel.numa_balancing sysctl
142412629: (537151600): [ 0.001919] pid_max: default: 32768 minimum: 301
142549799: (537888770): [ 0.002187] Mount-cache hash table entries: 16384 (order: 1, 131072 bytes, linear)
142570582: (537909553): [ 0.002228] Mountpoint-cache hash table entries: 16384 (order: 1, 131072 bytes, linear)
143544723: (541883694): [ 0.004130] EEH: PowerNV platform initialized
143557364: (541896335): [ 0.004155] POWER9 performance monitor hardware support registered
143629574: (541968545): [ 0.004296] rcu: Hierarchical SRCU implementation.
143904253: (543143224): [ 0.004833] smp: Bringing up secondary CPUs ...
WARNING: 145271326: (548660031): Write_Mapped_Memory_Reg: Unknown address: 0x00000E995A3AF7B0, length=8
FATAL ERROR: 145271326: (548660031): Attempt to store non-existent address 0x00000E995A3AF7B0
INFO: 145271326: (548660032): ** Execution stopped: Mambo Error, **
145271326: ** finished running 548660032 instructions **
systemsim % c
145785082: (550674532): [ 0.008506] smp: Brought up 2 nodes, 4 CPUs
145798101: (550687551): [ 0.008527] numa: Node 0 CPUs: 0-1
145810514: (550799964): [ 0.008551] numa: Node 1 CPUs: 2-3
145820419: (550809869): [ 0.008575] Using standard scheduler topology
159140153: (604064242): [ 0.034590] node 0 initialised, 118050 pages in 10ms
159167293: (604195562): [ 0.034643] pgdatinit0 (31) used greatest stack depth: 13408 bytes left
160000000: [0:0:0]: (PC:0xC0000000001C164C) : 7.1 Mega-Inst/Sec : 7.1 Mega-Cycles/Sec [17 Zaps 0 PA-Zaps] *ON* [0:0:0] pri=4 extra=0
160000000: [0:0:1]: (PC:0xC0000000003A162C) : 7.1 Mega-Inst/Sec *ON* [0:0:1] pri=4 extra=0
160000000: [0:1:0]: (PC:0xC00000000019AA58) : 7.1 Mega-Inst/Sec *ON* [0:1:0] pri=2 extra=0
160000000: [0:1:1]: (PC:0xC00000000019A5F4) : 7.1 Mega-Inst/Sec *ON* [0:1:1] pri=2 extra=0
160134492: (608065254): [ 0.036532] devtmpfs: initialized
163550958: (621787960): [ 0.043205] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
163574637: (621811639): [ 0.043251] futex hash table entries: 1024 (order: 1, 131072 bytes, linear)
164292187: (624696519): [ 0.044653] NET: Registered protocol family 16
164770384: (626692640): [ 0.045587] audit: initializing netlink subsys (disabled)
165130649: (628049925): [ 0.046290] audit: type=2000 audit(1024007219.020:1): state=initialized audit_enabled=0 res=1
165359745: (629069307): [ 0.046738] cpuidle: using governor menu
165482259: (629491821): [ 0.046977] pstore: Registered nvram as persistent store backend
167333983: (636947373): [ 0.050594] PCI: Probing PCI hardware
168184808: (640240704): [ 0.052255] cpuidle-powernv: Default stop: psscr = 0x0000000000000300,mask=0x00000000003003ff
168204280: (640260428): [ 0.052293] cpuidle-powernv: Deepest stop: psscr = 0x0000000000300322,mask=0x00000000003003ff
168223015: (640279240): [ 0.052330] cpuidle-powernv: First stop level that may lose SPRs = 0x10
168238094: (640294710): [ 0.052359] cpuidle-powernv: First stop level that may lose timebase = 0x10
175060241: (647321380): [ 0.065684] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
175077028: (647338167): [ 0.065717] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
177879965: (651314704): [ 0.071191] iommu: Default domain type: Translated
177936270: (651386119): [ 0.071302] vgaarb: loaded
178219574: (651669423): [ 0.071855] SCSI subsystem initialized
178331796: (651781645): [ 0.072074] usbcore: registered new interface driver usbfs
178364558: (651814407): [ 0.072138] usbcore: registered new interface driver hub
178397036: (651981802): [ 0.072201] usbcore: registered new device driver usb
179169296: (653522982): [ 0.073710] clocksource: Switched to clocksource timebase
WARNING: 179516247: (653875633): Write_Mapped_Memory_Reg: Unknown address: 0x00000E995A3AF7B0, length=8
FATAL ERROR: 179516247: (653875633): Attempt to store non-existent address 0x00000E995A3AF7B0
INFO: 179516247: (653875634): ** Execution stopped: Mambo Error, **
179516247: ** finished running 653875634 instructions **
systemsim %
I don't understand yet what's happening. Gleen does not hit it either
(he is running mambo on a POWER9 tho). Which mambo / host combination
have you tried it?
Thanks.
Cheers,
Gustavo
More information about the Skiboot
mailing list