浏览代码

block: readd plug trace event

This was removed with the queue plug state. But we can easily readd
by checking if this is the first request going to this queue. It's
good information to have when tracing to see how effective the
plugging is.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Jens Axboe 14 年之前
父节点
当前提交
dc6d36c971
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      block/blk-core.c

+ 9 - 1
block/blk-core.c

@@ -1311,7 +1311,15 @@ get_rq:
 
 
 	plug = current->plug;
 	plug = current->plug;
 	if (plug) {
 	if (plug) {
-		if (!plug->should_sort && !list_empty(&plug->list)) {
+		/*
+		 * If this is the first request added after a plug, fire
+		 * of a plug trace. If others have been added before, check
+		 * if we have multiple devices in this plug. If so, make a
+		 * note to sort the list before dispatch.
+		 */
+		if (list_empty(&plug->list))
+			trace_block_plug(q);
+		else if (!plug->should_sort) {
 			struct request *__rq;
 			struct request *__rq;
 
 
 			__rq = list_entry_rq(plug->list.prev);
 			__rq = list_entry_rq(plug->list.prev);