Message ID | 20230320074855.11130-1-imbrenda@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1,1/1] util/async-teardown: wire up query-command-line-options | expand |
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 <fiuczy@linux.ibm.com> > Fixes: c891c24b1a ("os-posix: asynchronous teardown for shutdown on Linux") > Signed-off-by: Claudio Imbrenda <imbrenda@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 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);
On Mon, 20 Mar 2023 09:56:05 +0100 Thomas Huth <thuth@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 <fiuczy@linux.ibm.com> > > Fixes: c891c24b1a ("os-posix: asynchronous teardown for shutdown on Linux") > > Signed-off-by: Claudio Imbrenda <imbrenda@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); >
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", + .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);
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 <fiuczy@linux.ibm.com> Fixes: c891c24b1a ("os-posix: asynchronous teardown for shutdown on Linux") Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com> --- util/async-teardown.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)