From: Andres Freund <[email protected]>
To: Oleksandr Natalenko <[email protected]>
Cc: Jens Axboe <[email protected]>,
[email protected], Genes Lists <[email protected]>,
Greg Kroah-Hartman <[email protected]>,
Pavel Begunkov <[email protected]>,
[email protected], [email protected]
Subject: Re: [PATCH 6.4 800/800] io_uring: Use io_schedule* in cqring wait
Date: Sun, 23 Jul 2023 11:58:56 -0700 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
Hi,
On 2023-07-23 20:06:19 +0200, Oleksandr Natalenko wrote:
> On neděle 23. července 2023 19:43:50 CEST Genes Lists wrote:
> > On 7/23/23 11:31, Jens Axboe wrote:
> > ...
> > > Just read the first one, but this is very much expected. It's now just
> > > correctly reflecting that one thread is waiting on IO. IO wait being
> > > 100% doesn't mean that one core is running 100% of the time, it just
> > > means it's WAITING on IO 100% of the time.
> > >
> >
> > Seems reasonable thank you.
> >
> > Question - do you expect the iowait to stay high for a freshly created
> > mariadb doing nothing (as far as I can tell anyway) until process
> > exited? Or Would you think it would drop in this case prior to the
> > process exiting.
> >
> > For example I tried the following - is the output what you expect?
> >
> > Create a fresh mariab with no databases - monitor the core showing the
> > iowaits with:
> >
> > mpstat -P ALL 2 100
> >
> > # rm -f /var/lib/mysql/*
> > # mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
> >
> > # systemctl start mariadb (iowaits -> 100%)
> >
> >
> > # iotop -bo |grep maria (shows no output, iowait stays 100%)
> >
> > (this persists until mariadb process exits)
> >
> >
> > # systemctl stop mariadb (iowait drops to 0%)
>
> This is a visible userspace behaviour change with no changes in the
> userspace itself, so we cannot just ignore it. If for some reason this is
> how it should be now, how do we explain it to MariaDB devs to get this
> fixed?
Just to confirm I understand: Your concern is how it looks in mpstat, not
performance or anything like that?
As far as I can tell, mariadb submits a bunch of IOs, which all have
completed:
...
mariadbd 438034 [000] 67593.094595: io_uring:io_uring_submit_req: ring 0xffff8887878ac800, req 0xffff888929df2400, user_data 0x55d5eaf29488, opcode READV, flags 0x0, sq_thread 0
mariadbd 438034 [000] 67593.094604: io_uring:io_uring_submit_req: ring 0xffff8887878ac800, req 0xffff888929df2500, user_data 0x55d5eaf29520, opcode READV, flags 0x0, sq_thread 0
mariadbd 438034 [000] 67593.094690: io_uring:io_uring_complete: ring 0xffff8887878ac800, req 0xffff888929df2400, user_data 0x55d5eaf29488, result 16384, cflags 0x0 extra1 0 extra2 0
mariadbd 438034 [000] 67593.094699: io_uring:io_uring_complete: ring 0xffff8887878ac800, req 0xffff888929df2500, user_data 0x55d5eaf29520, result 16384, cflags 0x0 extra1 0 extra2 0
Then waits for io_uring events:
mariadbd 438032 [003] 67593.095282: io_uring:io_uring_cqring_wait: ring 0xffff8887878ac800, min_events 1
There won't be any completions without further IO being submitted.
io_uring could have logic to somehow report a different state in such a case
(where there'll not be any completions before new IOs being submitted), but
that'd likely not be free.
Greetings,
Andres Freund
next prev parent reply other threads:[~2023-07-23 18:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <[email protected]>
2023-07-16 19:50 ` [PATCH 6.4 800/800] io_uring: Use io_schedule* in cqring wait Greg Kroah-Hartman
2023-07-23 9:39 ` Oleksandr Natalenko
2023-07-23 10:50 ` Greg Kroah-Hartman
2023-07-23 10:55 ` Genes Lists
2023-07-23 10:56 ` Oleksandr Natalenko
2023-07-23 12:11 ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-07-23 17:35 ` Linux regression tracking #update (Thorsten Leemhuis)
2023-07-23 15:31 ` Jens Axboe
2023-07-23 17:43 ` Genes Lists
2023-07-23 18:06 ` Oleksandr Natalenko
2023-07-23 18:58 ` Andres Freund [this message]
2023-07-23 19:44 ` Genes Lists
2023-07-24 15:47 ` Jens Axboe
2023-07-24 18:04 ` Genes Lists
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 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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