]> git.hungrycats.org Git - linux/commit
blk-mq: fix CPU hotplug handling
authorMing Lei <ming.lei@canonical.com>
Tue, 21 Apr 2015 02:00:20 +0000 (10:00 +0800)
committerSasha Levin <sasha.levin@oracle.com>
Thu, 6 Aug 2015 18:49:50 +0000 (14:49 -0400)
commitdf0e5109cfea25f842bf99f567aac20ac9ef78fe
treef1541af96a8d8f41d01adf2e1b83fb7fab23a597
parentbda69f1aaee53837ba22e2ea149219dff486f542
blk-mq: fix CPU hotplug handling

[ Upstream commit 2a34c0872adf252f23a6fef2d051a169ac796cef ]

hctx->tags has to be set as NULL in case that it is to be unmapped
no matter if set->tags[hctx->queue_num] is NULL or not in blk_mq_map_swqueue()
because shared tags can be freed already from another request queue.

The same situation has to be considered during handling CPU online too.
Unmapped hw queue can be remapped after CPU topo is changed, so we need
to allocate tags for the hw queue in blk_mq_map_swqueue(). Then tags
allocation for hw queue can be removed in hctx cpu online notifier, and it
is reasonable to do that after mapping is updated.

Cc: <stable@vger.kernel.org>
Reported-by: Dongsu Park <dongsu.park@profitbricks.com>
Tested-by: Dongsu Park <dongsu.park@profitbricks.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
block/blk-mq.c