The patchset seems OK to me. Reviewed-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> On Wed, 24 Jan 2024, Hongyu Jin wrote: > From: Hongyu Jin <hongyu.jin@xxxxxxxxxx> > > High-priority tasks get data from dm-verity devices via RT IO priority, > I/O will lose RT priority when reading FEC and hash values via kworker > submission IO during verification, and the verification phase may be > blocked by low-priority IO. > > Dm-crypt has the same problem in the data writing process. > > This is because io_context and blkcg are missing. > > Move bio_set_ioprio() into submit_bio(): > 1. Only call bio_set_ioprio() once to set the priority of original bio, > the bio that cloned and splited from original bio will auto inherit > the priority of original bio in clone process. > > 2. Make the IO priority of the original bio to be passed to dm, > and the dm target inherits the IO priority as needed. > > Changes in v8: > - Rebase patch 1 on commit 7ed2632ec7d7 > Changes in v7: > - Modify patch 4: change dm-verity-fec.c > Changes in v6: > - Rebase patch and resolve conflict for patch 1, 3, 4 > - Modify patch 4: fec_read_parity() follow the priority of original > bio > - Update commit message > Changes in v5: > - Rewrite patch 2, add ioprio parameter in dm_io(); > - Modify dm_io() in patch 3 > Changes in v4: > - Modify commit message by Suggestion > - Modify patch for dm-crypt > Changes in v3: > - Split patch for device-mapper > - Add patch to fix dm-crypy I/O priority question > - Add block patch to review together > - Fix some error in v2 patch > Changes in v2: > - Add ioprio field in struct dm_io_region > - Initial struct dm_io_region::ioprio to IOPRIO_DEFAULT > - Add two interface > > > Hongyu Jin (5): > block: Fix bio IO priority setting > dm: Support I/O priority for dm_io() > dm-bufio: Support I/O priority > dm verity: Fix I/O priority lost when read FEC and hash > dm-crypt: Fix lost ioprio when queuing write bios > > block/blk-core.c | 10 +++++ > block/blk-mq.c | 10 ----- > drivers/md/dm-bufio.c | 43 +++++++++++-------- > drivers/md/dm-crypt.c | 1 + > drivers/md/dm-ebs-target.c | 8 ++-- > drivers/md/dm-integrity.c | 12 +++--- > drivers/md/dm-io.c | 23 +++++----- > drivers/md/dm-kcopyd.c | 4 +- > drivers/md/dm-log.c | 4 +- > drivers/md/dm-raid1.c | 6 +-- > drivers/md/dm-snap-persistent.c | 8 ++-- > drivers/md/dm-verity-fec.c | 21 +++++---- > drivers/md/dm-verity-target.c | 13 ++++-- > drivers/md/dm-writecache.c | 8 ++-- > drivers/md/persistent-data/dm-block-manager.c | 6 +-- > include/linux/dm-bufio.h | 5 ++- > include/linux/dm-io.h | 3 +- > 17 files changed, 102 insertions(+), 83 deletions(-) > > > base-commit: 7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf > -- > 2.34.1