On 08/07/2021 03:31, Valentin Schneider wrote:
On 07/07/21 09:35, Guenter Roeck wrote:I think I have it. pseries_defconfig, and pseries emulation, started with "-smp 2" and qemu-system-ppc64: [ 0.731644][ T1] smp: Bringing up secondary CPUs ...^M [ 0.750546][ T0] BUG: scheduling while atomic: swapper/1/0/0x00000000^M [ 0.752119][ T0] no locks held by swapper/1/0.^M [ 0.752309][ T0] Modules linked in:^M [ 0.752684][ T0] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.13.0-11855-g77d34a4683b0 #1^M [ 0.753197][ T0] Call Trace:^M [ 0.753334][ T0] [c000000008737b20] [c0000000009f9b18] .dump_stack_lvl+0xa4/0x100 (unreliable)^M [ 0.754224][ T0] [c000000008737bb0] [c000000000190ed0] .__schedule_bug+0xa0/0xe0^M [ 0.754459][ T0] [c000000008737c30] [c000000001182518] .__schedule+0xc08/0xd90^M [ 0.754738][ T0] [c000000008737d20] [c000000001182b8c] .schedule_idle+0x2c/0x60^M [ 0.754945][ T0] [c000000008737d90] [c0000000001a48ec] .do_idle+0x29c/0x3c0^M [ 0.755145][ T0] [c000000008737e60] [c0000000001a4df0] .cpu_startup_entry+0x30/0x40^M [ 0.755403][ T0] [c000000008737ee0] [c00000000005ef10] .start_secondary+0x2c0/0x300^M [ 0.755621][ T0] [c000000008737f90] [c00000000000d254] start_secondary_prolog+0x10/0x14^M [ 0.764164][ T1] smp: Brought up 1 node, 2 CPUs^M GuenterHmph, I was about to say I couldn't get that, but after cycling between different PREEMPT options I finally triggered it, so thanks for that! Same sha1 as yours, invocation is: qemu-system-ppc64 vmlinux -smp 2 -nographic -m 1024 -machine pseries,usb=off with pseries_defconfig + CONFIG_DEBUG_ATOMIC_SLEEP + CONFIG_PREEMPT_VOLUNTARY Now to dig!
CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y CONFIG_DEBUG_ATOMIC_SLEEP=y is what I have, and qemu cmdline is qemu-system-ppc64 \ -nodefaults \ -chardev stdio,id=STDIO0,signal=off,mux=on \ -device spapr-vty,id=svty0,reg=0x71000110,chardev=STDIO0 \ -mon id=MON0,chardev=STDIO0,mode=readline \ -nographic \ -vga none \ -enable-kvm \ -m 512M \ -smp 2 \ -kernel ./vmldbg \ -machine pseries(unrelated) I wonder how/why PREEMPT_NOTIFIERS work when PREEMPT_NONE=y :-/ I have a crash in a KVM preempt notifier with such config.
-- Alexey