Re: [PATCH] blk-mq: put the reference of the io scheduler module after switching back

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

 



Hi,

在 2022/10/13 21:03, Jinlong Chen 写道:
Sorry for the disturbance.

This patch is just wrong. elevator_switch_mq does not increase the reference
  count of the io scheduler module to which we are switching. Hence, we do not
  need to put the reference back manually.

I'm confused here, cause I do think this patch make sense.

blk_mq_update_nr_hw_queues
 // for each queue using the tagset
 blk_mq_freeze_queue
 // if current elevator is not none, swith to none
 blk_mq_elv_switch_none
  // elevator need to be switched back, got a reference to
  // prevent module to be removed.
  __module_get
  elevator_switch(q, NULL);

 // switch back from none elevator
 blk_mq_elv_switch_back
  -> should release the module reference here
 blk_mq_unfreeze_queue

By the way, I do not test yet, but I think problem can be reporduced:

1. modprobe bfq
2. switch elevator to bfq
3. trigger blk_mq_update_nr_hw_queues
4. switch elevator to none
5. rmmod bfq will fail

Thanks,
Kuai

Sincerely
Jinlong Chen
.





[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