[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] Only advertise aio=io_uring if support is actually availa
From: |
Eric Blake |
Subject: |
Re: [PATCH v2] Only advertise aio=io_uring if support is actually available |
Date: |
Mon, 25 Apr 2022 17:04:14 -0500 |
User-agent: |
NeoMutt/20220415-26-c08bba |
On Mon, Apr 25, 2022 at 12:19:08PM +0100, Daniel P. Berrangé wrote:
> On Fri, Apr 22, 2022 at 03:30:46PM -0500, Eric Blake wrote:
> > On Thu, Apr 21, 2022 at 02:27:55PM -0500, Eric Blake wrote:
> > > On Thu, Apr 21, 2022 at 06:50:48PM +0200, Dirk Müller wrote:
> > > > Change --help output for aio option to only list the aio backend
> > > > options that
> > > > are actually available. io_uring is an optional, linux only backend
> > > > option so hide it for cases where it isn't there.
> > >
> > > As pointed out by Dan, this commit message is not quite accurate. It
> > > hides only one of the two conditional options, but 'native' is also a
> > > Linux-only optional backend (CONFIG_LINUX_AIO).
> >
> > Stepping back a bit - we already said that making --help
> > machine-parseable is a non-goal, and so the intent of this patch is
> > for human readers. But adding an #ifdef ladder to show all 4 possible
> > combinations gets hairy; adding another option turns it into 8
> > combinations. Is there a better way
> >
> > What if we just document ALL strings possible in at least one build
> > (no #ifdef ladder in the help text), but add --aio=help as a way to do
> > a runtime list of which aio modes are understood by THIS build? It
> > would match how we have --device=help for qemu proper, and may even be
> > able to reuse some of that framework code (for parsing out when help
> > is requested).
>
> Did you literally mean '--aio=help' ? 'aio' is just an option
> for disks, and I don't think we want new top levelk options. So
> would have to be '-drive ....,aio=help', or '--blockdev ....aio=help'
> the latter gets tricky with nested json syntax though, so not sure
> it is nicer.
For qemu-nbd, it literally is:
--aio=MODE set AIO mode (native, io_uring or threads)
so adding --aio=help is already a top-level option there. But for
other utilities, you are right that it is a per-device option, and not
a top-level thing (qemu-nbd is weird because it exposes exactly one
device).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org