On Mon, 20 Mar 2023 09:56:05 +0100 Thomas Huth <th...@redhat.com> wrote:
> On 20/03/2023 08.48, Claudio Imbrenda wrote: > > The recently introduced -async-teardown commandline option was not > > wired up properly and did not show up in the output of the QMP command > > query-command-line-options. This means that libvirt will have no way to > > discover whether the feature is supported. > > > > This patch fixes the issue by correctly wiring up the commandline > > option so that it appears in the output of query-command-line-options. > > > > Reported-by: Boris Fiuczynski <fiu...@linux.ibm.com> > > Fixes: c891c24b1a ("os-posix: asynchronous teardown for shutdown on Linux") > > Signed-off-by: Claudio Imbrenda <imbre...@linux.ibm.com> > > --- > > util/async-teardown.c | 18 ++++++++++++++++++ > > 1 file changed, 18 insertions(+) > > > > diff --git a/util/async-teardown.c b/util/async-teardown.c > > index 62cdeb0f20..9a2e7bc146 100644 > > --- a/util/async-teardown.c > > +++ b/util/async-teardown.c > > @@ -12,6 +12,9 @@ > > */ > > > > #include "qemu/osdep.h" > > +#include "qemu/config-file.h" > > +#include "qemu/option.h" > > +#include "qemu/module.h" > > #include <dirent.h> > > #include <sys/prctl.h> > > #include <sched.h> > > @@ -144,3 +147,18 @@ void init_async_teardown(void) > > clone(async_teardown_fn, new_stack_for_clone(), CLONE_VM, NULL); > > sigprocmask(SIG_SETMASK, &old_signals, NULL); > > } > > + > > +static QemuOptsList qemu_async_teardown_opts = { > > + .name = "async-teardown", > > + .implied_opt_name = "enable", > > Are you sure about the "implied_opt_name" field? If I got that right, it's yeah that should not be there, I'll fix and send a v2 > used for options where you can omit the part before the "=" in the first > paramter, e.g. > > -netdev user > > is the same as: > > -netdev type=user > > ... but as far as I can see, there is no way to use > > -async-teardown enable=off > > at the command line? > > Thomas > > > > + .head = QTAILQ_HEAD_INITIALIZER(qemu_async_teardown_opts.head), > > + .desc = { > > + { /* end of list */ } > > + }, > > +}; > > + > > +static void register_async_teardown(void) > > +{ > > + qemu_add_opts(&qemu_async_teardown_opts); > > +} > > +opts_init(register_async_teardown); >