From: Eduardo Habkost <ehabkost@redhat.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Thomas Huth <thuth@redhat.com>, Peter Xu <peterx@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Anthony Perard <anthony.perard@citrix.com>,
qemu-devel@nongnu.org, qemu-trivial@nongnu.org,
"Emilio G . Cota" <cota@braap.org>,
Eric Blake <eblake@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-trivial] [RFC PATCH] vl: only display available accelerators
Date: Fri, 3 Nov 2017 01:35:20 +0100 [thread overview]
Message-ID: <20171103003520.GF3111@localhost.localdomain> (raw)
In-Reply-To: <20171030181459.1951-1-f4bug@amsat.org>
On Mon, Oct 30, 2017 at 03:14:59PM -0300, Philippe Mathieu-Daudé wrote:
> examples configuring with '--enable-kvm --disable-tcg'
>
> - before
>
> $ qemu-system-x86_64 -accel help
> Possible accelerators: kvm, xen, hax, tcg
>
> $ qemu-system-x86_64 -accel tcg
> qemu-system-x86_64: -machine accel=tcg: No accelerator found
>
> # qemu-system-x86_64 -accel hax
> qemu-system-x86_64: -machine accel=hax: No accelerator found
>
> - after
>
> $ qemu-system-x86_64 -accel help
> Possible accelerators:
> xen
> kvm
>
> Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> since RFC:
> - use much cleaner object_class_get_list(TYPE_ACCEL, false)
>
> vl.c | 39 ++++++++++++++++++++++++++++++++++-----
> 1 file changed, 34 insertions(+), 5 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index ec299099ff..0f13641715 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2764,6 +2764,39 @@ static gint machine_class_cmp(gconstpointer a, gconstpointer b)
> exit(!name || !is_help_option(name));
> }
>
> +static void accel_list_entry(gpointer data, gpointer user_data)
> +{
> + ObjectClass *oc = data;
> + const char *typename = object_class_get_name(oc);
> + int len;
> +
> + if (!qtest_driver() && !g_strcmp0(typename, ACCEL_CLASS_NAME("qtest"))) {
> + return; /* used by test cases */
> + }
I would prefer to not hardcode the accel name here. If you want
qtest to have special behavior, you can add a new field to
AccelClass to implement that.
However, I don't think I agree we should hide qtest from the
user: it is accepted on the command-line, so why should we lie?
Why not add a description field and indicate that qtest is useful
only for testing?
> +
> + len = strlen(typename) - strlen("-" TYPE_ACCEL);
You can use AccelClass::name here.
> + if (len > 0) {
> + error_printf(" %.*s\n", len, typename);
> + }
> +}
> +
> +static void accel_parse(const char *name, QemuOpts *accel_opts)
> +{
> + const char *optarg = qemu_opt_get(accel_opts, "accel");
> + GSList *list;
> +
> + if (!is_help_option(optarg)) {
> + return;
> + }
> +
> + list = object_class_get_list(TYPE_ACCEL, false);
> + error_printf("Possible accelerators:\n");
> + g_slist_foreach(list, accel_list_entry, NULL);
> + g_slist_free(list);
> +
> + exit(0);
> +}
> +
> void qemu_add_exit_notifier(Notifier *notify)
> {
> notifier_list_add(&exit_notifiers, notify);
> @@ -3881,11 +3914,7 @@ int main(int argc, char **argv, char **envp)
> case QEMU_OPTION_accel:
> accel_opts = qemu_opts_parse_noisily(qemu_find_opts("accel"),
> optarg, true);
> - optarg = qemu_opt_get(accel_opts, "accel");
> - if (!optarg || is_help_option(optarg)) {
> - error_printf("Possible accelerators: kvm, xen, hax, tcg\n");
> - exit(0);
> - }
> + accel_parse(optarg, accel_opts);
> opts = qemu_opts_create(qemu_find_opts("machine"), NULL,
> false, &error_abort);
> qemu_opt_set(opts, "accel", optarg, &error_abort);
> --
> 2.15.0.rc2
>
--
Eduardo
WARNING: multiple messages have this Message-ID (diff)
From: Eduardo Habkost <ehabkost@redhat.com>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Thomas Huth <thuth@redhat.com>, Peter Xu <peterx@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Anthony Perard <anthony.perard@citrix.com>,
qemu-devel@nongnu.org, qemu-trivial@nongnu.org,
"Emilio G . Cota" <cota@braap.org>,
Eric Blake <eblake@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
Date: Fri, 3 Nov 2017 01:35:20 +0100 [thread overview]
Message-ID: <20171103003520.GF3111@localhost.localdomain> (raw)
In-Reply-To: <20171030181459.1951-1-f4bug@amsat.org>
On Mon, Oct 30, 2017 at 03:14:59PM -0300, Philippe Mathieu-Daudé wrote:
> examples configuring with '--enable-kvm --disable-tcg'
>
> - before
>
> $ qemu-system-x86_64 -accel help
> Possible accelerators: kvm, xen, hax, tcg
>
> $ qemu-system-x86_64 -accel tcg
> qemu-system-x86_64: -machine accel=tcg: No accelerator found
>
> # qemu-system-x86_64 -accel hax
> qemu-system-x86_64: -machine accel=hax: No accelerator found
>
> - after
>
> $ qemu-system-x86_64 -accel help
> Possible accelerators:
> xen
> kvm
>
> Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> since RFC:
> - use much cleaner object_class_get_list(TYPE_ACCEL, false)
>
> vl.c | 39 ++++++++++++++++++++++++++++++++++-----
> 1 file changed, 34 insertions(+), 5 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index ec299099ff..0f13641715 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2764,6 +2764,39 @@ static gint machine_class_cmp(gconstpointer a, gconstpointer b)
> exit(!name || !is_help_option(name));
> }
>
> +static void accel_list_entry(gpointer data, gpointer user_data)
> +{
> + ObjectClass *oc = data;
> + const char *typename = object_class_get_name(oc);
> + int len;
> +
> + if (!qtest_driver() && !g_strcmp0(typename, ACCEL_CLASS_NAME("qtest"))) {
> + return; /* used by test cases */
> + }
I would prefer to not hardcode the accel name here. If you want
qtest to have special behavior, you can add a new field to
AccelClass to implement that.
However, I don't think I agree we should hide qtest from the
user: it is accepted on the command-line, so why should we lie?
Why not add a description field and indicate that qtest is useful
only for testing?
> +
> + len = strlen(typename) - strlen("-" TYPE_ACCEL);
You can use AccelClass::name here.
> + if (len > 0) {
> + error_printf(" %.*s\n", len, typename);
> + }
> +}
> +
> +static void accel_parse(const char *name, QemuOpts *accel_opts)
> +{
> + const char *optarg = qemu_opt_get(accel_opts, "accel");
> + GSList *list;
> +
> + if (!is_help_option(optarg)) {
> + return;
> + }
> +
> + list = object_class_get_list(TYPE_ACCEL, false);
> + error_printf("Possible accelerators:\n");
> + g_slist_foreach(list, accel_list_entry, NULL);
> + g_slist_free(list);
> +
> + exit(0);
> +}
> +
> void qemu_add_exit_notifier(Notifier *notify)
> {
> notifier_list_add(&exit_notifiers, notify);
> @@ -3881,11 +3914,7 @@ int main(int argc, char **argv, char **envp)
> case QEMU_OPTION_accel:
> accel_opts = qemu_opts_parse_noisily(qemu_find_opts("accel"),
> optarg, true);
> - optarg = qemu_opt_get(accel_opts, "accel");
> - if (!optarg || is_help_option(optarg)) {
> - error_printf("Possible accelerators: kvm, xen, hax, tcg\n");
> - exit(0);
> - }
> + accel_parse(optarg, accel_opts);
> opts = qemu_opts_create(qemu_find_opts("machine"), NULL,
> false, &error_abort);
> qemu_opt_set(opts, "accel", optarg, &error_abort);
> --
> 2.15.0.rc2
>
--
Eduardo
next prev parent reply other threads:[~2017-11-03 0:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-30 18:14 [Qemu-trivial] [RFC PATCH] vl: only display available accelerators Philippe Mathieu-Daudé
2017-10-30 18:14 ` [Qemu-devel] " Philippe Mathieu-Daudé
2017-10-30 18:18 ` [Qemu-trivial] " Philippe Mathieu-Daudé
2017-10-30 18:18 ` [Qemu-devel] " Philippe Mathieu-Daudé
2017-11-03 0:35 ` Eduardo Habkost [this message]
2017-11-03 0:35 ` Eduardo Habkost
2017-11-08 16:20 ` [Qemu-trivial] " Philippe Mathieu-Daudé
2017-11-08 16:20 ` [Qemu-devel] " Philippe Mathieu-Daudé
2017-11-08 16:56 ` [Qemu-trivial] " Eduardo Habkost
2017-11-08 16:56 ` [Qemu-devel] " Eduardo Habkost
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=20171103003520.GF3111@localhost.localdomain \
--to=ehabkost@redhat.com \
--cc=anthony.perard@citrix.com \
--cc=armbru@redhat.com \
--cc=cota@braap.org \
--cc=eblake@redhat.com \
--cc=f4bug@amsat.org \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=rth@twiddle.net \
--cc=sstabellini@kernel.org \
--cc=thuth@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.