aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@redhat.com>2012-10-03 16:57:01 -0400
committerTejun Heo <tj@kernel.org>2013-01-09 11:05:09 -0500
commitb226e5c411759eec29308f0ea38e918aa695dc7f (patch)
tree6f2499ce07c59f7a180de4b21bd5fc8e8f4c09bd /block
parent1f23f12151ab508728dd5fca12180e2fce6c6949 (diff)
cfq-iosched: Print sync-noidle information in blktrace messages
Currently we attach a character "S" or "A" to the cfqq<pid>, to represent whether queues is sync or async. Add one more character "N" to represent whether it is sync-noidle queue or sync queue. So now three different type of queues will look as follows. cfq1234S --> sync queus cfq1234SN --> sync noidle queue cfq1234A --> Async queue Previously S/A classification was being printed only if group scheduling was enabled. This patch also makes sure that this classification is displayed even if group idling is disabled. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Acked-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'block')
-rw-r--r--block/cfq-iosched.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 5ad4cae1beb2..bc076f45ca46 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -586,8 +586,9 @@ static inline void cfqg_put(struct cfq_group *cfqg)
586 char __pbuf[128]; \ 586 char __pbuf[128]; \
587 \ 587 \
588 blkg_path(cfqg_to_blkg((cfqq)->cfqg), __pbuf, sizeof(__pbuf)); \ 588 blkg_path(cfqg_to_blkg((cfqq)->cfqg), __pbuf, sizeof(__pbuf)); \
589 blk_add_trace_msg((cfqd)->queue, "cfq%d%c %s " fmt, (cfqq)->pid, \ 589 blk_add_trace_msg((cfqd)->queue, "cfq%d%c%c %s " fmt, (cfqq)->pid, \
590 cfq_cfqq_sync((cfqq)) ? 'S' : 'A', \ 590 cfq_cfqq_sync((cfqq)) ? 'S' : 'A', \
591 cfqq_type((cfqq)) == SYNC_NOIDLE_WORKLOAD ? 'N' : ' ',\
591 __pbuf, ##args); \ 592 __pbuf, ##args); \
592} while (0) 593} while (0)
593 594
@@ -675,7 +676,10 @@ static inline void cfqg_get(struct cfq_group *cfqg) { }
675static inline void cfqg_put(struct cfq_group *cfqg) { } 676static inline void cfqg_put(struct cfq_group *cfqg) { }
676 677
677#define cfq_log_cfqq(cfqd, cfqq, fmt, args...) \ 678#define cfq_log_cfqq(cfqd, cfqq, fmt, args...) \
678 blk_add_trace_msg((cfqd)->queue, "cfq%d " fmt, (cfqq)->pid, ##args) 679 blk_add_trace_msg((cfqd)->queue, "cfq%d%c%c " fmt, (cfqq)->pid, \
680 cfq_cfqq_sync((cfqq)) ? 'S' : 'A', \
681 cfqq_type((cfqq)) == SYNC_NOIDLE_WORKLOAD ? 'N' : ' ',\
682 ##args)
679#define cfq_log_cfqg(cfqd, cfqg, fmt, args...) do {} while (0) 683#define cfq_log_cfqg(cfqd, cfqg, fmt, args...) do {} while (0)
680 684
681static inline void cfqg_stats_update_io_add(struct cfq_group *cfqg, 685static inline void cfqg_stats_update_io_add(struct cfq_group *cfqg,