diff options
author | Jan Kara <jack@suse.cz> | 2012-09-01 23:37:20 +0200 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2012-09-10 20:53:05 -0400 |
commit | 9d8523da087da8ddb87e72a4a008725a2cd7e0c8 (patch) | |
tree | 214db5911ea68131a45615e8fe0419b48320d9a4 | |
parent | 3b1763ebc32446916598d9fc4e5b480622bbf050 (diff) | |
download | iowatcher-9d8523da087da8ddb87e72a4a008725a2cd7e0c8.tar.gz |
Fix filtering of outliers from below
There are lots of trace actions which do not carry a sector with them (e.g.
plug, unplug, ...). Thus sector is 0 for them and that results in trimming
of outliers from below never working. Fix the problem by accounting only
Queue events in the outlier statistics.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
-rw-r--r-- | blkparse.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -463,7 +463,8 @@ int filter_outliers(struct trace *trace, u64 max_offset, memset(max_per_bucket, 0, sizeof(u64) * 11); first_record(trace); while (1) { - if (!(trace->io->action & BLK_TC_ACT(BLK_TC_NOTIFY))) { + if (!(trace->io->action & BLK_TC_ACT(BLK_TC_NOTIFY)) && + (trace->io->action & BLK_TA_MASK) == __BLK_TA_QUEUE) { u64 top = (trace->io->sector << 9) + trace->io->bytes; slot = (int)(top / bytes_per_bucket); hits[slot]++; |