Skip to content

Commit

Permalink
blk-iocost: Add iocg idle state tracepoint
Browse files Browse the repository at this point in the history
It will be helpful to trace the iocg's whole state, including active and
idle state. And we can easily expand the original iocost_iocg_activate
trace event to support a state trace class, including active and idle
state tracing.

Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Baolin Wang authored and Jens Axboe committed Dec 17, 2020
1 parent 1aba169 commit 76efc1c
Showing 2 changed files with 18 additions and 1 deletion.
3 changes: 3 additions & 0 deletions block/blk-iocost.c
Original file line number Diff line number Diff line change
@@ -2185,6 +2185,9 @@ static int ioc_check_iocgs(struct ioc *ioc, struct ioc_now *now)
WEIGHT_ONE);
}

TRACE_IOCG_PATH(iocg_idle, iocg, now,
atomic64_read(&iocg->active_period),
atomic64_read(&ioc->cur_period), vtime);
__propagate_weights(iocg, 0, 0, false, now);
list_del_init(&iocg->active_list);
}
16 changes: 15 additions & 1 deletion include/trace/events/iocost.h
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ struct ioc_gq;

#include <linux/tracepoint.h>

TRACE_EVENT(iocost_iocg_activate,
DECLARE_EVENT_CLASS(iocost_iocg_state,

TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
u64 last_period, u64 cur_period, u64 vtime),
@@ -59,6 +59,20 @@ TRACE_EVENT(iocost_iocg_activate,
)
);

DEFINE_EVENT(iocost_iocg_state, iocost_iocg_activate,
TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
u64 last_period, u64 cur_period, u64 vtime),

TP_ARGS(iocg, path, now, last_period, cur_period, vtime)
);

DEFINE_EVENT(iocost_iocg_state, iocost_iocg_idle,
TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
u64 last_period, u64 cur_period, u64 vtime),

TP_ARGS(iocg, path, now, last_period, cur_period, vtime)
);

DECLARE_EVENT_CLASS(iocg_inuse_update,

TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,

0 comments on commit 76efc1c

Please sign in to comment.