From: Stefan Hajnoczi <stefanha@redhat.com>
To: JAEHOON KIM <jhkim@linux.ibm.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
pbonzini@redhat.com, fam@euphon.net, armbru@redhat.com,
eblake@redhat.com, berrange@redhat.com, eduardo@habkost.net,
dave@treblig.org, sw@weilnetz.de
Subject: Re: [PATCH RFC v1 0/3] aio-poll: improve aio-polling efficiency
Date: Mon, 23 Mar 2026 14:51:09 -0400 [thread overview]
Message-ID: <20260323185109.GB631609@fedora> (raw)
In-Reply-To: <63173e58-6c6e-4f69-a80d-8ddc4b372198@linux.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 14999 bytes --]
On Mon, Mar 23, 2026 at 09:08:13AM -0500, JAEHOON KIM wrote:
> On 3/9/2026 3:46 PM, JAEHOON KIM wrote:
> > On 2/26/2026 12:03 AM, JAEHOON KIM wrote:
> > > On 2/20/2026 1:00 PM, JAEHOON KIM wrote:
> > > > On 2/19/2026 4:27 PM, Stefan Hajnoczi wrote:
> > > > > Hi Jaehoon,
> > > > > Following the call earlier this week I ran a single fio job to get a
> > > > > clearer picture of:
> > > > > 1. The QEMU 10.0.0 regression that prompted you to optimize AioContext
> > > > > polling.
> > > > > 2. How the poll-weight parameter affects IOPS.
> > > > >
> > > > > run rw bs numjobs iothreads iops diff
> > > > > v9.2.0 randread 8k 1 1 174944 3.6%
> > > > > v10.0.0 randread 8k 1 1 174285 3.2%
> > > > > baseline randread 8k 1 1 168908 0.0%
> > > > > w2 randread 8k 1 1 163718 -3.1%
> > > > > w3 randread 8k 1 1 165805 -1.8%
> > > > > w4 randread 8k 1 1 167388 -0.9%
> > > > >
> > > > > This time I only ran randread bs=8k iodepth=8 numjobs=1 with a single
> > > > > IOThread.
> > > > >
> > > > > Observations:
> > > > >
> > > > > - There might be an IOPS regression between v10.0.0 and the baseline
> > > > > (9ad7f544c696) that your patches apply on top of. This is different
> > > > > from the CPU utilization regression that you found in v9.2.0 ->
> > > > > v10.0.0. I will bisect it.
> > > > >
> > > > > - poll-weight=3 and 4 improve IOPS to a level that is acceptable. CPU
> > > > > utilization looks like this:
> > > > >
> > > > > run %usr %nice %sys %iowait %steal
> > > > > %irq %soft %guest %gnice %idle
> > > > > baseline 49.37 0.00 31.10 0.00 0.00
> > > > > 11.61 0.04 0.00 0.00 7.89
> > > > > w2 46.24 0.00 32.61 0.00 0.00
> > > > > 11.84 0.10 0.00 0.00 9.21
> > > > > w3 48.04 0.00 32.17 0.00 0.00
> > > > > 11.98 0.08 0.00 0.00 7.73
> > > > > w4 48.56 0.00 31.23 0.00 0.00
> > > > > 11.48 0.03 0.00 0.00 8.69
> > > > >
> > > > > poll-weight=2 is the winner at CPU utilization. I'm not sure if
> > > > > poll-weight=3 will produce an acceptable CPU utilization
> > > > > improvement for
> > > > > you. Do you have data or want to re-run to measure poll-weight=3?
> > > > >
> > > > > Stefan
> > > >
> > > > Thank you very much for sharing the detailed measurement results.
> > > > I truly appreciate the effort.
> > > >
> > > > Regarding w=3, I will discuss with our performance team to see
> > > > if the CPU consumption levels are acceptable within our internal
> > > > test environment. I will get back to you with more definitive data
> > > > as soon as possible.
> > > >
> > > > Thanks again for your thorough analysis.
> > > >
> > > > Regards,
> > > > Jaehoon.
> > > >
> > > Hello Stefan,
> > >
> > > Thank you for your patience. I would like to share the observed
> > > changes in throughput
> > > and CPU consumption in our performance test environment as follows.
> > >
> > > We observed that when using W=3, performance returns to a level
> > > comparable to
> > > QEMU v9.1, while W=2 results in slightly lower CPU consumption.
> > >
> > > Our initial preference is to use W=2 by default.
> > > However, we fully understand your concerns regarding the potential
> > > performance drop.
> > > Should the patch be accepted, we would provide guidance on using the
> > > weighted value as
> > > a configurable option.
> > >
> > > For reference, we consider values between -2 and 2 as noise in our
> > > analysis.
> > > I look forward to your feedback.
> > >
> > > The table below shows a comparison between:
> > > * - Host:* RHEL10.1-GA+qemu-10.0.0-14.el10_1, *Guest:* RHEL 9.6 GA vs.
> > > * - Host:* RHEL10.1-GA+qemu-10.0.0-14.el10_1 (w=2, w=3), *Guest:*
> > > RHEL 9.6 GA
> > > for FIO FCP and FICON with 1 iothread and 8 iothreads.
> > > The values shown are the averages for numjobs 1, 4, and 8.
> > >
> > > FIO FCP -1 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -3.00 | -2.33 | 0.00 |
> > > -0.33 | -3.00 | -3.33 | 1.33 | -0.33 |
> > > | CPU consumption avg | -5.67 | -4.33 | -6.33 |
> > > -5.33 | -7.33 | -5.33 | -10.33 | -8.67 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > > FIO FCP -8 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -5.00 | -4.00 | -3.67 |
> > > -3.33 | -4.67 | -4.00 | -0.33 | -0.67 |
> > > | CPU consumption avg | -13.00 | -10.67 | -16.00 |
> > > -14.33 | -14.00 | -9.33 | -13.67 | -11.00 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > >
> > > FIO FICON -1 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -0.67 | -0.67 | -6.33 |
> > > -6.67 | -0.67 | 0.00 | 1.33 | 1.33 |
> > > | CPU consumption avg | -7.67 | -7.33 | -13.67 |
> > > -13.00 | -9.00 | -8.33 | -5.00 | -4.33 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > > FIO FICON -8 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -3.00 | -2.67 | -7.33 |
> > > -7.00 | -0.67 | -1.00 | 0.67 | 0.67 |
> > > | CPU consumption avg | -16.33 | -14.33 | -25.33 |
> > > -27.00 | -8.67 | -7.00 | -6.67 | -5.00 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > >
> > > The table below shows a comparison between:
> > > * - Host:* RHEL 10.0 GA + qemu-9.1.0-15.el10, *Guest:* RHEL 9.6 GA vs.
> > > * - Host:* RHEL 10.1 GA + qemu-10.0.0-14.el10_1 (w=2, w=3), *Guest:*
> > > RHEL 9.6 GA.
> > >
> > > FIO FCP -1 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -0.67 | 0.00 | -0.33 |
> > > -1.00 | -1.00 | -0.67 | 3.33 | 2.00 |
> > > | CPU consumption avg | 0.67 | 2.00 | 1.67 | 3.00
> > > | -3.33 | -0.33 | -2.33 | 0.00 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > > FIO FCP -8 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -2.00 | -1.33 | -1.00 | 0.00
> > > | -0.33 | 1.00 | 1.00 | 0.67 |
> > > | CPU consumption avg | -3.00 | -1.00 | -2.00 | 0.00
> > > | -10.33 | -5.67 | -6.67 | -3.33 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > >
> > > FIO FICON -1 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -1.67 | -1.67 | -0.33 | 0.00
> > > | -1.33 | -1.00 | -1.67 | -2.33 |
> > > | CPU consumption avg | -0.33 | 1.00 | 1.00 | 2.00
> > > | -2.33 | -1.33 | -1.33 | -0.33 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > > FIO FICON -8 iothread
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | | Seq. Read | Seq. Read | Seq. Write | Seq.
> > > Write | Rand. Read | Rand. Read | Rand. Write| Rand. Write|
> > > | | w2 (%) | w3 (%) | w2 (%) | w3
> > > (%) | w2 (%) | w3 (%) | w2 (%) | w3 (%) |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > > | Throughput avg | -1.00 | -0.67 | -0.33 | 0.33
> > > | 0.67 | 0.33 | 0.33 | 0.33 |
> > > | CPU consumption avg | -1.33 | 1.00 | 4.33 | 2.33
> > > | -2.00 | 0.00 | -3.00 | -1.33 |
> > > +---------------------+------------+------------+------------+------------+------------+------------+------------+------------+
> > >
> > >
> > >
> > > Regards,
> > > Jaehoon.
> > >
> > >
> > Hello Stefan,
> >
> > I’m following up to see if you’ve had a chance to review the performance
> > results I shared.
> > As I mentioned, we are completely fine with using w=3 as the default
> > value.
> > It effectively restores performance to QEMU v9.1 levels, and we will
> > provide guidance
> > for users who need further CPU savings to use w=2.
> >
> > I’ve updated the patch to set the default value to 3 and include the
> > feedback so far.
> > Please let me know if you have any comments or if I should post the new
> > patch.
> >
> > Regards,
> > Jaehoon
> >
> >
> Hello,
>
> I'd like to follow up on this thread. I have posted a v2 incorporating the
> feedback so far.
> I'd really appreciate your thoughts when you have a chance.
>
> Thanks again for your time.
Hi Jaehoon,
Sorry that I haven't replied yet. I will review your emails and the v2
patches tomorrow.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
prev parent reply other threads:[~2026-03-23 18:52 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-13 17:48 [PATCH RFC v1 0/3] aio-poll: improve aio-polling efficiency Jaehoon Kim
2026-01-13 17:48 ` [PATCH RFC v1 1/3] aio-poll: avoid unnecessary polling time computation Jaehoon Kim
2026-02-16 14:58 ` Stefan Hajnoczi
2026-02-16 15:21 ` Stefan Hajnoczi
2026-02-16 20:47 ` JAEHOON KIM
2026-02-17 13:16 ` Stefan Hajnoczi
2026-02-18 13:43 ` JAEHOON KIM
2026-01-13 17:48 ` [PATCH RFC v1 2/3] aio-poll: refine iothread polling using weighted handler intervals Jaehoon Kim
2026-01-13 17:48 ` [PATCH RFC v1 3/3] qapi/iothread: introduce poll-weight parameter for aio-poll Jaehoon Kim
2026-01-14 7:48 ` Markus Armbruster
2026-01-15 5:14 ` JAEHOON KIM
2026-01-15 7:28 ` Markus Armbruster
2026-01-15 10:05 ` Halil Pasic
2026-01-15 16:00 ` JAEHOON KIM
2026-01-16 8:19 ` Markus Armbruster
2026-01-19 18:16 ` [PATCH RFC v1 0/3] aio-poll: improve aio-polling efficiency Stefan Hajnoczi
2026-01-23 19:15 ` JAEHOON KIM
2026-01-27 21:11 ` Stefan Hajnoczi
2026-02-03 21:12 ` Stefan Hajnoczi
2026-02-06 6:50 ` JAEHOON KIM
2026-02-12 18:53 ` Stefan Hajnoczi
2026-02-13 15:13 ` JAEHOON KIM
2026-02-16 12:42 ` Stefan Hajnoczi
2026-02-19 22:27 ` Stefan Hajnoczi
2026-02-20 19:00 ` JAEHOON KIM
2026-02-24 4:24 ` Stefan Hajnoczi
2026-02-26 6:03 ` JAEHOON KIM
2026-03-09 20:46 ` JAEHOON KIM
2026-03-23 14:08 ` JAEHOON KIM
2026-03-23 18:51 ` Stefan Hajnoczi [this message]
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=20260323185109.GB631609@fedora \
--to=stefanha@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dave@treblig.org \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=fam@euphon.net \
--cc=jhkim@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=sw@weilnetz.de \
/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.