Re: [PATCH V2] block: avoid to call blkg_free() in atomic context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 23 Mar 2022 09:13:08 +0800, Ming Lei wrote:
> blkg_free() may be called in atomic context, either spin lock is held,
> or run in rcu callback. Meantime either request queue's release handler
> or ->pd_free_fn can sleep.
> 
> Fix the issue by scheduling work function for freeing blkcg_gq instance.
> 
> [  148.553894] BUG: sleeping function called from invalid context at block/blk-sysfs.c:767
> [  148.557381] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 0, name: swapper/13
> [  148.560741] preempt_count: 101, expected: 0
> [  148.562577] RCU nest depth: 0, expected: 0
> [  148.564379] 1 lock held by swapper/13/0:
> [  148.566127]  #0: ffffffff82615f80 (rcu_callback){....}-{0:0}, at: rcu_lock_acquire+0x0/0x1b
> [  148.569640] Preemption disabled at:
> [  148.569642] [<ffffffff8123f9c3>] ___slab_alloc+0x554/0x661
> [  148.573559] CPU: 13 PID: 0 Comm: swapper/13 Kdump: loaded Not tainted 5.17.0_up+ #110
> [  148.576834] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-1.fc33 04/01/2014
> [  148.579768] Call Trace:
> [  148.580567]  <IRQ>
> [  148.581262]  dump_stack_lvl+0x56/0x7c
> [  148.582367]  ? ___slab_alloc+0x554/0x661
> [  148.583526]  __might_resched+0x1af/0x1c8
> [  148.584678]  blk_release_queue+0x24/0x109
> [  148.585861]  kobject_cleanup+0xc9/0xfe
> [  148.586979]  blkg_free+0x46/0x63
> [  148.587962]  rcu_do_batch+0x1c5/0x3db
> [  148.589057]  rcu_core+0x14a/0x184
> [  148.590065]  __do_softirq+0x14d/0x2c7
> [  148.591167]  __irq_exit_rcu+0x7a/0xd4
> [  148.592264]  sysvec_apic_timer_interrupt+0x82/0xa5
> [  148.593649]  </IRQ>
> [  148.594354]  <TASK>
> [  148.595058]  asm_sysvec_apic_timer_interrupt+0x12/0x20
> 
> [...]

Applied, thanks!

[1/1] block: avoid to call blkg_free() in atomic context
      commit: d578c770c85233af592e54537f93f3831bde7e9a

Best regards,
-- 
Jens Axboe





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux