Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 007cc56b authored by Shaohua Li's avatar Shaohua Li Committed by Jens Axboe
Browse files

block: always attach cgroup info into bio



blkcg_bio_issue_check() already gets blkcg for a BIO.
bio_associate_blkcg() uses a percpu refcounter, so it's a very cheap
operation. There is no point we don't attach the cgroup info into bio at
blkcg_bio_issue_check. This also makes blktrace outputs correct cgroup
info.

Acked-by: default avatarTejun Heo <tj@kernel.org>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent ca1136c9
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -2104,14 +2104,9 @@ static inline void throtl_update_latency_buckets(struct throtl_data *td)
static void blk_throtl_assoc_bio(struct throtl_grp *tg, struct bio *bio)
{
#ifdef CONFIG_BLK_DEV_THROTTLING_LOW
	int ret;

	ret = bio_associate_current(bio);
	if (ret == 0 || ret == -EBUSY)
	if (bio->bi_css)
		bio->bi_cg_private = tg;
	blk_stat_set_issue(&bio->bi_issue_stat, bio_sectors(bio));
#else
	bio_associate_current(bio);
#endif
}

+3 −0
Original line number Diff line number Diff line
@@ -691,6 +691,9 @@ static inline bool blkcg_bio_issue_check(struct request_queue *q,
	rcu_read_lock();
	blkcg = bio_blkcg(bio);

	/* associate blkcg if bio hasn't attached one */
	bio_associate_blkcg(bio, &blkcg->css);

	blkg = blkg_lookup(blkcg, q);
	if (unlikely(!blkg)) {
		spin_lock_irq(q->queue_lock);