[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZXeJ9jAKEQ31OXLP@redhat.com>
Date: Mon, 11 Dec 2023 17:15:18 -0500
From: Mike Snitzer <snitzer@...nel.org>
To: Hongyu Jin <hongyu.jin.cn@...il.com>
Cc: agk@...hat.com, mpatocka@...hat.com, 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 v3 5/5] dm-crypt: Fix lost ioprio when queuing write bios
On Mon, Dec 11 2023 at 4:00P -0500,
Hongyu Jin <hongyu.jin.cn@...il.com> wrote:
> From: Hongyu Jin <hongyu.jin@...soc.com>
>
> The original submitting bio->bi_ioprio setting can be retained by
> struct dm_crypt_io::base_bio, we set the original bio's ioprio to
> the cloned bio for write.
>
> Signed-off-by: Hongyu Jin <hongyu.jin@...soc.com>
> ---
> drivers/md/dm-crypt.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
> index 6de107aff331..b67fec865f00 100644
> --- a/drivers/md/dm-crypt.c
> +++ b/drivers/md/dm-crypt.c
> @@ -1683,6 +1683,7 @@ static struct bio *crypt_alloc_buffer(struct dm_crypt_io *io, unsigned int size)
> GFP_NOIO, &cc->bs);
> clone->bi_private = io;
> clone->bi_end_io = crypt_endio;
> + clone->bi_ioprio = bio_prio(io->base_bio);
Weird use of bio_prio() wrapper given the assignment to
clone->bi_ioprio. I'd prefer:
clone->bi_ioprio = io->base_bio->bi_ioprio;
Some additional info to be mindful of:
This encryption bio has always been unique (ever since dm-crypt
stopped using the block layer's methods for cloning with 2007's commit
2f9941b6c55d7).
Prior to commit 2f9941b6c55d7, dm-crypt used to call __bio_clone() to
make sure not to miss cloning other capabilities -- and __bio_clone()
does exist again as of commit a0e8de798dd67 but it is private to bio.c
(in service to bio_alloc_clone, etc).
My point: because we aren't using traditional bio cloning (due to not
wanting to share the bio_vec) we also aren't transferring over the
cgroup (via bio_clone_blkg_association), etc.
That can be a secondary concern that you don't need to worry about
(but it is something Mikulas and I need to look at closer).
Mike
Powered by blists - more mailing lists