[PATCH v3 00/11] powerpc/64: fast interrupt exits
Michael Ellerman
mpe at ellerman.id.au
Wed Jun 16 00:07:32 AEST 2021
Nicholas Piggin <npiggin at gmail.com> writes:
> This series attempts to improve the speed of interrupts and system calls
> in three major ways.
With the full series applied I'm seeing various warnings.
I feel like I must be missing some lead up patch?
cheers
mambo, p8, hash, be:
[ 0.001038][ T0] ------------[ cut here ]------------
[ 0.001287][ T0] Interrupts were enabled early
[ 0.001510][ T0] WARNING: CPU: 0 PID: 0 at init/main.c:1004 .start_kernel+0x53c/0x720
[ 0.001902][ T0] Modules linked in:
[ 0.002084][ T0] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.13.0-rc2-00118-gca433a3a44e3-dirty #1
[ 0.002518][ T0] NIP: c000000002004920 LR: c00000000200491c CTR: c0000000000e3cd0
[ 0.002887][ T0] REGS: c000000002acfc30 TRAP: 0700 Not tainted (5.13.0-rc2-00118-gca433a3a44e3-dirty)
[ 0.003342][ T0] MSR: 9000000002029032 <SF,HV,VEC,EE,ME,IR,DR,RI> CR: 28002222 XER: 22000000
[ 0.003818][ T0] CFAR: 000000003002afb0 IRQMASK: 0
[ 0.003818][ T0] GPR00: c00000000200491c c000000002acfed0 c000000002ad1a00 000000000000001d
[ 0.003818][ T0] GPR04: 0000000000000001 c0000000027645b0 0000000000000001 c0000000027645e0
[ 0.003818][ T0] GPR08: 00000000fd5c0000 c000000002764560 c000000002764560 9000000032001032
[ 0.003818][ T0] GPR12: 0000000028002222 c000000002cd0000 0000000000000000 0000000000000000
[ 0.003818][ T0] GPR16: 0000000031c10000 0000000030003180 0000000030000000 0000000000000000
[ 0.003818][ T0] GPR20: 0000000000000000 0000000000000000 000000003012e4eb 0000000030110ece
[ 0.003818][ T0] GPR24: 00000000301105f5 c000000000000000 0000000020010000 c000000002090008
[ 0.003818][ T0] GPR28: c000000002090008 c0000000011ae620 c0000000011ae620 c000000002090008
[ 0.007455][ T0] NIP [c000000002004920] .start_kernel+0x53c/0x720
[ 0.007765][ T0] LR [c00000000200491c] .start_kernel+0x538/0x720
[ 0.008072][ T0] Call Trace:
[ 0.008223][ T0] [c000000002acfed0] [c00000000200491c] .start_kernel+0x538/0x720 (unreliable)
[ 0.008655][ T0] [c000000002acff90] [c00000000000dd2c] start_here_common+0x1c/0x670
[ 0.009041][ T0] Instruction dump:
[ 0.009219][ T0] 60000000 4a23dadd 60000000 48035821 60000000 892d0932 71290001 40820018
[ 0.009659][ T0] 3c62fe6d 3863f810 4a171751 60000000 <0fe00000> 39200000 3d420003 38600000
[ 0.010111][ T0] ---[ end trace e2dce2fbc72d04fa ]---
mambo, p9, hash, be:
[ 17.668403][ T267] ------------[ cut here ]------------
[ 17.668433][ T267] WARNING: CPU: 1 PID: 267 at arch/powerpc/include/asm/book3s/64/kup.h:304 .arch_local_irq_restore+0x190/0x1a0
[ 17.668503][ T267] Modules linked in:
[ 17.668532][ T267] CPU: 1 PID: 267 Comm: halt Tainted: G W 5.13.0-rc2-00118-gca433a3a44e3-dirty #1
[ 17.668588][ T267] NIP: c000000000016680 LR: c00000000002f804 CTR: c0000000005901c0
[ 17.668632][ T267] REGS: c000000009f339b0 TRAP: 0700 Tainted: G W (5.13.0-rc2-00118-gca433a3a44e3-dirty)
[ 17.668686][ T267] MSR: 9000000000021032 <SF,HV,ME,IR,DR,RI> CR: 48244222 XER: 04000000
[ 17.668777][ T267] CFAR: c00000000002fdcc IRQMASK: 3
[ 17.668777][ T267] GPR00: c00000000002f804 c000000009f33c50 c000000002ad1a00 0000000000000000
[ 17.668777][ T267] GPR04: 0000000000000000 0000000000000020 00000000000000b7 00000000000c9495
[ 17.668777][ T267] GPR08: 0000000000000008 fcffffffffffffff 3cffffffffffffff 0000000000000003
[ 17.668777][ T267] GPR12: 0000000028244228 c0000000fffff300 0000000000000000 0000000000000000
[ 17.668777][ T267] GPR16: 0000000000000000 0000000000000000 0000000000000000 00000000100a0a18
[ 17.668777][ T267] GPR20: 00007fffdf62ffac 00000000100a09d8 00000100011405f0 0000000002002000
[ 17.668777][ T267] GPR24: 0000000000000002 0000000000000001 0000000002802000 0000000000000000
[ 17.668777][ T267] GPR28: c00000000cc56080 0000000000000000 0000000000000000 3cffffffffffffff
[ 17.669291][ T267] NIP [c000000000016680] .arch_local_irq_restore+0x190/0x1a0
[ 17.669343][ T267] LR [c00000000002f804] .interrupt_exit_user_prepare_main+0x144/0x2b0
[ 17.669394][ T267] Call Trace:
[ 17.669418][ T267] [c000000009f33c50] [c000000009f33ce0] 0xc000000009f33ce0 (unreliable)
[ 17.669475][ T267] [c000000009f33cd0] [c00000000002f804] .interrupt_exit_user_prepare_main+0x144/0x2b0
[ 17.669538][ T267] [c000000009f33d90] [c00000000002fe08] .syscall_exit_restart+0x68/0x80
[ 17.669596][ T267] [c000000009f33e10] [c00000000000d168] system_call_common+0x278/0x2dc
[ 17.669652][ T267] --- interrupt: c00 at 0x7fffad5b867c
[ 17.669688][ T267] NIP: 00007fffad5b867c LR: 00000000100992a0 CTR: 0000000000000000
[ 17.669731][ T267] REGS: c000000009f33e80 TRAP: 0c00 Tainted: G W (5.13.0-rc2-00118-gca433a3a44e3-dirty)
[ 17.669785][ T267] MSR: 900000000280f032 <SF,HV,VEC,VSX,EE,PR,FP,ME,IR,DR,RI> CR: 28244222 XER: 00000000
[ 17.669910][ T267] IRQMASK: 0
[ 17.669910][ T267] GPR00: 0000000000000006 00007fffd8758060 00007fffad687300 0000000000000000
[ 17.669910][ T267] GPR04: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 17.669910][ T267] GPR08: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 17.669910][ T267] GPR12: 0000000000000000 00007fffad70a3a0 0000000000000000 0000000000000000
[ 17.669910][ T267] GPR16: 0000000000000000 0000000000000000 0000000000000000 00000000100a0a18
[ 17.669910][ T267] GPR20: 00007fffdf62ffac 00000000100a09d8 00000100011405f0 00000000100e24d0
[ 17.669910][ T267] GPR24: 00000000100b91e5 00000000100c1e14 0000010019e002a0 00000000100c1e1e
[ 17.669910][ T267] GPR28: 00007fffd875821b 0000000000000004 00007fffd8758210 0000000000000000
[ 17.670410][ T267] NIP [00007fffad5b867c] 0x7fffad5b867c
[ 17.670446][ T267] LR [00000000100992a0] 0x100992a0
[ 17.670480][ T267] --- interrupt: c00
[ 17.670507][ T267] Instruction dump:
[ 17.670535][ T267] 4e800020 60000000 60000000 60000000 39200000 992d0932 39400000 992d0933
[ 17.670627][ T267] 614a8002 7d410164 4e800020 60000000 <0fe00000> 4bfffefc 60000000 60000000
[ 17.670719][ T267] ---[ end trace 5ba1b854b2957ce3 ]---
qemu powernv:
[ 3.446262][ T51] init[51]: segfault (11) at 0 nip 0 lr 1000ca78 code 1 in busybox[10000000+d0000]
[ 3.448351][ T51] init[51]: code: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[ 3.449598][ T51] init[51]: code: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[ 3.460559][ T52] init[52]: segfault (11) at 0 nip 0 lr 1000ca78 code 1 in busybox[10000000+d0000]
[ 3.461409][ T52] init[52]: code: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[ 3.462496][ T52] init[52]: code: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
... to infinity.
qemu 64e gets to running /init but gets stuck there with no further output.
qemu pseries, p8, be:
[ 3.836653][ T75] S20urandom (75) used greatest stack depth: 9792 bytes left
[ 4.718806][ C0] ------------[ cut here ]------------
[ 4.718971][ C0] irq 17 handler .vp_interrupt+0x0/0xc0 enabled interrupts
[ 4.720956][ C0] WARNING: CPU: 0 PID: 99 at kernel/irq/handle.c:159 .__handle_irq_event_percpu+0x230/0x270
[ 4.721113][ C0] Modules linked in:
[ 4.721502][ C0] CPU: 0 PID: 99 Comm: ip Not tainted 5.13.0-rc2-00118-gca433a3a44e3-dirty #1
[ 4.721861][ C0] NIP: c0000000002108b0 LR: c0000000002108ac CTR: c0000000009bb220
[ 4.721943][ C0] REGS: c0000000fffeba00 TRAP: 0700 Not tainted (5.13.0-rc2-00118-gca433a3a44e3-dirty)
[ 4.722081][ C0] MSR: 8000000000029032 <SF,EE,ME,IR,DR,RI> CR: 28002247 XER: 20000000
[ 4.722404][ C0] CFAR: c0000000001760d0 IRQMASK: 0
[ 4.722404][ C0] GPR00: c0000000002108ac c0000000fffebca0 c000000002ad1a00 0000000000000038
[ 4.722404][ C0] GPR04: 0000000000000001 c0000000027645b0 0000000000000027 c0000000ff906e10
[ 4.722404][ C0] GPR08: 0000000000000023 ffffffffffffffd8 0000000000000027 c0000000011d7b40
[ 4.722404][ C0] GPR12: 0000000028002247 c000000002cd0000 0000000000000000 0000000000000000
[ 4.722404][ C0] GPR16: 0000000000000000 0000000000000000 0000000000000000 00000000100b7866
[ 4.722404][ C0] GPR20: 00000000100b7933 00000000100b5562 0000000000000000 0000000000000001
[ 4.722404][ C0] GPR24: 0000000000000002 0000000000000001 0000000000000011 c000000008891800
[ 4.722404][ C0] GPR28: 0000000000000011 c0000000fffebdd4 c00000000814a880 0000000000000000
[ 4.723412][ C0] NIP [c0000000002108b0] .__handle_irq_event_percpu+0x230/0x270
[ 4.723497][ C0] LR [c0000000002108ac] .__handle_irq_event_percpu+0x22c/0x270
[ 4.723719][ C0] Call Trace:
[ 4.723907][ C0] [c0000000fffebca0] [c0000000002108ac] .__handle_irq_event_percpu+0x22c/0x270 (unreliable)
[ 4.724205][ C0] [c0000000fffebd60] [c000000000210ae0] .handle_irq_event+0x130/0x190
[ 4.724309][ C0] [c0000000fffebe00] [c0000000002182bc] .handle_fasteoi_irq+0xbc/0x310
[ 4.724397][ C0] [c0000000fffebea0] [c00000000020ea74] .generic_handle_irq+0x54/0x80
[ 4.724575][ C0] [c0000000fffebf10] [c000000000015770] .__do_irq+0x70/0x1c0
[ 4.724667][ C0] [c0000000fffebf90] [c0000000000159d4] .do_IRQ+0x114/0x250
[ 4.724764][ C0] [c00000000a0730c0] [c00000000001596c] .do_IRQ+0xac/0x250
[ 4.724848][ C0] [c00000000a073160] [c000000000009230] hardware_interrupt_common_virt+0x1b0/0x1c0
[ 4.724952][ C0] --- interrupt: 500 at .virtnet_send_command+0x138/0x1b0
[ 4.725031][ C0] NIP: c000000000b4db68 LR: c000000000b4db58 CTR: c000000000984910
[ 4.725090][ C0] REGS: c00000000a0731d0 TRAP: 0500 Not tainted (5.13.0-rc2-00118-gca433a3a44e3-dirty)
[ 4.725156][ C0] MSR: 8000000000009032 <SF,EE,ME,IR,DR,RI> CR: 24002444 XER: 20000000
[ 4.725299][ C0] CFAR: c00000000097e110 IRQMASK: 0
[ 4.725299][ C0] GPR00: c000000000b4db58 c00000000a073470 c000000002ad1a00 0000000000000000
[ 4.725299][ C0] GPR04: c00000000a0734e4 0000000000000000 0000000000000000 0000000000000000
[ 4.725299][ C0] GPR08: 0000000000000000 0000000000000000 0000000000000000 c00c00000002bb48
[ 4.725299][ C0] GPR12: 0000000024002442 c000000002cd0000 0000000000000000 0000000000000000
[ 4.725299][ C0] GPR16: 0000000000000000 0000000000000000 0000000000000000 00000000100b7866
[ 4.725299][ C0] GPR20: 00000000100b7933 00000000100b5562 00000000100b78c8 c000000008d89000
[ 4.725299][ C0] GPR24: 0000000000000003 0000000000001002 c00000000a0734e8 0000000000000002
[ 4.725299][ C0] GPR28: 0000000000000000 0000000000000000 c00000000a073508 c00000000ac41900
[ 4.726021][ C0] NIP [c000000000b4db68] .virtnet_send_command+0x138/0x1b0
[ 4.726091][ C0] LR [c000000000b4db58] .virtnet_send_command+0x128/0x1b0
[ 4.726166][ C0] --- interrupt: 500
[ 4.726226][ C0] [c00000000a073580] [c000000000b4ee2c] .virtnet_set_rx_mode+0xdc/0x3d0
[ 4.726312][ C0] [c00000000a073670] [c000000000d98bac] .__dev_set_rx_mode+0x8c/0x120
[ 4.726397][ C0] [c00000000a073700] [c000000000d98e50] .__dev_open+0x1a0/0x220
[ 4.726477][ C0] [c00000000a0737b0] [c000000000d994ac] .__dev_change_flags+0x23c/0x2e0
[ 4.726557][ C0] [c00000000a073880] [c000000000d99598] .dev_change_flags+0x48/0xa0
[ 4.726639][ C0] [c00000000a073910] [c000000000ec2b18] .devinet_ioctl+0x358/0xa00
[ 4.726729][ C0] [c00000000a0739f0] [c000000000ec5b1c] .inet_ioctl+0x23c/0x340
[ 4.726808][ C0] [c00000000a073b00] [c000000000d52c98] .sock_do_ioctl+0x68/0x1c0
[ 4.726891][ C0] [c00000000a073bd0] [c000000000d55ef4] .sock_ioctl+0x394/0x670
[ 4.726971][ C0] [c00000000a073cc0] [c0000000004d3e2c] .__se_sys_ioctl+0xdc/0x140
[ 4.727081][ C0] [c00000000a073d60] [c00000000002faec] .system_call_exception+0x17c/0x2e0
[ 4.727169][ C0] [c00000000a073e10] [c00000000000cfe4] system_call_common+0xf4/0x2dc
[ 4.727260][ C0] --- interrupt: c00 at 0x7fff7f9bf2f0
[ 4.727630][ C0] NIP: 00007fff7f9bf2f0 LR: 000000001000c6b4 CTR: 0000000000000000
[ 4.727692][ C0] REGS: c00000000a073e80 TRAP: 0c00 Not tainted (5.13.0-rc2-00118-gca433a3a44e3-dirty)
[ 4.727758][ C0] MSR: 800000000280f032 <SF,VEC,VSX,EE,PR,FP,ME,IR,DR,RI> CR: 22000248 XER: 00000000
[ 4.727956][ C0] IRQMASK: 0
[ 4.727956][ C0] GPR00: 0000000000000036 00007ffffba7db00 00007fff7fa87300 0000000000000003
[ 4.727956][ C0] GPR04: 0000000000008914 00007ffffba7dc60 00000000100b554e 0000000000000000
[ 4.727956][ C0] GPR08: 0000000000000003 0000000000000000 0000000000000000 0000000000000000
[ 4.727956][ C0] GPR12: 0000000000000000 00007fff7fb0a3a0 0000000000000000 0000000000000000
[ 4.727956][ C0] GPR16: 0000000000000000 0000000000000000 0000000000000000 00000000100b7866
[ 4.727956][ C0] GPR20: 00000000100b7933 00000000100b5562 00000000100b78c8 0000000000000000
[ 4.727956][ C0] GPR24: 0000000000000000 ffffffffffffffff ffffffffffffffff 0000000000000000
[ 4.727956][ C0] GPR28: 00007ffffba7ff69 0000000000000001 0000000000000003 00000000100b554e
[ 4.728666][ C0] NIP [00007fff7f9bf2f0] 0x7fff7f9bf2f0
[ 4.728719][ C0] LR [000000001000c6b4] 0x1000c6b4
[ 4.728770][ C0] --- interrupt: c00
[ 4.728909][ C0] Instruction dump:
[ 4.729071][ C0] 38636c58 4bffbab9 60000000 4bfffed4 e8be0000 3c62fe70 3d22ffe7 7f44d378
[ 4.729251][ C0] 38636c18 9ae9f062 4bf657c1 60000000 <0fe00000> 9b2d0932 4bfffe70 60000000
[ 4.729494][ C0] ---[ end trace 0d7d391060ba35b4 ]---
qemu-system-ppc64: terminating on signal 1 from pid 462523 (
More information about the Linuxppc-dev
mailing list