Skip to content

Commit c75e707

Browse files
Christoph Hellwigaxboe
authored andcommitted
block: remove the per-bio/request write hint
With the NVMe support for this gone, there are no consumers of these hints left, so remove them. Signed-off-by: Christoph Hellwig <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent 85e6c77 commit c75e707

File tree

22 files changed

+9
-107
lines changed

22 files changed

+9
-107
lines changed

block/bio.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,6 @@ void bio_init(struct bio *bio, struct block_device *bdev, struct bio_vec *table,
257257
bio->bi_opf = opf;
258258
bio->bi_flags = 0;
259259
bio->bi_ioprio = 0;
260-
bio->bi_write_hint = 0;
261260
bio->bi_status = 0;
262261
bio->bi_iter.bi_sector = 0;
263262
bio->bi_iter.bi_size = 0;
@@ -737,7 +736,6 @@ static int __bio_clone(struct bio *bio, struct bio *bio_src, gfp_t gfp)
737736
bio_flagged(bio_src, BIO_REMAPPED))
738737
bio_set_flag(bio, BIO_REMAPPED);
739738
bio->bi_ioprio = bio_src->bi_ioprio;
740-
bio->bi_write_hint = bio_src->bi_write_hint;
741739
bio->bi_iter = bio_src->bi_iter;
742740

743741
bio_clone_blkg_association(bio, bio_src);

block/blk-crypto-fallback.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ static struct bio *blk_crypto_fallback_clone_bio(struct bio *bio_src)
170170
bio_set_flag(bio, BIO_REMAPPED);
171171
bio->bi_opf = bio_src->bi_opf;
172172
bio->bi_ioprio = bio_src->bi_ioprio;
173-
bio->bi_write_hint = bio_src->bi_write_hint;
174173
bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector;
175174
bio->bi_iter.bi_size = bio_src->bi_iter.bi_size;
176175

block/blk-merge.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -782,13 +782,6 @@ static struct request *attempt_merge(struct request_queue *q,
782782
!blk_write_same_mergeable(req->bio, next->bio))
783783
return NULL;
784784

785-
/*
786-
* Don't allow merge of different write hints, or for a hint with
787-
* non-hint IO.
788-
*/
789-
if (req->write_hint != next->write_hint)
790-
return NULL;
791-
792785
if (req->ioprio != next->ioprio)
793786
return NULL;
794787

@@ -915,13 +908,6 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio)
915908
!blk_write_same_mergeable(rq->bio, bio))
916909
return false;
917910

918-
/*
919-
* Don't allow merge of different write hints, or for a hint with
920-
* non-hint IO.
921-
*/
922-
if (rq->write_hint != bio->bi_write_hint)
923-
return false;
924-
925911
if (rq->ioprio != bio_prio(bio))
926912
return false;
927913

block/blk-mq-debugfs.c

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -183,35 +183,11 @@ static ssize_t queue_state_write(void *data, const char __user *buf,
183183
return count;
184184
}
185185

186-
static int queue_write_hint_show(void *data, struct seq_file *m)
187-
{
188-
struct request_queue *q = data;
189-
int i;
190-
191-
for (i = 0; i < BLK_MAX_WRITE_HINTS; i++)
192-
seq_printf(m, "hint%d: %llu\n", i, q->write_hints[i]);
193-
194-
return 0;
195-
}
196-
197-
static ssize_t queue_write_hint_store(void *data, const char __user *buf,
198-
size_t count, loff_t *ppos)
199-
{
200-
struct request_queue *q = data;
201-
int i;
202-
203-
for (i = 0; i < BLK_MAX_WRITE_HINTS; i++)
204-
q->write_hints[i] = 0;
205-
206-
return count;
207-
}
208-
209186
static const struct blk_mq_debugfs_attr blk_mq_debugfs_queue_attrs[] = {
210187
{ "poll_stat", 0400, queue_poll_stat_show },
211188
{ "requeue_list", 0400, .seq_ops = &queue_requeue_list_seq_ops },
212189
{ "pm_only", 0600, queue_pm_only_show, NULL },
213190
{ "state", 0600, queue_state_show, queue_state_write },
214-
{ "write_hints", 0600, queue_write_hint_show, queue_write_hint_store },
215191
{ "zone_wlock", 0400, queue_zone_wlock_show, NULL },
216192
{ },
217193
};

block/blk-mq.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2406,7 +2406,6 @@ static void blk_mq_bio_to_request(struct request *rq, struct bio *bio,
24062406
rq->cmd_flags |= REQ_FAILFAST_MASK;
24072407

24082408
rq->__sector = bio->bi_iter.bi_sector;
2409-
rq->write_hint = bio->bi_write_hint;
24102409
blk_rq_bio_prep(rq, bio, nr_segs);
24112410

24122411
/* This can't fail, since GFP_NOIO includes __GFP_DIRECT_RECLAIM. */

block/bounce.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ static struct bio *bounce_clone_bio(struct bio *bio_src)
169169
if (bio_flagged(bio_src, BIO_REMAPPED))
170170
bio_set_flag(bio, BIO_REMAPPED);
171171
bio->bi_ioprio = bio_src->bi_ioprio;
172-
bio->bi_write_hint = bio_src->bi_write_hint;
173172
bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector;
174173
bio->bi_iter.bi_size = bio_src->bi_iter.bi_size;
175174

block/fops.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ static ssize_t __blkdev_direct_IO_simple(struct kiocb *iocb,
8383
bio_init(&bio, bdev, vecs, nr_pages, dio_bio_write_op(iocb));
8484
}
8585
bio.bi_iter.bi_sector = pos >> SECTOR_SHIFT;
86-
bio.bi_write_hint = iocb->ki_hint;
8786
bio.bi_private = current;
8887
bio.bi_end_io = blkdev_bio_end_io_simple;
8988
bio.bi_ioprio = iocb->ki_ioprio;
@@ -225,7 +224,6 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
225224

226225
for (;;) {
227226
bio->bi_iter.bi_sector = pos >> SECTOR_SHIFT;
228-
bio->bi_write_hint = iocb->ki_hint;
229227
bio->bi_private = dio;
230228
bio->bi_end_io = blkdev_bio_end_io;
231229
bio->bi_ioprio = iocb->ki_ioprio;
@@ -327,7 +325,6 @@ static ssize_t __blkdev_direct_IO_async(struct kiocb *iocb,
327325
dio->flags = 0;
328326
dio->iocb = iocb;
329327
bio->bi_iter.bi_sector = pos >> SECTOR_SHIFT;
330-
bio->bi_write_hint = iocb->ki_hint;
331328
bio->bi_end_io = blkdev_bio_end_io_async;
332329
bio->bi_ioprio = iocb->ki_ioprio;
333330

drivers/md/raid1.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,8 +1137,6 @@ static void alloc_behind_master_bio(struct r1bio *r1_bio,
11371137
goto skip_copy;
11381138
}
11391139

1140-
behind_bio->bi_write_hint = bio->bi_write_hint;
1141-
11421140
while (i < vcnt && size) {
11431141
struct page *page;
11441142
int len = min_t(int, PAGE_SIZE, size);

drivers/md/raid5-ppl.c

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,6 @@ static void ppl_submit_iounit(struct ppl_io_unit *io)
467467
bio_set_dev(bio, log->rdev->bdev);
468468
bio->bi_iter.bi_sector = log->next_io_sector;
469469
bio_add_page(bio, io->header_page, PAGE_SIZE, 0);
470-
bio->bi_write_hint = ppl_conf->write_hint;
471470

472471
pr_debug("%s: log->current_io_sector: %llu\n", __func__,
473472
(unsigned long long)log->next_io_sector);
@@ -497,7 +496,6 @@ static void ppl_submit_iounit(struct ppl_io_unit *io)
497496
bio = bio_alloc_bioset(prev->bi_bdev, BIO_MAX_VECS,
498497
prev->bi_opf, GFP_NOIO,
499498
&ppl_conf->bs);
500-
bio->bi_write_hint = prev->bi_write_hint;
501499
bio->bi_iter.bi_sector = bio_end_sector(prev);
502500
bio_add_page(bio, sh->ppl_page, PAGE_SIZE, 0);
503501

@@ -1397,7 +1395,6 @@ int ppl_init_log(struct r5conf *conf)
13971395
atomic64_set(&ppl_conf->seq, 0);
13981396
INIT_LIST_HEAD(&ppl_conf->no_mem_stripes);
13991397
spin_lock_init(&ppl_conf->no_mem_stripes_lock);
1400-
ppl_conf->write_hint = RWH_WRITE_LIFE_NOT_SET;
14011398

14021399
if (!mddev->external) {
14031400
ppl_conf->signature = ~crc32c_le(~0, mddev->uuid, sizeof(mddev->uuid));
@@ -1496,25 +1493,13 @@ int ppl_modify_log(struct r5conf *conf, struct md_rdev *rdev, bool add)
14961493
static ssize_t
14971494
ppl_write_hint_show(struct mddev *mddev, char *buf)
14981495
{
1499-
size_t ret = 0;
1500-
struct r5conf *conf;
1501-
struct ppl_conf *ppl_conf = NULL;
1502-
1503-
spin_lock(&mddev->lock);
1504-
conf = mddev->private;
1505-
if (conf && raid5_has_ppl(conf))
1506-
ppl_conf = conf->log_private;
1507-
ret = sprintf(buf, "%d\n", ppl_conf ? ppl_conf->write_hint : 0);
1508-
spin_unlock(&mddev->lock);
1509-
1510-
return ret;
1496+
return sprintf(buf, "%d\n", 0);
15111497
}
15121498

15131499
static ssize_t
15141500
ppl_write_hint_store(struct mddev *mddev, const char *page, size_t len)
15151501
{
15161502
struct r5conf *conf;
1517-
struct ppl_conf *ppl_conf;
15181503
int err = 0;
15191504
unsigned short new;
15201505

@@ -1528,17 +1513,10 @@ ppl_write_hint_store(struct mddev *mddev, const char *page, size_t len)
15281513
return err;
15291514

15301515
conf = mddev->private;
1531-
if (!conf) {
1516+
if (!conf)
15321517
err = -ENODEV;
1533-
} else if (raid5_has_ppl(conf)) {
1534-
ppl_conf = conf->log_private;
1535-
if (!ppl_conf)
1536-
err = -EINVAL;
1537-
else
1538-
ppl_conf->write_hint = new;
1539-
} else {
1518+
else if (!raid5_has_ppl(conf) || !conf->log_private)
15401519
err = -EINVAL;
1541-
}
15421520

15431521
mddev_unlock(mddev);
15441522

drivers/md/raid5.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1210,9 +1210,6 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
12101210
bi->bi_io_vec[0].bv_len = RAID5_STRIPE_SIZE(conf);
12111211
bi->bi_io_vec[0].bv_offset = sh->dev[i].offset;
12121212
bi->bi_iter.bi_size = RAID5_STRIPE_SIZE(conf);
1213-
bi->bi_write_hint = sh->dev[i].write_hint;
1214-
if (!rrdev)
1215-
sh->dev[i].write_hint = RWH_WRITE_LIFE_NOT_SET;
12161213
/*
12171214
* If this is discard request, set bi_vcnt 0. We don't
12181215
* want to confuse SCSI because SCSI will replace payload
@@ -1264,8 +1261,6 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
12641261
rbi->bi_io_vec[0].bv_len = RAID5_STRIPE_SIZE(conf);
12651262
rbi->bi_io_vec[0].bv_offset = sh->dev[i].offset;
12661263
rbi->bi_iter.bi_size = RAID5_STRIPE_SIZE(conf);
1267-
rbi->bi_write_hint = sh->dev[i].write_hint;
1268-
sh->dev[i].write_hint = RWH_WRITE_LIFE_NOT_SET;
12691264
/*
12701265
* If this is discard request, set bi_vcnt 0. We don't
12711266
* want to confuse SCSI because SCSI will replace payload
@@ -3416,7 +3411,6 @@ static int add_stripe_bio(struct stripe_head *sh, struct bio *bi, int dd_idx,
34163411
(unsigned long long)sh->sector);
34173412

34183413
spin_lock_irq(&sh->stripe_lock);
3419-
sh->dev[dd_idx].write_hint = bi->bi_write_hint;
34203414
/* Don't allow new IO added to stripes in batch list */
34213415
if (sh->batch_head)
34223416
goto overlap;

0 commit comments

Comments
 (0)