[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b79a8187-5342-8ff3-73fc-0324bdfb67fb@huaweicloud.com>
Date: Thu, 13 Oct 2022 21:22:41 +0800
From: Yu Kuai <yukuai1@...weicloud.com>
To: Jinlong Chen <chenjinlong2016@...look.com>, axboe@...nel.dk
Cc: linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
"yukuai (C)" <yukuai3@...wei.com>
Subject: Re: [PATCH] blk-mq: put the reference of the io scheduler module
after switching back
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
> .
>
Powered by blists - more mailing lists