2022-03-28 11:28:34

by Mike Galbraith

[permalink] [raw]
Subject: LTP zram tests triggers might_sleep splat - bisects to 0a9a25ca7843 ("block: let blkcg_gq grab request queue's refcnt")

Splat bisected cleanly, verified with a revert afterward.

(note: "Preemption disabled at:" address tracking looked to be pretty
broken during bisection, so...)

[ 50.659919] zram: Added device: zram0
[ 50.670989] zram0: detected capacity change from 0 to 51200
[ 50.684383] EXT4-fs (zram0): mounted filesystem with ordered data mode. Quota mode: none.
[ 50.684393] ext4 filesystem being mounted at /tmp/LTP_zram01.4SaesNmV2L/zram0 supports timestamps until 2038 (0x7fffffff)
[ 63.090651] zram0: detected capacity change from 51200 to 0
[ 63.092612] zram: Removed device: zram0
[ 63.164735] BUG: sleeping function called from invalid context at block/blk-sysfs.c:766
[ 63.164742] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 0, name: swapper/0
[ 63.164744] preempt_count: 101, expected: 0
[ 63.164745] RCU nest depth: 0, expected: 0
[ 63.164747] Preemption disabled at:
[ 63.164747] [<ffffffff8181757e>] schedule_preempt_disabled+0x1e/0x20
[ 63.164754] CPU: 0 PID: 0 Comm: swapper/0 Kdump: loaded Tainted: G W E 5.17.0.gf0228146-master #73 f6f3a9d86c34a7a5254509d9115123082e5393e5
[ 63.164758] Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 09/23/2013
[ 63.164760] Call Trace:
[ 63.164763] <IRQ>
[ 63.164765] dump_stack_lvl+0x33/0x42
[ 63.164769] ? schedule_preempt_disabled+0x1e/0x20
[ 63.164771] __might_resched+0x15e/0x1b0
[ 63.164776] blk_release_queue+0x22/0xf0
[ 63.164779] kobject_put+0xa4/0x210
[ 63.164783] blkg_free.part.25+0x41/0x60
[ 63.164787] rcu_do_batch+0x167/0x470
[ 63.164791] rcu_core+0x1f8/0x3a0
[ 63.164793] __do_softirq+0xef/0x2df
[ 63.164797] irq_exit_rcu+0xcf/0xe0
[ 63.164802] sysvec_apic_timer_interrupt+0x9e/0xc0
[ 63.164806] </IRQ>
[ 63.164807] <TASK>
[ 63.164808] asm_sysvec_apic_timer_interrupt+0x12/0x20
[ 63.164811] RIP: 0010:cpuidle_enter_state+0xd6/0x380
[ 63.164815] Code: 49 89 c4 0f 1f 44 00 00 31 ff e8 65 20 aa ff 45 84 ff 74 12 9c 58 f6 c4 02 0f 85 95 02 00 00 31 ff e8 0e 0a af ff fb 45 85 f6 <0f> 88 69 01 00 00 49 63 d6 4c 2b 24 24 48 8d 04 52 48 8d 04 82 49
[ 63.164818] RSP: 0018:ffffffff82403e58 EFLAGS: 00000206
[ 63.164821] RAX: ffff88840ec00000 RBX: 0000000000000005 RCX: 000000000000001f
[ 63.164823] RDX: 0000000eb4e90091 RSI: ffffffff8217eea1 RDI: ffffffff82162998
[ 63.164827] RBP: ffff88840ec37500 R08: 0000000000000002 R09: 000000000002da80
[ 63.164829] R10: ffffffff82403e38 R11: 0000000000000edb R12: 0000000eb4e90091
[ 63.164831] R13: ffffffff825a1360 R14: 0000000000000005 R15: 0000000000000000
[ 63.164835] ? cpuidle_enter_state+0xbb/0x380
[ 63.164839] cpuidle_enter+0x29/0x40
[ 63.164842] do_idle+0x1c6/0x210
[ 63.164847] cpu_startup_entry+0x19/0x20
[ 63.164851] start_kernel+0x884/0x896
[ 63.164856] ? apply_microcode_early+0xcb/0xf0
[ 63.164859] ? load_ucode_intel_bsp+0x28/0x2d
[ 63.164863] secondary_startup_64_no_verify+0xc3/0xcb
[ 63.164868] </TASK>


2022-03-28 17:14:15

by Ming Lei

[permalink] [raw]
Subject: Re: LTP zram tests triggers might_sleep splat - bisects to 0a9a25ca7843 ("block: let blkcg_gq grab request queue's refcnt")

On Mon, Mar 28, 2022 at 06:21:51AM +0200, Mike Galbraith wrote:
> Splat bisected cleanly, verified with a revert afterward.
>
> (note: "Preemption disabled at:" address tracking looked to be pretty
> broken during bisection, so...)

It can be fixed by:

https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=for-5.18/block&id=d578c770c85233af592e54537f93f3831bde7e9a


Thanks,
Ming