From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org,
qemu-block@nongnu.org, Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] blockdev: warn about aio=native if libaio is unavailable
Date: Fri, 17 Jul 2015 12:56:15 +0200 [thread overview]
Message-ID: <20150717105615.GB4622@noname.redhat.com> (raw)
In-Reply-To: <1437127189-1137-1-git-send-email-stefanha@redhat.com>
Am 17.07.2015 um 11:59 hat Stefan Hajnoczi geschrieben:
> QEMU silently ignores aio=native if libaio is unavailable. It is
> confusing when aio=native performance is identical to aio=threads
> because the binary was accidentally built without libaio.
>
> Use error_report() because failing would break backward compatibility.
> There are probably users using aio=native who would be inconvenienced if
> QEMU suddenly refused to start their guests.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
I hope not too many people are using aio=native without having libaio
compiled in... Can we make it a message like for the case with
aio=native,cache.direct=off, i.e. a deprecation warning that allows us
to make this an error in a few releases?
> blockdev.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/blockdev.c b/blockdev.c
> index 62a4586..f30828a 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -405,10 +405,14 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
> bdrv_flags |= BDRV_O_NO_FLUSH;
> }
>
> -#ifdef CONFIG_LINUX_AIO
> if ((buf = qemu_opt_get(opts, "aio")) != NULL) {
> if (!strcmp(buf, "native")) {
> +#ifdef CONFIG_LINUX_AIO
> bdrv_flags |= BDRV_O_NATIVE_AIO;
> +#else
> + error_report("warning: aio=native support unavailable, "
> + "using default instead");
> +#endif
> } else if (!strcmp(buf, "threads")) {
> /* this is the default */
> } else {
> @@ -416,7 +420,6 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
> goto early_err;
> }
> }
> -#endif
*sigh* It's sad to see that we still have such code in the generic block
layer. It has no business there, the raw-posix driver should check
whether it can support Linux AIO or not.
Paolo: You added some code to raw-win32 that implements aio=native.
Did it ever work in qemu proper, or only in the tools? It doesn't seem
that this code would even have added the flag on Windows builds.
Kevin
next prev parent reply other threads:[~2015-07-17 10:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-17 9:59 [Qemu-devel] [PATCH] blockdev: warn about aio=native if libaio is unavailable Stefan Hajnoczi
2015-07-17 10:56 ` Kevin Wolf [this message]
2015-07-17 13:57 ` Stefan Hajnoczi
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=20150717105615.GB4622@noname.redhat.com \
--to=kwolf@redhat.com \
--cc=armbru@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).