Skip to content

Commit 1f963bd

Browse files
YuKuai-huaweiaxboe
authored andcommitted
block: initialize bio issue time in blk_mq_submit_bio()
bio->issue_time_ns is only used by blk-iolatency, which can only be enabled for rq-based disk, hence it's not necessary to initialize the time for bio-based disk. Meanwhile, if bio is split by blk_crypto_fallback_split_bio_if_needed(), the issue time is not initialized for new split bio, this can be fixed as well. Noted the next patch will optimize better that bio issue time will only be used when blk-iolatency is really enabled by the disk. Fixes: 488f668 ("block: blk-crypto-fallback for Inline Encryption") Signed-off-by: Yu Kuai <yukuai3@huawei.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 1733e88 commit 1f963bd

4 files changed

Lines changed: 8 additions & 8 deletions

File tree

block/blk-cgroup.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,6 @@ static inline void blkg_put(struct blkcg_gq *blkg)
370370
if (((d_blkg) = blkg_lookup(css_to_blkcg(pos_css), \
371371
(p_blkg)->q)))
372372

373-
static inline void blkcg_bio_issue_init(struct bio *bio)
374-
{
375-
bio->issue_time_ns = blk_time_get_ns();
376-
}
377-
378373
static inline void blkcg_use_delay(struct blkcg_gq *blkg)
379374
{
380375
if (WARN_ON_ONCE(atomic_read(&blkg->use_delay) < 0))
@@ -497,7 +492,6 @@ static inline struct blkg_policy_data *blkg_to_pd(struct blkcg_gq *blkg,
497492
static inline struct blkcg_gq *pd_to_blkg(struct blkg_policy_data *pd) { return NULL; }
498493
static inline void blkg_get(struct blkcg_gq *blkg) { }
499494
static inline void blkg_put(struct blkcg_gq *blkg) { }
500-
static inline void blkcg_bio_issue_init(struct bio *bio) { }
501495
static inline void blk_cgroup_bio_start(struct bio *bio) { }
502496
static inline bool blk_cgroup_mergeable(struct request *rq, struct bio *bio) { return true; }
503497

block/blk-core.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,6 @@ static void __submit_bio_noacct_mq(struct bio *bio)
728728
void submit_bio_noacct_nocheck(struct bio *bio)
729729
{
730730
blk_cgroup_bio_start(bio);
731-
blkcg_bio_issue_init(bio);
732731

733732
if (!bio_flagged(bio, BIO_TRACE_COMPLETION)) {
734733
trace_block_bio_queue(bio);

block/blk-merge.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ static struct bio *bio_submit_split(struct bio *bio, int split_sectors)
119119
goto error;
120120
}
121121
split->bi_opf |= REQ_NOMERGE;
122-
blkcg_bio_issue_init(split);
123122
bio_chain(split, bio);
124123
trace_block_split(split, bio->bi_iter.bi_sector);
125124
WARN_ON_ONCE(bio_zone_write_plugging(bio));

block/blk-mq.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,13 @@ static inline void blk_mq_rq_time_init(struct request *rq, u64 alloc_time_ns)
396396
#endif
397397
}
398398

399+
static inline void blk_mq_bio_issue_init(struct bio *bio)
400+
{
401+
#ifdef CONFIG_BLK_CGROUP
402+
bio->issue_time_ns = blk_time_get_ns();
403+
#endif
404+
}
405+
399406
static struct request *blk_mq_rq_ctx_init(struct blk_mq_alloc_data *data,
400407
struct blk_mq_tags *tags, unsigned int tag)
401408
{
@@ -3168,6 +3175,7 @@ void blk_mq_submit_bio(struct bio *bio)
31683175
if (!bio_integrity_prep(bio))
31693176
goto queue_exit;
31703177

3178+
blk_mq_bio_issue_init(bio);
31713179
if (blk_mq_attempt_bio_merge(q, bio, nr_segs))
31723180
goto queue_exit;
31733181

0 commit comments

Comments
 (0)