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>
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]++;