lkml.org 
[lkml]   [2014]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH block/for-linus] blk-mq: make mq_queue_reinit_notify() freeze queues in parallel
On 2014-11-04 11:52, Tejun Heo wrote:
> q->mq_usage_counter is a percpu_ref which is killed and drained when
> the queue is frozen. On a CPU hotplug event, blk_mq_queue_reinit()
> which involves freezing the queue is invoked on all existing queues.
> Because percpu_ref killing and draining involve a RCU grace period,
> doing the above on one queue after another may take a long time if
> there are many queues on the system.
>
> This patch splits out initiation of freezing and waiting for its
> completion, and updates blk_mq_queue_reinit_notify() so that the
> queues are frozen in parallel instead of one after another. Note that
> freezing and unfreezing are moved from blk_mq_queue_reinit() to
> blk_mq_queue_reinit_notify().
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> Christian, can you please verify that this resolves the latency issue
> that you're seeing? Jens, can you please route this patch once
> Christian confirms it?

Will queue up for 3.18.

--
Jens Axboe



\
 
 \ /
  Last update: 2014-11-04 23:21    [W:0.093 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site