* Re: [PATCH] blk-mq: Take tagset lock when updaing hw queues
2017-05-30 18:39 [PATCH] blk-mq: Take tagset lock when updaing hw queues Keith Busch
@ 2017-05-30 18:32 ` Jens Axboe
2017-05-30 19:52 ` Gabriel Krisman Bertazi
1 sibling, 0 replies; 3+ messages in thread
From: Jens Axboe @ 2017-05-30 18:32 UTC (permalink / raw)
To: Keith Busch, linux-block
Cc: Bart Van Assche, Gabriel Krisman Bertazi, linux-nvme
On 05/30/2017 12:39 PM, Keith Busch wrote:
> The tagset lock needs to be held when iterating the tag_list, so a
> lockdep assert was added when updating number of hardware queues. The
> drivers calling this API, however, were unaware of the new requirement,
> so are failing the assertion.
>
> This patch takes the lock within the blk-mq function so the drivers do
> not have to be modified in order to be safe.
Thanks Keith, applied for 4.12 with the typo in the subject line fixed
up.
--
Jens Axboe
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] blk-mq: Take tagset lock when updaing hw queues
@ 2017-05-30 18:39 Keith Busch
2017-05-30 18:32 ` Jens Axboe
2017-05-30 19:52 ` Gabriel Krisman Bertazi
0 siblings, 2 replies; 3+ messages in thread
From: Keith Busch @ 2017-05-30 18:39 UTC (permalink / raw)
To: Jens Axboe, linux-block
Cc: Bart Van Assche, Gabriel Krisman Bertazi, linux-nvme, Keith Busch
The tagset lock needs to be held when iterating the tag_list, so a
lockdep assert was added when updating number of hardware queues. The
drivers calling this API, however, were unaware of the new requirement,
so are failing the assertion.
This patch takes the lock within the blk-mq function so the drivers do
not have to be modified in order to be safe.
Fixes: 705cda97e ("blk-mq: Make it safe to use RCU to iterate over blk_mq_tag_set.tag_list")
Reported-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Reviewed-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
---
block/blk-mq.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index f2224ffd..1bccced 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2641,7 +2641,8 @@ int blk_mq_update_nr_requests(struct request_queue *q, unsigned int nr)
return ret;
}
-void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues)
+static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
+ int nr_hw_queues)
{
struct request_queue *q;
@@ -2665,6 +2666,13 @@ void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues)
list_for_each_entry(q, &set->tag_list, tag_set_list)
blk_mq_unfreeze_queue(q);
}
+
+void blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, int nr_hw_queues)
+{
+ mutex_lock(&set->tag_list_lock);
+ __blk_mq_update_nr_hw_queues(set, nr_hw_queues);
+ mutex_unlock(&set->tag_list_lock);
+}
EXPORT_SYMBOL_GPL(blk_mq_update_nr_hw_queues);
/* Enable polling stats and return whether they were already enabled. */
--
2.5.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] blk-mq: Take tagset lock when updaing hw queues
2017-05-30 18:39 [PATCH] blk-mq: Take tagset lock when updaing hw queues Keith Busch
2017-05-30 18:32 ` Jens Axboe
@ 2017-05-30 19:52 ` Gabriel Krisman Bertazi
1 sibling, 0 replies; 3+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-05-30 19:52 UTC (permalink / raw)
To: Keith Busch; +Cc: Jens Axboe, linux-block, Bart Van Assche, linux-nvme
Keith Busch <keith.busch@intel.com> writes:
> The tagset lock needs to be held when iterating the tag_list, so a
> lockdep assert was added when updating number of hardware queues. The
> drivers calling this API, however, were unaware of the new requirement,
> so are failing the assertion.
>
> This patch takes the lock within the blk-mq function so the drivers do
> not have to be modified in order to be safe.
>
> Fixes: 705cda97e ("blk-mq: Make it safe to use RCU to iterate over blk_mq_tag_set.tag_list")
>
> Reported-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> Reviewed-by: Bart Van Assche <Bart.VanAssche@sandisk.com>
> Signed-off-by: Keith Busch <keith.busch@intel.com>
I know it is already applied but, FWIW, I can confirm it fixed the issue
in our CI. Feel free to add:
Tested-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Thanks again, Keith.
--
Gabriel Krisman Bertazi
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-30 19:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-30 18:39 [PATCH] blk-mq: Take tagset lock when updaing hw queues Keith Busch
2017-05-30 18:32 ` Jens Axboe
2017-05-30 19:52 ` Gabriel Krisman Bertazi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox