From: Ming Lei <ming.lei@redhat.com>
To: Mikulas Patocka <mpatocka@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>, Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@kernel.org>,
linux-block@vger.kernel.org, dm-devel@lists.linux.dev
Subject: Re: [PATC] block: update queue limits atomically
Date: Thu, 20 Mar 2025 10:22:11 +0800 [thread overview]
Message-ID: <Z9t709DZs-Flq1qS@fedora> (raw)
In-Reply-To: <d04fcd9f-b4a7-100a-e9a4-b0d4d45b372b@redhat.com>
On Wed, Mar 19, 2025 at 10:18:39PM +0100, Mikulas Patocka wrote:
>
>
> On Tue, 18 Mar 2025, Jens Axboe wrote:
>
> > > Yeah, it looks fine, but I feel it is still fragile, and not sure it is one
> > > accepted solution.
> >
> > Agree - it'd be much better to have the bio drivers provide the same
> > guarantees that we get on the request side, rather than play games with
> > this and pretend that concurrent update and usage is fine.
> >
> > --
> > Jens Axboe
>
> And what mechanism should they use to read the queue limits?
> * locking? (would degrade performance)
> * percpu-rwsem? (no overhead for readers, writers wait for the RCU
> synchronization)
> * RCU?
> * anything else?
1) queue usage counter is for covering fast IO code path
- in __submit_bio(), queue usage counter is grabbed when calling
->submit_bio()
- the only trouble should be from dm-crypt or thin-provision which offloads
bio submission to other context, so you can grab the usage counter by
percpu_ref_get(&q->q_usage_counter) until this bio submission or queue
limit consumption is done
2) slow path: dm_set_device_limits
which is done before DM disk is on, so it should be fine by holding limit lock.
3) changing queue limits from bio->end_io() or request completion handler
- this usage need fix
thanks,
Ming
next prev parent reply other threads:[~2025-03-20 2:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-18 14:26 [PATC] block: update queue limits atomically Mikulas Patocka
2025-03-18 14:56 ` Ming Lei
2025-03-18 15:31 ` Mikulas Patocka
2025-03-19 1:22 ` Ming Lei
2025-03-19 1:58 ` Jens Axboe
2025-03-19 21:18 ` Mikulas Patocka
2025-03-20 2:22 ` Ming Lei [this message]
2025-03-20 12:58 ` Jens Axboe
2025-03-20 5:26 ` Christoph Hellwig
2025-03-18 15:58 ` Bart Van Assche
2025-03-18 16:13 ` Mikulas Patocka
2025-03-20 5:25 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z9t709DZs-Flq1qS@fedora \
--to=ming.lei@redhat.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@lists.linux.dev \
--cc=linux-block@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=snitzer@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox