From: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
To: Andrey Zhadchenko <andrey.zhadchenko@virtuozzo.com>,
ptikhomirov@virtuozzo.com
Cc: devel@openvz.org
Subject: Re: [Devel] [PATCH hci-8.1 6/7] drivers/md/dm-qcow2: declare DM_TARGET_NOWAIT
Date: Tue, 3 Nov 2026 09:33:17 +0100 [thread overview]
Message-ID: <f63967e1-8638-493e-a09e-263cebb95f96@virtuozzo.com> (raw)
In-Reply-To: <20261029140346.465768-7-andrey.zhadchenko@virtuozzo.com>
On 10/29/26 15:03, Andrey Zhadchenko wrote:
> dm-qcow2 is a request-based target: REQ_NOWAIT handling is done by blk-mq
> (tag allocation) before a request reaches us, and clone_and_map_rq()
> never blocks. Still, the target does not declare DM_TARGET_NOWAIT, so
> dm_table_set_restrictions() clears BLK_FEAT_NOWAIT on the mapped device
> and the block device file gets no FMODE_NOWAIT.
>
> As a result io_uring is unable to issue I/O in nowait mode and punts
> *every* request to io-wq worker threads: on 4k randwrite (io_uring,
> qd=64, 4 jobs) io-wq threads burn ~24% of all cpus doing nothing but a
> thread handoff.
>
> before after
> qd=64 nj=4 IOPS 1034K (11% idle) 892K (30% idle)
> qd=1 nj=1 lat 8us 6us
>
> The lower nj=4 number is because io-wq threads were providing "free"
> parallelism for the single-cpu submitters; the next patch gets it back
> without burning the cpus.
This commit drops multi-submitter throughput and the next patch brings
it back, which leaves a regression for bisect to land on. Maybe it has sense
to swap the order, so the batching patch goes first and this one follows?
>
> https://virtuozzo.atlassian.net/browse/VSTOR-95494
> Feature: dm-qcow2: block device over QCOW2 files driver
> Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko@virtuozzo.com>
> ---
> drivers/md/dm-qcow2-target.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/md/dm-qcow2-target.c b/drivers/md/dm-qcow2-target.c
> index be09615eb8e2e..4b9ae86ac9443 100644
> --- a/drivers/md/dm-qcow2-target.c
> +++ b/drivers/md/dm-qcow2-target.c
> @@ -1159,7 +1159,7 @@ static void qcow2_resume(struct dm_target *ti)
> static struct target_type qcow2_target = {
> .name = "qcow2",
> .version = {1, 0, 0},
> - .features = DM_TARGET_SINGLETON,
> + .features = DM_TARGET_SINGLETON | DM_TARGET_NOWAIT,
> .module = THIS_MODULE,
> .ctr = qcow2_ctr,
> .dtr = qcow2_dtr,
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
next prev parent reply other threads:[~2026-11-03 8:34 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-29 14:03 [Devel] [PATCH 0/7] drivers/md/dm-qcow2: per-qio fast path Andrey Zhadchenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 1/7] drivers/md/dm-qcow2: repeat md page lookup if it was inserted in parallel Andrey Zhadchenko
2026-10-29 14:13 ` no-reply
2026-11-04 21:35 ` Konstantin Khorenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 2/7] drivers/md/dm-qcow2: check MD_DIRTY and md->wbd under lock in perform_rw_mapped() Andrey Zhadchenko
2026-10-29 14:13 ` no-reply
2026-11-04 21:35 ` Konstantin Khorenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 3/7] drivers/md/dm-qcow2: prepare process_one_qio() for fastpath Andrey Zhadchenko
2026-10-29 14:16 ` no-reply
2026-11-02 17:28 ` Alexander Ivanov
2026-11-04 21:35 ` Konstantin Khorenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 4/7] drivers/md/dm-qcow2: add per-qio work infrastructure Andrey Zhadchenko
2026-10-29 14:18 ` no-reply
2026-11-04 21:35 ` Konstantin Khorenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 5/7] drivers/md/dm-qcow2: implement per-qio fast processing Andrey Zhadchenko
2026-10-29 14:22 ` no-reply
2026-11-04 21:35 ` Konstantin Khorenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 6/7] drivers/md/dm-qcow2: declare DM_TARGET_NOWAIT Andrey Zhadchenko
2026-10-29 14:19 ` no-reply
2026-11-03 8:33 ` Alexander Ivanov [this message]
2026-11-04 21:35 ` Konstantin Khorenko
2026-10-29 14:03 ` [Devel] [PATCH hci-8.1 7/7] drivers/md/dm-qcow2: process fast path qios in per-cpu batches on a workqueue Andrey Zhadchenko
2026-10-29 14:22 ` no-reply
2026-11-02 10:49 ` Andrey Zhadchenko
2026-11-04 21:35 ` Konstantin Khorenko
2026-11-03 9:36 ` [Devel] [PATCH 0/7] drivers/md/dm-qcow2: per-qio fast path Alexander Ivanov
2026-11-04 21:35 ` Konstantin Khorenko
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=f63967e1-8638-493e-a09e-263cebb95f96@virtuozzo.com \
--to=alexander.ivanov@virtuozzo.com \
--cc=andrey.zhadchenko@virtuozzo.com \
--cc=devel@openvz.org \
--cc=ptikhomirov@virtuozzo.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.