On 7/30/2016 7:54 AM, Akinobu Mita wrote: > 2016-07-28 22:18 GMT+09:00 Khan, Imran <kimran@xxxxxxxxxxxxxx>: >> >> Hi, >> >> Recently we have observed some increased latency in CPU hotplug >> event in CPU online path. For online latency we see that block >> layer is executing notification handler for CPU_UP_PREPARE event >> and this in turn waits for RCU grace period resulting (sometimes) >> in an execution time of 15-20 ms for this notification handler. >> This change was not there in 3.18 kernel but is present in 4.4 >> kernel and was introduced by following commit: >> >> >> commit 5778322e67ed34dc9f391a4a5cbcbb856071ceba >> Author: Akinobu Mita <akinobu.mita@xxxxxxxxx> >> Date: Sun Sep 27 02:09:23 2015 +0900 >> >> blk-mq: avoid inserting requests before establishing new mapping > > ... > >> Upon reverting this commit I could see an improvement of 15-20 ms in >> online latency. So I am looking for some help in analyzing the effects >> of reverting this or should some other approach to reduce the online >> latency must be taken. > > Can you observe the difference in online latency by removing > get_online_cpus() and put_online_cpus() pair in blk_mq_init_allocated_queue() > instead of full reverting the commit? > Hi Akinobu, I tried your suggestion but could not achieve any improvement. Actually the snippet that is causing the change in latency is the following one : list_for_each_entry(q, &all_q_list, all_q_node) { blk_mq_freeze_queue_wait(q); /* * timeout handler can't touch hw queue during the * reinitialization */ del_timer_sync(&q->timeout); } I understand that this is getting executed now for CPU_UP_PREPARE as well resulting in increased latency in the cpu online path. I am trying to reduce this latency while keeping the purpose of this commit intact. I would welcome further suggestions/feedback in this regard. -- Imran Khan QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a\nmember of the Code Aurora Forum, hosted by The Linux Foundation -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html