iocg              196 block/blk-iocost.c #define TRACE_IOCG_PATH(type, iocg, ...)					\
iocg              201 block/blk-iocost.c 			cgroup_path(iocg_to_blkg(iocg)->blkcg->css.cgroup,	\
iocg              203 block/blk-iocost.c 			trace_iocost_##type(iocg, trace_iocg_path,		\
iocg              210 block/blk-iocost.c #define TRACE_IOCG_PATH(type, iocg, ...)	do { } while (0)
iocg              524 block/blk-iocost.c 	struct ioc_gq			*iocg;
iocg              644 block/blk-iocost.c static struct blkcg_gq *iocg_to_blkg(struct ioc_gq *iocg)
iocg              646 block/blk-iocost.c 	return pd_to_blkg(&iocg->pd);
iocg              672 block/blk-iocost.c static void iocg_commit_bio(struct ioc_gq *iocg, struct bio *bio, u64 cost)
iocg              675 block/blk-iocost.c 	atomic64_add(cost, &iocg->vtime);
iocg              894 block/blk-iocost.c static void __propagate_active_weight(struct ioc_gq *iocg, u32 active, u32 inuse)
iocg              896 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg              903 block/blk-iocost.c 	for (lvl = iocg->level - 1; lvl >= 0; lvl--) {
iocg              904 block/blk-iocost.c 		struct ioc_gq *parent = iocg->ancestors[lvl];
iocg              905 block/blk-iocost.c 		struct ioc_gq *child = iocg->ancestors[lvl + 1];
iocg              951 block/blk-iocost.c static void propagate_active_weight(struct ioc_gq *iocg, u32 active, u32 inuse)
iocg              953 block/blk-iocost.c 	__propagate_active_weight(iocg, active, inuse);
iocg              954 block/blk-iocost.c 	commit_active_weights(iocg->ioc);
iocg              957 block/blk-iocost.c static void current_hweight(struct ioc_gq *iocg, u32 *hw_activep, u32 *hw_inusep)
iocg              959 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg              966 block/blk-iocost.c 	if (ioc_gen == iocg->hweight_gen)
iocg              982 block/blk-iocost.c 	for (lvl = 0; lvl <= iocg->level - 1; lvl++) {
iocg              983 block/blk-iocost.c 		struct ioc_gq *parent = iocg->ancestors[lvl];
iocg              984 block/blk-iocost.c 		struct ioc_gq *child = iocg->ancestors[lvl + 1];
iocg             1001 block/blk-iocost.c 	iocg->hweight_active = max_t(u32, hwa, 1);
iocg             1002 block/blk-iocost.c 	iocg->hweight_inuse = max_t(u32, hwi, 1);
iocg             1003 block/blk-iocost.c 	iocg->hweight_gen = ioc_gen;
iocg             1006 block/blk-iocost.c 		*hw_activep = iocg->hweight_active;
iocg             1008 block/blk-iocost.c 		*hw_inusep = iocg->hweight_inuse;
iocg             1011 block/blk-iocost.c static void weight_updated(struct ioc_gq *iocg)
iocg             1013 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1014 block/blk-iocost.c 	struct blkcg_gq *blkg = iocg_to_blkg(iocg);
iocg             1020 block/blk-iocost.c 	weight = iocg->cfg_weight ?: iocc->dfl_weight;
iocg             1021 block/blk-iocost.c 	if (weight != iocg->weight && iocg->active)
iocg             1022 block/blk-iocost.c 		propagate_active_weight(iocg, weight,
iocg             1023 block/blk-iocost.c 			DIV64_U64_ROUND_UP(iocg->inuse * weight, iocg->weight));
iocg             1024 block/blk-iocost.c 	iocg->weight = weight;
iocg             1027 block/blk-iocost.c static bool iocg_activate(struct ioc_gq *iocg, struct ioc_now *now)
iocg             1029 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1038 block/blk-iocost.c 	if (!list_empty(&iocg->active_list)) {
iocg             1041 block/blk-iocost.c 		if (atomic64_read(&iocg->active_period) != cur_period)
iocg             1042 block/blk-iocost.c 			atomic64_set(&iocg->active_period, cur_period);
iocg             1047 block/blk-iocost.c 	if (iocg->child_active_sum)
iocg             1056 block/blk-iocost.c 	last_period = atomic64_read(&iocg->active_period);
iocg             1057 block/blk-iocost.c 	atomic64_set(&iocg->active_period, cur_period);
iocg             1060 block/blk-iocost.c 	if (!list_empty(&iocg->active_list))
iocg             1062 block/blk-iocost.c 	for (i = iocg->level - 1; i > 0; i--)
iocg             1063 block/blk-iocost.c 		if (!list_empty(&iocg->ancestors[i]->active_list))
iocg             1066 block/blk-iocost.c 	if (iocg->child_active_sum)
iocg             1076 block/blk-iocost.c 	vtime = atomic64_read(&iocg->vtime);
iocg             1082 block/blk-iocost.c 		atomic64_add(vmin - vtime, &iocg->vtime);
iocg             1083 block/blk-iocost.c 		atomic64_add(vmin - vtime, &iocg->done_vtime);
iocg             1092 block/blk-iocost.c 	iocg->hweight_gen = atomic_read(&ioc->hweight_gen) - 1;
iocg             1093 block/blk-iocost.c 	list_add(&iocg->active_list, &ioc->active_iocgs);
iocg             1094 block/blk-iocost.c 	propagate_active_weight(iocg, iocg->weight,
iocg             1095 block/blk-iocost.c 				iocg->last_inuse ?: iocg->weight);
iocg             1097 block/blk-iocost.c 	TRACE_IOCG_PATH(iocg_activate, iocg, now,
iocg             1100 block/blk-iocost.c 	iocg->last_vtime = vtime;
iocg             1128 block/blk-iocost.c 	iocg_commit_bio(ctx->iocg, wait->bio, cost);
iocg             1142 block/blk-iocost.c static void iocg_kick_waitq(struct ioc_gq *iocg, struct ioc_now *now)
iocg             1144 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1145 block/blk-iocost.c 	struct iocg_wake_ctx ctx = { .iocg = iocg };
iocg             1152 block/blk-iocost.c 	lockdep_assert_held(&iocg->waitq.lock);
iocg             1154 block/blk-iocost.c 	current_hweight(iocg, NULL, &hw_inuse);
iocg             1155 block/blk-iocost.c 	vbudget = now->vnow - atomic64_read(&iocg->vtime);
iocg             1158 block/blk-iocost.c 	vdebt = abs_cost_to_cost(iocg->abs_vdebt, hw_inuse);
iocg             1162 block/blk-iocost.c 				    iocg->abs_vdebt);
iocg             1164 block/blk-iocost.c 		atomic64_add(delta, &iocg->vtime);
iocg             1165 block/blk-iocost.c 		atomic64_add(delta, &iocg->done_vtime);
iocg             1166 block/blk-iocost.c 		iocg->abs_vdebt -= abs_delta;
iocg             1175 block/blk-iocost.c 	__wake_up_locked_key(&iocg->waitq, TASK_NORMAL, &ctx);
iocg             1176 block/blk-iocost.c 	if (!waitqueue_active(&iocg->waitq))
iocg             1188 block/blk-iocost.c 	oexpires = ktime_to_ns(hrtimer_get_softexpires(&iocg->waitq_timer));
iocg             1189 block/blk-iocost.c 	if (hrtimer_is_queued(&iocg->waitq_timer) &&
iocg             1193 block/blk-iocost.c 	hrtimer_start_range_ns(&iocg->waitq_timer, ns_to_ktime(expires),
iocg             1199 block/blk-iocost.c 	struct ioc_gq *iocg = container_of(timer, struct ioc_gq, waitq_timer);
iocg             1203 block/blk-iocost.c 	ioc_now(iocg->ioc, &now);
iocg             1205 block/blk-iocost.c 	spin_lock_irqsave(&iocg->waitq.lock, flags);
iocg             1206 block/blk-iocost.c 	iocg_kick_waitq(iocg, &now);
iocg             1207 block/blk-iocost.c 	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
iocg             1212 block/blk-iocost.c static bool iocg_kick_delay(struct ioc_gq *iocg, struct ioc_now *now, u64 cost)
iocg             1214 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1215 block/blk-iocost.c 	struct blkcg_gq *blkg = iocg_to_blkg(iocg);
iocg             1216 block/blk-iocost.c 	u64 vtime = atomic64_read(&iocg->vtime);
iocg             1222 block/blk-iocost.c 	lockdep_assert_held(&iocg->waitq.lock);
iocg             1225 block/blk-iocost.c 	current_hweight(iocg, NULL, &hw_inuse);
iocg             1226 block/blk-iocost.c 	vtime += abs_cost_to_cost(iocg->abs_vdebt, hw_inuse);
iocg             1233 block/blk-iocost.c 	if (!iocg->abs_vdebt || time_before_eq64(vtime, now->vnow)) {
iocg             1253 block/blk-iocost.c 	oexpires = ktime_to_ns(hrtimer_get_softexpires(&iocg->delay_timer));
iocg             1254 block/blk-iocost.c 	if (hrtimer_is_queued(&iocg->delay_timer) &&
iocg             1258 block/blk-iocost.c 	hrtimer_start_range_ns(&iocg->delay_timer, ns_to_ktime(expires),
iocg             1265 block/blk-iocost.c 	struct ioc_gq *iocg = container_of(timer, struct ioc_gq, delay_timer);
iocg             1269 block/blk-iocost.c 	spin_lock_irqsave(&iocg->waitq.lock, flags);
iocg             1270 block/blk-iocost.c 	ioc_now(iocg->ioc, &now);
iocg             1271 block/blk-iocost.c 	iocg_kick_delay(iocg, &now, 0);
iocg             1272 block/blk-iocost.c 	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
iocg             1317 block/blk-iocost.c static bool iocg_is_idle(struct ioc_gq *iocg)
iocg             1319 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1322 block/blk-iocost.c 	if (atomic64_read(&iocg->active_period) ==
iocg             1327 block/blk-iocost.c 	if (atomic64_read(&iocg->done_vtime) != atomic64_read(&iocg->vtime))
iocg             1350 block/blk-iocost.c 	struct ioc_gq *iocg, *tiocg;
iocg             1379 block/blk-iocost.c 	list_for_each_entry_safe(iocg, tiocg, &ioc->active_iocgs, active_list) {
iocg             1380 block/blk-iocost.c 		if (!waitqueue_active(&iocg->waitq) && iocg->abs_vdebt &&
iocg             1381 block/blk-iocost.c 		    !iocg_is_idle(iocg))
iocg             1384 block/blk-iocost.c 		spin_lock(&iocg->waitq.lock);
iocg             1386 block/blk-iocost.c 		if (waitqueue_active(&iocg->waitq) || iocg->abs_vdebt) {
iocg             1388 block/blk-iocost.c 			iocg_kick_waitq(iocg, &now);
iocg             1389 block/blk-iocost.c 			iocg_kick_delay(iocg, &now, 0);
iocg             1390 block/blk-iocost.c 		} else if (iocg_is_idle(iocg)) {
iocg             1392 block/blk-iocost.c 			iocg->last_inuse = iocg->inuse;
iocg             1393 block/blk-iocost.c 			__propagate_active_weight(iocg, 0, 0);
iocg             1394 block/blk-iocost.c 			list_del_init(&iocg->active_list);
iocg             1397 block/blk-iocost.c 		spin_unlock(&iocg->waitq.lock);
iocg             1402 block/blk-iocost.c 	list_for_each_entry(iocg, &ioc->active_iocgs, active_list) {
iocg             1410 block/blk-iocost.c 		vdone = atomic64_read(&iocg->done_vtime);
iocg             1411 block/blk-iocost.c 		vtime = atomic64_read(&iocg->vtime);
iocg             1412 block/blk-iocost.c 		current_hweight(iocg, &hw_active, &hw_inuse);
iocg             1421 block/blk-iocost.c 		    !atomic_read(&iocg_to_blkg(iocg)->use_delay) &&
iocg             1428 block/blk-iocost.c 		if (waitqueue_active(&iocg->waitq))
iocg             1429 block/blk-iocost.c 			vusage = now.vnow - iocg->last_vtime;
iocg             1430 block/blk-iocost.c 		else if (time_before64(iocg->last_vtime, vtime))
iocg             1431 block/blk-iocost.c 			vusage = vtime - iocg->last_vtime;
iocg             1435 block/blk-iocost.c 		iocg->last_vtime += vusage;
iocg             1447 block/blk-iocost.c 			iocg->usage_idx = (iocg->usage_idx + 1) % NR_USAGE_SLOTS;
iocg             1448 block/blk-iocost.c 			iocg->usages[iocg->usage_idx] = usage;
iocg             1457 block/blk-iocost.c 		iocg->has_surplus = false;
iocg             1459 block/blk-iocost.c 		if (!waitqueue_active(&iocg->waitq) &&
iocg             1464 block/blk-iocost.c 			atomic64_add(delta, &iocg->vtime);
iocg             1465 block/blk-iocost.c 			atomic64_add(delta, &iocg->done_vtime);
iocg             1466 block/blk-iocost.c 			iocg->last_vtime += delta;
iocg             1469 block/blk-iocost.c 				iocg->has_surplus = true;
iocg             1476 block/blk-iocost.c 			if (waitqueue_active(&iocg->waitq)) {
iocg             1484 block/blk-iocost.c 			new_inuse = div64_u64((u64)iocg->inuse * new_hwi,
iocg             1486 block/blk-iocost.c 			new_inuse = clamp_t(u32, new_inuse, 1, iocg->active);
iocg             1488 block/blk-iocost.c 			if (new_inuse > iocg->inuse) {
iocg             1489 block/blk-iocost.c 				TRACE_IOCG_PATH(inuse_takeback, iocg, &now,
iocg             1490 block/blk-iocost.c 						iocg->inuse, new_inuse,
iocg             1492 block/blk-iocost.c 				__propagate_active_weight(iocg, iocg->weight,
iocg             1505 block/blk-iocost.c 	list_for_each_entry(iocg, &ioc->active_iocgs, active_list) {
iocg             1509 block/blk-iocost.c 		if (!iocg->has_surplus)
iocg             1514 block/blk-iocost.c 			if (iocg->usages[i]) {
iocg             1515 block/blk-iocost.c 				usage = max(usage, iocg->usages[i]);
iocg             1522 block/blk-iocost.c 		current_hweight(iocg, &hw_active, &hw_inuse);
iocg             1527 block/blk-iocost.c 		new_inuse = DIV64_U64_ROUND_UP((u64)iocg->inuse * new_hwi,
iocg             1529 block/blk-iocost.c 		if (new_inuse < iocg->inuse) {
iocg             1530 block/blk-iocost.c 			TRACE_IOCG_PATH(inuse_giveaway, iocg, &now,
iocg             1531 block/blk-iocost.c 					iocg->inuse, new_inuse,
iocg             1533 block/blk-iocost.c 			__propagate_active_weight(iocg, iocg->weight, new_inuse);
iocg             1635 block/blk-iocost.c static void calc_vtime_cost_builtin(struct bio *bio, struct ioc_gq *iocg,
iocg             1638 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1659 block/blk-iocost.c 	if (iocg->cursor) {
iocg             1660 block/blk-iocost.c 		seek_pages = abs(bio->bi_iter.bi_sector - iocg->cursor);
iocg             1676 block/blk-iocost.c static u64 calc_vtime_cost(struct bio *bio, struct ioc_gq *iocg, bool is_merge)
iocg             1680 block/blk-iocost.c 	calc_vtime_cost_builtin(bio, iocg, is_merge, &cost);
iocg             1688 block/blk-iocost.c 	struct ioc_gq *iocg = blkg_to_iocg(blkg);
iocg             1695 block/blk-iocost.c 	if (!ioc->enabled || !iocg->level)
iocg             1699 block/blk-iocost.c 	if (!iocg_activate(iocg, &now))
iocg             1703 block/blk-iocost.c 	abs_cost = calc_vtime_cost(bio, iocg, false);
iocg             1707 block/blk-iocost.c 	iocg->cursor = bio_end_sector(bio);
iocg             1709 block/blk-iocost.c 	vtime = atomic64_read(&iocg->vtime);
iocg             1710 block/blk-iocost.c 	current_hweight(iocg, &hw_active, &hw_inuse);
iocg             1714 block/blk-iocost.c 		TRACE_IOCG_PATH(inuse_reset, iocg, &now,
iocg             1715 block/blk-iocost.c 				iocg->inuse, iocg->weight, hw_inuse, hw_active);
iocg             1717 block/blk-iocost.c 		propagate_active_weight(iocg, iocg->weight, iocg->weight);
iocg             1719 block/blk-iocost.c 		current_hweight(iocg, &hw_active, &hw_inuse);
iocg             1729 block/blk-iocost.c 	if (!waitqueue_active(&iocg->waitq) && !iocg->abs_vdebt &&
iocg             1731 block/blk-iocost.c 		iocg_commit_bio(iocg, bio, cost);
iocg             1741 block/blk-iocost.c 	spin_lock_irq(&iocg->waitq.lock);
iocg             1743 block/blk-iocost.c 	if (unlikely(list_empty(&iocg->active_list))) {
iocg             1744 block/blk-iocost.c 		spin_unlock_irq(&iocg->waitq.lock);
iocg             1745 block/blk-iocost.c 		iocg_commit_bio(iocg, bio, cost);
iocg             1767 block/blk-iocost.c 		iocg->abs_vdebt += abs_cost;
iocg             1768 block/blk-iocost.c 		if (iocg_kick_delay(iocg, &now, cost))
iocg             1771 block/blk-iocost.c 		spin_unlock_irq(&iocg->waitq.lock);
iocg             1794 block/blk-iocost.c 	__add_wait_queue_entry_tail(&iocg->waitq, &wait.wait);
iocg             1795 block/blk-iocost.c 	iocg_kick_waitq(iocg, &now);
iocg             1797 block/blk-iocost.c 	spin_unlock_irq(&iocg->waitq.lock);
iocg             1807 block/blk-iocost.c 	finish_wait(&iocg->waitq, &wait.wait);
iocg             1813 block/blk-iocost.c 	struct ioc_gq *iocg = blkg_to_iocg(bio->bi_blkg);
iocg             1814 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             1822 block/blk-iocost.c 	if (!ioc->enabled || !iocg->level)
iocg             1825 block/blk-iocost.c 	abs_cost = calc_vtime_cost(bio, iocg, true);
iocg             1830 block/blk-iocost.c 	current_hweight(iocg, NULL, &hw_inuse);
iocg             1835 block/blk-iocost.c 	    blk_rq_pos(rq) + blk_rq_sectors(rq) == iocg->cursor)
iocg             1836 block/blk-iocost.c 		iocg->cursor = bio_end;
iocg             1843 block/blk-iocost.c 	    time_before_eq64(atomic64_read(&iocg->vtime) + cost, now.vnow)) {
iocg             1844 block/blk-iocost.c 		iocg_commit_bio(iocg, bio, cost);
iocg             1853 block/blk-iocost.c 	spin_lock_irqsave(&iocg->waitq.lock, flags);
iocg             1854 block/blk-iocost.c 	if (likely(!list_empty(&iocg->active_list))) {
iocg             1855 block/blk-iocost.c 		iocg->abs_vdebt += abs_cost;
iocg             1856 block/blk-iocost.c 		iocg_kick_delay(iocg, &now, cost);
iocg             1858 block/blk-iocost.c 		iocg_commit_bio(iocg, bio, cost);
iocg             1860 block/blk-iocost.c 	spin_unlock_irqrestore(&iocg->waitq.lock, flags);
iocg             1865 block/blk-iocost.c 	struct ioc_gq *iocg = blkg_to_iocg(bio->bi_blkg);
iocg             1867 block/blk-iocost.c 	if (iocg && bio->bi_iocost_cost)
iocg             1868 block/blk-iocost.c 		atomic64_add(bio->bi_iocost_cost, &iocg->done_vtime);
iocg             2006 block/blk-iocost.c 	struct ioc_gq *iocg;
iocg             2008 block/blk-iocost.c 	iocg = kzalloc_node(sizeof(*iocg) + levels * sizeof(iocg->ancestors[0]),
iocg             2010 block/blk-iocost.c 	if (!iocg)
iocg             2013 block/blk-iocost.c 	return &iocg->pd;
iocg             2018 block/blk-iocost.c 	struct ioc_gq *iocg = pd_to_iocg(pd);
iocg             2019 block/blk-iocost.c 	struct blkcg_gq *blkg = pd_to_blkg(&iocg->pd);
iocg             2027 block/blk-iocost.c 	iocg->ioc = ioc;
iocg             2028 block/blk-iocost.c 	atomic64_set(&iocg->vtime, now.vnow);
iocg             2029 block/blk-iocost.c 	atomic64_set(&iocg->done_vtime, now.vnow);
iocg             2030 block/blk-iocost.c 	atomic64_set(&iocg->active_period, atomic64_read(&ioc->cur_period));
iocg             2031 block/blk-iocost.c 	INIT_LIST_HEAD(&iocg->active_list);
iocg             2032 block/blk-iocost.c 	iocg->hweight_active = HWEIGHT_WHOLE;
iocg             2033 block/blk-iocost.c 	iocg->hweight_inuse = HWEIGHT_WHOLE;
iocg             2035 block/blk-iocost.c 	init_waitqueue_head(&iocg->waitq);
iocg             2036 block/blk-iocost.c 	hrtimer_init(&iocg->waitq_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
iocg             2037 block/blk-iocost.c 	iocg->waitq_timer.function = iocg_waitq_timer_fn;
iocg             2038 block/blk-iocost.c 	hrtimer_init(&iocg->delay_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
iocg             2039 block/blk-iocost.c 	iocg->delay_timer.function = iocg_delay_timer_fn;
iocg             2041 block/blk-iocost.c 	iocg->level = blkg->blkcg->css.cgroup->level;
iocg             2045 block/blk-iocost.c 		iocg->ancestors[tiocg->level] = tiocg;
iocg             2049 block/blk-iocost.c 	weight_updated(iocg);
iocg             2055 block/blk-iocost.c 	struct ioc_gq *iocg = pd_to_iocg(pd);
iocg             2056 block/blk-iocost.c 	struct ioc *ioc = iocg->ioc;
iocg             2060 block/blk-iocost.c 		if (!list_empty(&iocg->active_list)) {
iocg             2061 block/blk-iocost.c 			propagate_active_weight(iocg, 0, 0);
iocg             2062 block/blk-iocost.c 			list_del_init(&iocg->active_list);
iocg             2066 block/blk-iocost.c 		hrtimer_cancel(&iocg->waitq_timer);
iocg             2067 block/blk-iocost.c 		hrtimer_cancel(&iocg->delay_timer);
iocg             2069 block/blk-iocost.c 	kfree(iocg);
iocg             2076 block/blk-iocost.c 	struct ioc_gq *iocg = pd_to_iocg(pd);
iocg             2078 block/blk-iocost.c 	if (dname && iocg->cfg_weight)
iocg             2079 block/blk-iocost.c 		seq_printf(sf, "%s %u\n", dname, iocg->cfg_weight);
iocg             2101 block/blk-iocost.c 	struct ioc_gq *iocg;
iocg             2117 block/blk-iocost.c 			struct ioc_gq *iocg = blkg_to_iocg(blkg);
iocg             2119 block/blk-iocost.c 			if (iocg) {
iocg             2120 block/blk-iocost.c 				spin_lock_irq(&iocg->ioc->lock);
iocg             2121 block/blk-iocost.c 				weight_updated(iocg);
iocg             2122 block/blk-iocost.c 				spin_unlock_irq(&iocg->ioc->lock);
iocg             2134 block/blk-iocost.c 	iocg = blkg_to_iocg(ctx.blkg);
iocg             2145 block/blk-iocost.c 	spin_lock(&iocg->ioc->lock);
iocg             2146 block/blk-iocost.c 	iocg->cfg_weight = v;
iocg             2147 block/blk-iocost.c 	weight_updated(iocg);
iocg             2148 block/blk-iocost.c 	spin_unlock(&iocg->ioc->lock);
iocg               16 include/trace/events/iocost.h 	TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
iocg               19 include/trace/events/iocost.h 	TP_ARGS(iocg, path, now, last_period, cur_period, vtime),
iocg               22 include/trace/events/iocost.h 		__string(devname, ioc_name(iocg->ioc))
iocg               38 include/trace/events/iocost.h 		__assign_str(devname, ioc_name(iocg->ioc));
iocg               45 include/trace/events/iocost.h 		__entry->last_vtime = iocg->last_vtime;
iocg               47 include/trace/events/iocost.h 		__entry->weight = iocg->weight;
iocg               48 include/trace/events/iocost.h 		__entry->inuse = iocg->inuse;
iocg               49 include/trace/events/iocost.h 		__entry->hweight_active = iocg->hweight_active;
iocg               50 include/trace/events/iocost.h 		__entry->hweight_inuse = iocg->hweight_inuse;
iocg               67 include/trace/events/iocost.h 	TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
iocg               71 include/trace/events/iocost.h 	TP_ARGS(iocg, path, now, old_inuse, new_inuse,
iocg               75 include/trace/events/iocost.h 		__string(devname, ioc_name(iocg->ioc))
iocg               85 include/trace/events/iocost.h 		__assign_str(devname, ioc_name(iocg->ioc));
iocg              103 include/trace/events/iocost.h 	TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
iocg              107 include/trace/events/iocost.h 	TP_ARGS(iocg, path, now, old_inuse, new_inuse,
iocg              113 include/trace/events/iocost.h 	TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
iocg              117 include/trace/events/iocost.h 	TP_ARGS(iocg, path, now, old_inuse, new_inuse,
iocg              123 include/trace/events/iocost.h 	TP_PROTO(struct ioc_gq *iocg, const char *path, struct ioc_now *now,
iocg              127 include/trace/events/iocost.h 	TP_ARGS(iocg, path, now, old_inuse, new_inuse,