[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8b31bbef-35f7-6efd-d1ba-381cc1952e5d@redhat.com>
Date: Mon, 29 Jan 2024 20:29:10 +0100 (CET)
From: Mikulas Patocka <mpatocka@...hat.com>
To: Hongyu Jin <hongyu.jin.cn@...il.com>
cc: agk@...hat.com, snitzer@...nel.org, axboe@...nel.dk, ebiggers@...nel.org,
zhiguo.niu@...soc.com, ke.wang@...soc.com, yibin.ding@...soc.com,
hongyu.jin@...soc.com, linux-kernel@...r.kernel.org,
dm-devel@...ts.linux.dev, linux-block@...r.kernel.org
Subject: Re: [PATCH v8 0/5] Fix I/O priority lost in device-mapper
The patchset seems OK to me.
Reviewed-by: Mikulas Patocka <mpatocka@...hat.com>
On Wed, 24 Jan 2024, Hongyu Jin wrote:
> From: Hongyu Jin <hongyu.jin@...soc.com>
>
> 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
Powered by blists - more mailing lists