* [Qemu-devel] [RFC PATCH] vl: only display available accelerators
@ 2017-10-30 18:14 Philippe Mathieu-Daudé
2017-10-30 18:18 ` Philippe Mathieu-Daudé
2017-11-03 0:35 ` Eduardo Habkost
0 siblings, 2 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-10-30 18:14 UTC (permalink / raw)
To: Paolo Bonzini, Thomas Huth, Eduardo Habkost, Peter Xu,
Markus Armbruster, Stefano Stabellini, Anthony Perard
Cc: Philippe Mathieu-Daudé,
qemu-devel, qemu-trivial, Emilio G . Cota, Eric Blake,
Richard Henderson
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 */
+ }
+
+ len = strlen(typename) - strlen("-" TYPE_ACCEL);
+ 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
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 18:14 [Qemu-devel] [RFC PATCH] vl: only display available accelerators Philippe Mathieu-Daudé
@ 2017-10-30 18:18 ` Philippe Mathieu-Daudé
2017-11-03 0:35 ` Eduardo Habkost
1 sibling, 0 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-10-30 18:18 UTC (permalink / raw)
To: Paolo Bonzini, Thomas Huth, Eduardo Habkost, Peter Xu,
Markus Armbruster, Stefano Stabellini, Anthony Perard
Cc: Philippe Mathieu-Daudé,
qemu-devel@nongnu.org Developers, QEMU Trivial, Emilio G . Cota,
Eric Blake, Richard Henderson
Oops this isn't RFC anymore, this one is v1 ... sorry!
On Mon, Oct 30, 2017 at 3:14 PM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
[...]
> ---
> since RFC:
> - use much cleaner object_class_get_list(TYPE_ACCEL, false)
>
> vl.c | 39 ++++++++++++++++++++++++++++++++++-----
> 1 file changed, 34 insertions(+), 5 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 18:14 [Qemu-devel] [RFC PATCH] vl: only display available accelerators Philippe Mathieu-Daudé
2017-10-30 18:18 ` Philippe Mathieu-Daudé
@ 2017-11-03 0:35 ` Eduardo Habkost
2017-11-08 16:20 ` Philippe Mathieu-Daudé
1 sibling, 1 reply; 19+ messages in thread
From: Eduardo Habkost @ 2017-11-03 0:35 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Thomas Huth, Peter Xu, Markus Armbruster,
Stefano Stabellini, Anthony Perard, qemu-devel, qemu-trivial,
Emilio G . Cota, Eric Blake, Richard Henderson
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
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-03 0:35 ` Eduardo Habkost
@ 2017-11-08 16:20 ` Philippe Mathieu-Daudé
2017-11-08 16:56 ` Eduardo Habkost
0 siblings, 1 reply; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-11-08 16:20 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Paolo Bonzini, Thomas Huth, Peter Xu, Markus Armbruster,
Stefano Stabellini, Anthony Perard, qemu-devel, qemu-trivial,
Emilio G . Cota, Eric Blake, Richard Henderson
On 11/02/2017 09:35 PM, Eduardo Habkost wrote:
> 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?
Ok.
> Why not add a description field and indicate that qtest is useful
> only for testing?
This is cleaner indeed.
>> +
>> + len = strlen(typename) - strlen("-" TYPE_ACCEL);
>
> You can use AccelClass::name here.
Hmm yes but currently this is not what the user should use, since the
accel_find() matches the ACCEL_CLASS_NAME:
$ ppc64-softmmu/qemu-system-ppc64 -accel QTest
qemu-system-ppc64: -machine accel=QTest: No accelerator found
I'll respin but the change will be bigger so I is probably too late for
2.11.
>
>> + 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
>>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 16:20 ` Philippe Mathieu-Daudé
@ 2017-11-08 16:56 ` Eduardo Habkost
0 siblings, 0 replies; 19+ messages in thread
From: Eduardo Habkost @ 2017-11-08 16:56 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Thomas Huth, Peter Xu, Markus Armbruster,
Stefano Stabellini, Anthony Perard, qemu-devel, qemu-trivial,
Emilio G . Cota, Eric Blake, Richard Henderson
On Wed, Nov 08, 2017 at 01:20:49PM -0300, Philippe Mathieu-Daudé wrote:
> On 11/02/2017 09:35 PM, Eduardo Habkost wrote:
> > 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?
>
> Ok.
>
> > Why not add a description field and indicate that qtest is useful
> > only for testing?
>
> This is cleaner indeed.
>
> >> +
> >> + len = strlen(typename) - strlen("-" TYPE_ACCEL);
> >
> > You can use AccelClass::name here.
>
> Hmm yes but currently this is not what the user should use, since the
> accel_find() matches the ACCEL_CLASS_NAME:
>
> $ ppc64-softmmu/qemu-system-ppc64 -accel QTest
> qemu-system-ppc64: -machine accel=QTest: No accelerator found
Oops, you're correct.
In this case, I suggest using ACCEL_CLASS_SUFFIX instead of
hardcoding ("-" TYPE_ACCEL).
Maybe a accel_class_get_accel_name() helper similar to
x86_cpu_class_get_model_name() would be even better. It would
require an extra memory allocation, but the code would be
cleaner. We might add a QMP command returning the accel list in
the future, so a common helper would be useful.
>
> I'll respin but the change will be bigger so I is probably too late for
> 2.11.
>
> >
> >> + 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
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 18:35 ` Eduardo Habkost
@ 2017-11-08 19:41 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-11-08 19:41 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Daniel P. Berrange, Thomas Huth, Stefano Stabellini,
Markus Armbruster, Peter Xu, qemu-devel, Emilio G . Cota,
Anthony Perard, Paolo Bonzini, Richard Henderson,
Christoffer Dall, Vincent Palatin
On 11/08/2017 03:35 PM, Eduardo Habkost wrote:
> On Wed, Nov 08, 2017 at 03:03:34PM -0300, Philippe Mathieu-Daudé wrote:
>> On 11/08/2017 02:25 PM, Eduardo Habkost wrote:
>>> On Wed, Nov 08, 2017 at 05:06:29PM +0000, Daniel P. Berrange wrote:
>>>> On Wed, Nov 08, 2017 at 02:59:05PM -0200, Eduardo Habkost wrote:
>>>>> On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
>>>>>> On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
>>>>>>> On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
>>>>>>>> On Mon, Oct 30, 2017 at 01:00:56AM -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
>>>>>>>>>
>>>>>>>>> # qemu-system-x86_64 -accel xen
>>>>>>>>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
>>>>>>>>> xen be core: xen be core: can't open xen interface
>>>>>>>>> can't open xen interface
>>>>>>>>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
>>>>>>>>>
>>>>>>>>> - after
>>>>>>>>>
>>>>>>>>> $ qemu-system-x86_64 -accel help
>>>>>>>>> Possible accelerators: kvm
>>>>>>>>>
>>>>>>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>>>>>>> ---
>>>>>>>>> RFC because:
>>>>>>>>> - I don't think this is the nicest way, too much #ifdef'fery in main()
>>>>>>>>
>>>>>>>> I suggest using object_class_get_list(TYPE_ACCEL, false).
>>>>>>>
>>>>>>> And check the result of the available() method on the returned classes
>>>>>>> too, to filter the results.
>>>>>>
>>>>>> Good idea! I'll use that.
>>>>>
>>>>> It looks like QTest is the only accelerator that implements
>>>>> ->available(), and its return value is a build-time constant that
>>>>> depends only on CONFIG_POSIX.
>>>>>
>>>>> I wonder why we don't simply avoid compiling the qtest class if
>>>>> CONFIG_POSIX is unset, making the ->available() method
>>>>> unnecessary.
>>>>
>>>> Yeah that does seem simpler, though I'm surprised that Xen does not
>>>> implement the available method. Xen is an accel I'd expect to see
>>>> compiled into an x86 build, but is only available if the host is
>>>> actually booted under a Xen hypervisor. Likewise shouldn't kvm
>>>> only report itself as available if the /dev/kvm actually exists.
>>>> But maybe that's not the kind of semantics code using available()
>>>> expects ?
>>>
>>> Currently the only caller of ->available() calls ->init_machine()
>>> immediately afterwards, so for the current code it doesn't matter
>>> if the check is inside ->available() or ->init_machine().
>>>
>>> That said, I'm not sure we should look for /dev/kvm or check for
>>> the Xen hypervisor when handling "-accel help". I expect help
>>> text to tell the user what the QEMU binary supports, not what the
>>> current host supports.
>>
>> Yes I prefer that too, I'll write something up such:
>>
>> static bool kvm_available(void)
>> {
>> return access("/dev/kvm", R_OK|W_OK) == 0;
>> }
>>
>> However I wonder, if an user is not in the kvm group but is in sudoers
>> and run "qemu-system-aarch64 -accel help" he won't see KVM as
>> available... (I tend to not use sudo when looking for -help output).
>
> If we do that, I think we should include kvm in the list anyway,
> but just add a column indicating that it doesn't seem to be
> available on the host.
So with CONFIG_KVM we have 'KVM enabled' and we should list it, OK.
kvm_available() could be:
return access("/dev/kvm", F_OK) == 0;
(missing kmod).
Checking for R_OK|W_OK would give kvm_usable() but if the user forgot to
use sudo kvm_arch_init() will fail anyway, so no need to worry about it.
>
> In either case, I suggest implementing it as a separate patch,
> and just ignore ->available() in the first version.
Sure, availability check are for 2.12.
This -accel help message was added before 2.10, so this is not a bug fix
(nobody complained about it since 2.10). I'll postpone this series for 2.12.
>> On POWER7 we have:
>>
>> /* On ppc64, the test only works with kvm-hv, but not with kvm-pr */
>> accel = access("/sys/module/kvm_hv", F_OK) ? "tcg" : "kvm:tcg";
>>
>> Isn't it cleaner to register 2 accelerators, KVM-PR and KVM-HV and have
>> KVM being an alias?
>
> I believe "-accel kvm,kvm-type=HV" and "-accel kvm,kvm-type=PR"
> would be cleaner ways to represent the two modes, instead of
> having two different accelerator classes. This is not supported
> by the current "<accel1>:<accel2>" syntax, but I think we should
> replace that syntax with something better anyway.
Ok.
Thanks,
Phil.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 18:03 ` Philippe Mathieu-Daudé
@ 2017-11-08 18:35 ` Eduardo Habkost
2017-11-08 19:41 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 19+ messages in thread
From: Eduardo Habkost @ 2017-11-08 18:35 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Daniel P. Berrange, Thomas Huth, Stefano Stabellini,
Markus Armbruster, Peter Xu, qemu-devel, Emilio G . Cota,
Anthony Perard, Paolo Bonzini, Richard Henderson,
Christoffer Dall, Vincent Palatin
On Wed, Nov 08, 2017 at 03:03:34PM -0300, Philippe Mathieu-Daudé wrote:
> On 11/08/2017 02:25 PM, Eduardo Habkost wrote:
> > On Wed, Nov 08, 2017 at 05:06:29PM +0000, Daniel P. Berrange wrote:
> >> On Wed, Nov 08, 2017 at 02:59:05PM -0200, Eduardo Habkost wrote:
> >>> On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
> >>>> On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
> >>>>> On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
> >>>>>> On Mon, Oct 30, 2017 at 01:00:56AM -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
> >>>>>>>
> >>>>>>> # qemu-system-x86_64 -accel xen
> >>>>>>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> >>>>>>> xen be core: xen be core: can't open xen interface
> >>>>>>> can't open xen interface
> >>>>>>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
> >>>>>>>
> >>>>>>> - after
> >>>>>>>
> >>>>>>> $ qemu-system-x86_64 -accel help
> >>>>>>> Possible accelerators: kvm
> >>>>>>>
> >>>>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >>>>>>> ---
> >>>>>>> RFC because:
> >>>>>>> - I don't think this is the nicest way, too much #ifdef'fery in main()
> >>>>>>
> >>>>>> I suggest using object_class_get_list(TYPE_ACCEL, false).
> >>>>>
> >>>>> And check the result of the available() method on the returned classes
> >>>>> too, to filter the results.
> >>>>
> >>>> Good idea! I'll use that.
> >>>
> >>> It looks like QTest is the only accelerator that implements
> >>> ->available(), and its return value is a build-time constant that
> >>> depends only on CONFIG_POSIX.
> >>>
> >>> I wonder why we don't simply avoid compiling the qtest class if
> >>> CONFIG_POSIX is unset, making the ->available() method
> >>> unnecessary.
> >>
> >> Yeah that does seem simpler, though I'm surprised that Xen does not
> >> implement the available method. Xen is an accel I'd expect to see
> >> compiled into an x86 build, but is only available if the host is
> >> actually booted under a Xen hypervisor. Likewise shouldn't kvm
> >> only report itself as available if the /dev/kvm actually exists.
> >> But maybe that's not the kind of semantics code using available()
> >> expects ?
> >
> > Currently the only caller of ->available() calls ->init_machine()
> > immediately afterwards, so for the current code it doesn't matter
> > if the check is inside ->available() or ->init_machine().
> >
> > That said, I'm not sure we should look for /dev/kvm or check for
> > the Xen hypervisor when handling "-accel help". I expect help
> > text to tell the user what the QEMU binary supports, not what the
> > current host supports.
>
> Yes I prefer that too, I'll write something up such:
>
> static bool kvm_available(void)
> {
> return access("/dev/kvm", R_OK|W_OK) == 0;
> }
>
> However I wonder, if an user is not in the kvm group but is in sudoers
> and run "qemu-system-aarch64 -accel help" he won't see KVM as
> available... (I tend to not use sudo when looking for -help output).
If we do that, I think we should include kvm in the list anyway,
but just add a column indicating that it doesn't seem to be
available on the host.
In either case, I suggest implementing it as a separate patch,
and just ignore ->available() in the first version.
>
> same with:
>
> static bool hax_available(void)
> {
> return access("/dev/HAX", R_OK|W_OK) == 0;
> }
>
> ok for:
>
> static bool xen_available(void)
> {
> return access("/sys/hypervisor/properties/features", F_OK) == 0;
> }
>
> On POWER7 we have:
>
> /* On ppc64, the test only works with kvm-hv, but not with kvm-pr */
> accel = access("/sys/module/kvm_hv", F_OK) ? "tcg" : "kvm:tcg";
>
> Isn't it cleaner to register 2 accelerators, KVM-PR and KVM-HV and have
> KVM being an alias?
I believe "-accel kvm,kvm-type=HV" and "-accel kvm,kvm-type=PR"
would be cleaner ways to represent the two modes, instead of
having two different accelerator classes. This is not supported
by the current "<accel1>:<accel2>" syntax, but I think we should
replace that syntax with something better anyway.
--
Eduardo
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 17:25 ` Eduardo Habkost
2017-11-08 17:28 ` Daniel P. Berrange
@ 2017-11-08 18:03 ` Philippe Mathieu-Daudé
2017-11-08 18:35 ` Eduardo Habkost
1 sibling, 1 reply; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-11-08 18:03 UTC (permalink / raw)
To: Eduardo Habkost, Daniel P. Berrange
Cc: Thomas Huth, Stefano Stabellini, Markus Armbruster, Peter Xu,
qemu-devel, Emilio G . Cota, Anthony Perard, Paolo Bonzini,
Richard Henderson, Christoffer Dall, Vincent Palatin
On 11/08/2017 02:25 PM, Eduardo Habkost wrote:
> On Wed, Nov 08, 2017 at 05:06:29PM +0000, Daniel P. Berrange wrote:
>> On Wed, Nov 08, 2017 at 02:59:05PM -0200, Eduardo Habkost wrote:
>>> On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
>>>> On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
>>>>> On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
>>>>>> On Mon, Oct 30, 2017 at 01:00:56AM -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
>>>>>>>
>>>>>>> # qemu-system-x86_64 -accel xen
>>>>>>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
>>>>>>> xen be core: xen be core: can't open xen interface
>>>>>>> can't open xen interface
>>>>>>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
>>>>>>>
>>>>>>> - after
>>>>>>>
>>>>>>> $ qemu-system-x86_64 -accel help
>>>>>>> Possible accelerators: kvm
>>>>>>>
>>>>>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>>>>>> ---
>>>>>>> RFC because:
>>>>>>> - I don't think this is the nicest way, too much #ifdef'fery in main()
>>>>>>
>>>>>> I suggest using object_class_get_list(TYPE_ACCEL, false).
>>>>>
>>>>> And check the result of the available() method on the returned classes
>>>>> too, to filter the results.
>>>>
>>>> Good idea! I'll use that.
>>>
>>> It looks like QTest is the only accelerator that implements
>>> ->available(), and its return value is a build-time constant that
>>> depends only on CONFIG_POSIX.
>>>
>>> I wonder why we don't simply avoid compiling the qtest class if
>>> CONFIG_POSIX is unset, making the ->available() method
>>> unnecessary.
>>
>> Yeah that does seem simpler, though I'm surprised that Xen does not
>> implement the available method. Xen is an accel I'd expect to see
>> compiled into an x86 build, but is only available if the host is
>> actually booted under a Xen hypervisor. Likewise shouldn't kvm
>> only report itself as available if the /dev/kvm actually exists.
>> But maybe that's not the kind of semantics code using available()
>> expects ?
>
> Currently the only caller of ->available() calls ->init_machine()
> immediately afterwards, so for the current code it doesn't matter
> if the check is inside ->available() or ->init_machine().
>
> That said, I'm not sure we should look for /dev/kvm or check for
> the Xen hypervisor when handling "-accel help". I expect help
> text to tell the user what the QEMU binary supports, not what the
> current host supports.
Yes I prefer that too, I'll write something up such:
static bool kvm_available(void)
{
return access("/dev/kvm", R_OK|W_OK) == 0;
}
However I wonder, if an user is not in the kvm group but is in sudoers
and run "qemu-system-aarch64 -accel help" he won't see KVM as
available... (I tend to not use sudo when looking for -help output).
same with:
static bool hax_available(void)
{
return access("/dev/HAX", R_OK|W_OK) == 0;
}
ok for:
static bool xen_available(void)
{
return access("/sys/hypervisor/properties/features", F_OK) == 0;
}
On POWER7 we have:
/* On ppc64, the test only works with kvm-hv, but not with kvm-pr */
accel = access("/sys/module/kvm_hv", F_OK) ? "tcg" : "kvm:tcg";
Isn't it cleaner to register 2 accelerators, KVM-PR and KVM-HV and have
KVM being an alias?
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 17:25 ` Eduardo Habkost
@ 2017-11-08 17:28 ` Daniel P. Berrange
2017-11-08 18:03 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 19+ messages in thread
From: Daniel P. Berrange @ 2017-11-08 17:28 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Philippe Mathieu-Daudé,
Thomas Huth, Stefano Stabellini, Markus Armbruster, Peter Xu,
qemu-devel, Emilio G . Cota, Anthony Perard, Paolo Bonzini,
Richard Henderson
On Wed, Nov 08, 2017 at 03:25:47PM -0200, Eduardo Habkost wrote:
> On Wed, Nov 08, 2017 at 05:06:29PM +0000, Daniel P. Berrange wrote:
> > On Wed, Nov 08, 2017 at 02:59:05PM -0200, Eduardo Habkost wrote:
> > > On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
> > > > On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
> > > > > On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
> > > > >> On Mon, Oct 30, 2017 at 01:00:56AM -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
> > > > >>>
> > > > >>> # qemu-system-x86_64 -accel xen
> > > > >>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> > > > >>> xen be core: xen be core: can't open xen interface
> > > > >>> can't open xen interface
> > > > >>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
> > > > >>>
> > > > >>> - after
> > > > >>>
> > > > >>> $ qemu-system-x86_64 -accel help
> > > > >>> Possible accelerators: kvm
> > > > >>>
> > > > >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > > > >>> ---
> > > > >>> RFC because:
> > > > >>> - I don't think this is the nicest way, too much #ifdef'fery in main()
> > > > >>
> > > > >> I suggest using object_class_get_list(TYPE_ACCEL, false).
> > > > >
> > > > > And check the result of the available() method on the returned classes
> > > > > too, to filter the results.
> > > >
> > > > Good idea! I'll use that.
> > >
> > > It looks like QTest is the only accelerator that implements
> > > ->available(), and its return value is a build-time constant that
> > > depends only on CONFIG_POSIX.
> > >
> > > I wonder why we don't simply avoid compiling the qtest class if
> > > CONFIG_POSIX is unset, making the ->available() method
> > > unnecessary.
> >
> > Yeah that does seem simpler, though I'm surprised that Xen does not
> > implement the available method. Xen is an accel I'd expect to see
> > compiled into an x86 build, but is only available if the host is
> > actually booted under a Xen hypervisor. Likewise shouldn't kvm
> > only report itself as available if the /dev/kvm actually exists.
> > But maybe that's not the kind of semantics code using available()
> > expects ?
>
> Currently the only caller of ->available() calls ->init_machine()
> immediately afterwards, so for the current code it doesn't matter
> if the check is inside ->available() or ->init_machine().
>
> That said, I'm not sure we should look for /dev/kvm or check for
> the Xen hypervisor when handling "-accel help". I expect help
> text to tell the user what the QEMU binary supports, not what the
> current host supports.
Yeah, that's sensible.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 17:06 ` Daniel P. Berrange
@ 2017-11-08 17:25 ` Eduardo Habkost
2017-11-08 17:28 ` Daniel P. Berrange
2017-11-08 18:03 ` Philippe Mathieu-Daudé
0 siblings, 2 replies; 19+ messages in thread
From: Eduardo Habkost @ 2017-11-08 17:25 UTC (permalink / raw)
To: Daniel P. Berrange
Cc: Philippe Mathieu-Daudé,
Thomas Huth, Stefano Stabellini, Markus Armbruster, Peter Xu,
qemu-devel, Emilio G . Cota, Anthony Perard, Paolo Bonzini,
Richard Henderson
On Wed, Nov 08, 2017 at 05:06:29PM +0000, Daniel P. Berrange wrote:
> On Wed, Nov 08, 2017 at 02:59:05PM -0200, Eduardo Habkost wrote:
> > On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
> > > On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
> > > > On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
> > > >> On Mon, Oct 30, 2017 at 01:00:56AM -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
> > > >>>
> > > >>> # qemu-system-x86_64 -accel xen
> > > >>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> > > >>> xen be core: xen be core: can't open xen interface
> > > >>> can't open xen interface
> > > >>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
> > > >>>
> > > >>> - after
> > > >>>
> > > >>> $ qemu-system-x86_64 -accel help
> > > >>> Possible accelerators: kvm
> > > >>>
> > > >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > > >>> ---
> > > >>> RFC because:
> > > >>> - I don't think this is the nicest way, too much #ifdef'fery in main()
> > > >>
> > > >> I suggest using object_class_get_list(TYPE_ACCEL, false).
> > > >
> > > > And check the result of the available() method on the returned classes
> > > > too, to filter the results.
> > >
> > > Good idea! I'll use that.
> >
> > It looks like QTest is the only accelerator that implements
> > ->available(), and its return value is a build-time constant that
> > depends only on CONFIG_POSIX.
> >
> > I wonder why we don't simply avoid compiling the qtest class if
> > CONFIG_POSIX is unset, making the ->available() method
> > unnecessary.
>
> Yeah that does seem simpler, though I'm surprised that Xen does not
> implement the available method. Xen is an accel I'd expect to see
> compiled into an x86 build, but is only available if the host is
> actually booted under a Xen hypervisor. Likewise shouldn't kvm
> only report itself as available if the /dev/kvm actually exists.
> But maybe that's not the kind of semantics code using available()
> expects ?
Currently the only caller of ->available() calls ->init_machine()
immediately afterwards, so for the current code it doesn't matter
if the check is inside ->available() or ->init_machine().
That said, I'm not sure we should look for /dev/kvm or check for
the Xen hypervisor when handling "-accel help". I expect help
text to tell the user what the QEMU binary supports, not what the
current host supports.
--
Eduardo
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 16:59 ` Eduardo Habkost
@ 2017-11-08 17:06 ` Daniel P. Berrange
2017-11-08 17:25 ` Eduardo Habkost
0 siblings, 1 reply; 19+ messages in thread
From: Daniel P. Berrange @ 2017-11-08 17:06 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Philippe Mathieu-Daudé,
Thomas Huth, Stefano Stabellini, Markus Armbruster, Peter Xu,
qemu-devel, Emilio G . Cota, Anthony Perard, Paolo Bonzini,
Richard Henderson
On Wed, Nov 08, 2017 at 02:59:05PM -0200, Eduardo Habkost wrote:
> On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
> > On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
> > > On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
> > >> On Mon, Oct 30, 2017 at 01:00:56AM -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
> > >>>
> > >>> # qemu-system-x86_64 -accel xen
> > >>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> > >>> xen be core: xen be core: can't open xen interface
> > >>> can't open xen interface
> > >>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
> > >>>
> > >>> - after
> > >>>
> > >>> $ qemu-system-x86_64 -accel help
> > >>> Possible accelerators: kvm
> > >>>
> > >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > >>> ---
> > >>> RFC because:
> > >>> - I don't think this is the nicest way, too much #ifdef'fery in main()
> > >>
> > >> I suggest using object_class_get_list(TYPE_ACCEL, false).
> > >
> > > And check the result of the available() method on the returned classes
> > > too, to filter the results.
> >
> > Good idea! I'll use that.
>
> It looks like QTest is the only accelerator that implements
> ->available(), and its return value is a build-time constant that
> depends only on CONFIG_POSIX.
>
> I wonder why we don't simply avoid compiling the qtest class if
> CONFIG_POSIX is unset, making the ->available() method
> unnecessary.
Yeah that does seem simpler, though I'm surprised that Xen does not
implement the available method. Xen is an accel I'd expect to see
compiled into an x86 build, but is only available if the host is
actually booted under a Xen hypervisor. Likewise shouldn't kvm
only report itself as available if the /dev/kvm actually exists.
But maybe that's not the kind of semantics code using available()
expects ?
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 16:21 ` Philippe Mathieu-Daudé
@ 2017-11-08 16:59 ` Eduardo Habkost
2017-11-08 17:06 ` Daniel P. Berrange
0 siblings, 1 reply; 19+ messages in thread
From: Eduardo Habkost @ 2017-11-08 16:59 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Daniel P. Berrange, Thomas Huth, Stefano Stabellini,
Markus Armbruster, Peter Xu, qemu-devel, Emilio G . Cota,
Anthony Perard, Paolo Bonzini, Richard Henderson
On Wed, Nov 08, 2017 at 01:21:33PM -0300, Philippe Mathieu-Daudé wrote:
> On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
> > On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
> >> On Mon, Oct 30, 2017 at 01:00:56AM -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
> >>>
> >>> # qemu-system-x86_64 -accel xen
> >>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> >>> xen be core: xen be core: can't open xen interface
> >>> can't open xen interface
> >>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
> >>>
> >>> - after
> >>>
> >>> $ qemu-system-x86_64 -accel help
> >>> Possible accelerators: kvm
> >>>
> >>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >>> ---
> >>> RFC because:
> >>> - I don't think this is the nicest way, too much #ifdef'fery in main()
> >>
> >> I suggest using object_class_get_list(TYPE_ACCEL, false).
> >
> > And check the result of the available() method on the returned classes
> > too, to filter the results.
>
> Good idea! I'll use that.
It looks like QTest is the only accelerator that implements
->available(), and its return value is a build-time constant that
depends only on CONFIG_POSIX.
I wonder why we don't simply avoid compiling the qtest class if
CONFIG_POSIX is unset, making the ->available() method
unnecessary.
--
Eduardo
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-11-08 13:28 ` Daniel P. Berrange
@ 2017-11-08 16:21 ` Philippe Mathieu-Daudé
2017-11-08 16:59 ` Eduardo Habkost
0 siblings, 1 reply; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-11-08 16:21 UTC (permalink / raw)
To: Daniel P. Berrange, Eduardo Habkost
Cc: Thomas Huth, Stefano Stabellini, Markus Armbruster, Peter Xu,
qemu-devel, Emilio G . Cota, Anthony Perard, Paolo Bonzini,
Richard Henderson
On 11/08/2017 10:28 AM, Daniel P. Berrange wrote:
> On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
>> On Mon, Oct 30, 2017 at 01:00:56AM -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
>>>
>>> # qemu-system-x86_64 -accel xen
>>> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
>>> xen be core: xen be core: can't open xen interface
>>> can't open xen interface
>>> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
>>>
>>> - after
>>>
>>> $ qemu-system-x86_64 -accel help
>>> Possible accelerators: kvm
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> ---
>>> RFC because:
>>> - I don't think this is the nicest way, too much #ifdef'fery in main()
>>
>> I suggest using object_class_get_list(TYPE_ACCEL, false).
>
> And check the result of the available() method on the returned classes
> too, to filter the results.
Good idea! I'll use that.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 8:20 ` Eduardo Habkost
2017-10-30 15:01 ` Philippe Mathieu-Daudé
@ 2017-11-08 13:28 ` Daniel P. Berrange
2017-11-08 16:21 ` Philippe Mathieu-Daudé
1 sibling, 1 reply; 19+ messages in thread
From: Daniel P. Berrange @ 2017-11-08 13:28 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Philippe Mathieu-Daudé,
Thomas Huth, Stefano Stabellini, Markus Armbruster, Peter Xu,
qemu-devel, Emilio G . Cota, Anthony Perard, Paolo Bonzini,
Richard Henderson
On Mon, Oct 30, 2017 at 09:20:29AM +0100, Eduardo Habkost wrote:
> On Mon, Oct 30, 2017 at 01:00:56AM -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
> >
> > # qemu-system-x86_64 -accel xen
> > xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> > xen be core: xen be core: can't open xen interface
> > can't open xen interface
> > qemu-system-x86_64: failed to initialize Xen: Operation not permitted
> >
> > - after
> >
> > $ qemu-system-x86_64 -accel help
> > Possible accelerators: kvm
> >
> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > ---
> > RFC because:
> > - I don't think this is the nicest way, too much #ifdef'fery in main()
>
> I suggest using object_class_get_list(TYPE_ACCEL, false).
And check the result of the available() method on the returned classes
too, to filter the results.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 15:01 ` Philippe Mathieu-Daudé
@ 2017-10-30 15:34 ` Peter Maydell
0 siblings, 0 replies; 19+ messages in thread
From: Peter Maydell @ 2017-10-30 15:34 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Eduardo Habkost, Thomas Huth, Stefano Stabellini,
Markus Armbruster, Peter Xu, QEMU Developers, Emilio G . Cota,
Anthony Perard, Paolo Bonzini, Richard Henderson
On 30 October 2017 at 15:01, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> On 10/30/2017 05:20 AM, Eduardo Habkost wrote:
>> On Mon, Oct 30, 2017 at 01:00:56AM -0300, Philippe Mathieu-Daudé wrote:
>>> - I don't think this is the nicest way, too much #ifdef'fery in main()
>>
>> I suggest using object_class_get_list(TYPE_ACCEL, false).
>
> OK, this gives:
>
> $ qemu-system-x86_64 -accel help
> Possible accelerators:
> xen
> kvm
> qtest
>
> I was not aware of the qtest accel :)
We should special-case that one out, as it's only intended to be
used by our test cases. (In an ideal world we'd diagnose "you
used '-accel qtest' but didn't also pass '-qtest something'
to set up the communications channel with the test harness"
better than just SIGTERMing. But it's test code :-))
thanks
-- PMM
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 8:20 ` Eduardo Habkost
@ 2017-10-30 15:01 ` Philippe Mathieu-Daudé
2017-10-30 15:34 ` Peter Maydell
2017-11-08 13:28 ` Daniel P. Berrange
1 sibling, 1 reply; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-10-30 15:01 UTC (permalink / raw)
To: Eduardo Habkost
Cc: Paolo Bonzini, Thomas Huth, Peter Xu, Markus Armbruster,
Stefano Stabellini, Anthony Perard, qemu-devel, Emilio G . Cota,
Eric Blake, Richard Henderson
On 10/30/2017 05:20 AM, Eduardo Habkost wrote:
> On Mon, Oct 30, 2017 at 01:00:56AM -0300, Philippe Mathieu-Daudé wrote:
>> - I don't think this is the nicest way, too much #ifdef'fery in main()
>
> I suggest using object_class_get_list(TYPE_ACCEL, false).
OK, this gives:
$ qemu-system-x86_64 -accel help
Possible accelerators:
xen
kvm
qtest
I was not aware of the qtest accel :)
(gdb) r -accel qtest -nographic
Starting program: x86_64-softmmu/qemu-system-x86_64 -accel qtest -nographic
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffd7f4b700 (LWP 4085)]
[New Thread 0x7fffd774a700 (LWP 4086)]
Thread 1 "qemu-system-x86" received signal SIGTERM, Terminated.
0x00007fffde70f731 in __GI_ppoll (fds=0x555556bcc9e0, nfds=5,
timeout=<optimized out>, sigmask=0x0) at
../sysdeps/unix/sysv/linux/ppoll.c:39
39 ../sysdeps/unix/sysv/linux/ppoll.c: No such file or directory.
(gdb) i th
Id Target Id Frame
* 1 Thread 0x7ffff7f9eec0 (LWP 4080) "qemu-system-x86"
0x00007fffde70f731 in __GI_ppoll (fds=0x555556bcc9e0, nfds=5,
timeout=<optimized out>, sigmask=0x0) at
../sysdeps/unix/sysv/linux/ppoll.c:39
2 Thread 0x7fffd7f4b700 (LWP 4085) "qemu-system-x86" syscall () at
../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
3 Thread 0x7fffd774a700 (LWP 4086) "qemu-system-x86" do_sigwait
(set=<optimized out>, set@entry=0x7fffd7747700,
sig=sig@entry=0x7fffd77476fc) at ../sysdeps/unix/sysv/linux/sigwait.c:64
(gdb) bt
#0 0x00007fffde70f731 in __GI_ppoll (fds=0x555556bcc9e0, nfds=5,
timeout=<optimized out>, sigmask=0x0)
at ../sysdeps/unix/sysv/linux/ppoll.c:39
#1 0x0000555555c3702c in qemu_poll_ns (fds=0x555556bcc9e0, nfds=5,
timeout=1000000000) at util/qemu-timer.c:334
#2 0x0000555555c37f66 in os_host_main_loop_wait (timeout=1000000000) at
util/main-loop.c:255
#3 0x0000555555c38026 in main_loop_wait (nonblocking=0) at
util/main-loop.c:515
#4 0x00005555558aa6fc in main_loop () at vl.c:1995
#5 0x00005555558b1fc3 in main (argc=4, argv=0x7fffffffe088,
envp=0x7fffffffe0b0) at vl.c:4948
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 4:00 Philippe Mathieu-Daudé
2017-10-30 4:13 ` no-reply
@ 2017-10-30 8:20 ` Eduardo Habkost
2017-10-30 15:01 ` Philippe Mathieu-Daudé
2017-11-08 13:28 ` Daniel P. Berrange
1 sibling, 2 replies; 19+ messages in thread
From: Eduardo Habkost @ 2017-10-30 8:20 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Thomas Huth, Peter Xu, Markus Armbruster,
Stefano Stabellini, Anthony Perard, qemu-devel, Emilio G . Cota,
Eric Blake, Richard Henderson
On Mon, Oct 30, 2017 at 01:00:56AM -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
>
> # qemu-system-x86_64 -accel xen
> xencall: error: Could not obtain handle on privileged command interface: No such file or directory
> xen be core: xen be core: can't open xen interface
> can't open xen interface
> qemu-system-x86_64: failed to initialize Xen: Operation not permitted
>
> - after
>
> $ qemu-system-x86_64 -accel help
> Possible accelerators: kvm
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> RFC because:
> - I don't think this is the nicest way, too much #ifdef'fery in main()
I suggest using object_class_get_list(TYPE_ACCEL, false).
> - I'm not sure the correct use of CONFIG_KVM_IS_POSSIBLE
> - shouldn't CONFIG_XEN/CONFIG_HAX be as poisoned as CONFIG_KVM?
>
> vl.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/vl.c b/vl.c
> index ec299099ff..13fce86a6e 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3883,7 +3883,20 @@ int main(int argc, char **argv, char **envp)
> optarg, true);
> optarg = qemu_opt_get(accel_opts, "accel");
> if (!optarg || is_help_option(optarg)) {
> - error_printf("Possible accelerators: kvm, xen, hax, tcg\n");
> + error_printf("Possible accelerators: ");
> +#ifdef CONFIG_KVM_IS_POSSIBLE
> + error_printf("kvm ");
> +#endif
> +#ifdef CONFIG_XEN
> + error_printf("xen ");
> +#endif
> +#ifdef CONFIG_HAX
> + error_printf("hax ");
> +#endif
> +#ifdef CONFIG_TCG
> + error_printf("tcg ");
> +#endif
> + error_printf("\n");
> exit(0);
> }
> opts = qemu_opts_create(qemu_find_opts("machine"), NULL,
> --
> 2.15.0.rc2
>
--
Eduardo
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
2017-10-30 4:00 Philippe Mathieu-Daudé
@ 2017-10-30 4:13 ` no-reply
2017-10-30 8:20 ` Eduardo Habkost
1 sibling, 0 replies; 19+ messages in thread
From: no-reply @ 2017-10-30 4:13 UTC (permalink / raw)
To: f4bug
Cc: famz, pbonzini, thuth, ehabkost, peterx, armbru, sstabellini,
anthony.perard, rth, cota, qemu-devel
Hi,
This series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.
Subject: [Qemu-devel] [RFC PATCH] vl: only display available accelerators
Type: series
Message-id: 20171030040056.11780-1-f4bug@amsat.org
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
time make docker-test-build@min-glib
time make docker-test-mingw@fedora
time make docker-test-block@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
e627514954 vl: only display available accelerators
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-5starz_f/src/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
BUILD centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-5starz_f/src'
GEN /var/tmp/patchew-tester-tmp-5starz_f/src/docker-src.2017-10-30-00.10.34.32148/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-5starz_f/src/docker-src.2017-10-30-00.10.34.32148/qemu.tar.vroot'...
done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-5starz_f/src/docker-src.2017-10-30-00.10.34.32148/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-5starz_f/src/docker-src.2017-10-30-00.10.34.32148/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
COPY RUNNER
RUN test-quick in qemu:centos6
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
bison-2.4.1-5.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
ccache-3.1.6-2.el6.x86_64
csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64
flex-2.5.35-9.el6.x86_64
gcc-4.4.7-18.el6.x86_64
gettext-0.17-18.el6.x86_64
git-1.7.1-9.el6_9.x86_64
glib2-devel-2.28.8-9.el6.x86_64
libepoxy-devel-1.2-3.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
librdmacm-devel-1.0.21-0.el6.x86_64
lzo-devel-2.03-3.1.el6_5.1.x86_64
make-3.81-23.el6.x86_64
mesa-libEGL-devel-11.0.7-4.el6.x86_64
mesa-libgbm-devel-11.0.7-4.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
spice-glib-devel-0.26-8.el6.x86_64
spice-server-devel-0.12.4-16.el6.x86_64
tar-1.23-15.el6_8.x86_64
vte-devel-0.25.1-9.el6.x86_64
xen-devel-4.6.6-2.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
Environment variables:
PACKAGES=bison bzip2-devel ccache csnappy-devel flex g++ gcc gettext git glib2-devel libepoxy-devel libfdt-devel librdmacm-devel lzo-devel make mesa-libEGL-devel mesa-libgbm-devel pixman-devel SDL-devel spice-glib-devel spice-server-devel tar vte-devel xen-devel zlib-devel
HOSTNAME=423690ba8c26
MAKEFLAGS= -j8
J=8
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
TARGET_LIST=
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
FEATURES= dtc
DEBUG=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install
No C++ compiler available; disabling C++ specific optional code
Install prefix /tmp/qemu-test/install
BIOS directory /tmp/qemu-test/install/share/qemu
firmware path /tmp/qemu-test/install/share/qemu-firmware
binary directory /tmp/qemu-test/install/bin
library directory /tmp/qemu-test/install/lib
module directory /tmp/qemu-test/install/lib/qemu
libexec directory /tmp/qemu-test/install/libexec
include directory /tmp/qemu-test/install/include
config directory /tmp/qemu-test/install/etc
local state directory /tmp/qemu-test/install/var
Manual directory /tmp/qemu-test/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/qemu-test/src
GIT submodules
C compiler cc
Host C compiler cc
C++ compiler
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all -I/usr/include/libpng12 -I/usr/include/libdrm -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.14)
GTK support yes (2.24.23)
GTK GL support no
VTE support yes (0.25.1)
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support yes
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support no
VNC JPEG support yes
VNC PNG support yes
xen support yes
xen ctrl version 40600
pv dom build no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
RDMA support yes
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support yes (0.12.6/0.12.4)
rbd support no
xfsctl support no
smartcard support yes
libusb no
usb net redir no
OpenGL support yes
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support no
bzip2 support yes
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone no
mkdir -p dtc/libfdt
GEN x86_64-softmmu/config-devices.mak.tmp
mkdir -p dtc/tests
GEN aarch64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN aarch64-softmmu/config-devices.mak
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
DEP /tmp/qemu-test/src/dtc/tests/trees.S
DEP /tmp/qemu-test/src/dtc/tests/testutils.c
DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
DEP /tmp/qemu-test/src/dtc/tests/check_path.c
DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
DEP /tmp/qemu-test/src/dtc/tests/overlay.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
DEP /tmp/qemu-test/src/dtc/tests/incbin.c
DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
DEP /tmp/qemu-test/src/dtc/tests/path-references.c
DEP /tmp/qemu-test/src/dtc/tests/references.c
DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
DEP /tmp/qemu-test/src/dtc/tests/del_node.c
DEP /tmp/qemu-test/src/dtc/tests/del_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop.c
DEP /tmp/qemu-test/src/dtc/tests/set_name.c
DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
DEP /tmp/qemu-test/src/dtc/tests/notfound.c
DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
DEP /tmp/qemu-test/src/dtc/tests/get_path.c
DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
DEP /tmp/qemu-test/src/dtc/tests/getprop.c
DEP /tmp/qemu-test/src/dtc/tests/get_name.c
DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
DEP /tmp/qemu-test/src/dtc/tests/find_property.c
DEP /tmp/qemu-test/src/dtc/tests/root_node.c
DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
DEP /tmp/qemu-test/src/dtc/util.c
DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
DEP /tmp/qemu-test/src/dtc/fdtput.c
DEP /tmp/qemu-test/src/dtc/fdtget.c
LEX convert-dtsv0-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/srcpos.c
BISON dtc-parser.tab.c
DEP /tmp/qemu-test/src/dtc/fdtdump.c
LEX dtc-lexer.lex.c
DEP /tmp/qemu-test/src/dtc/treesource.c
DEP /tmp/qemu-test/src/dtc/livetree.c
DEP /tmp/qemu-test/src/dtc/fstree.c
DEP /tmp/qemu-test/src/dtc/dtc.c
DEP /tmp/qemu-test/src/dtc/flattree.c
DEP /tmp/qemu-test/src/dtc/data.c
DEP /tmp/qemu-test/src/dtc/checks.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-parser.tab.c
DEP dtc-lexer.lex.c
CHK version_gen.h
UPD version_gen.h
DEP /tmp/qemu-test/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
mkdir -p dtc/libfdt
mkdir -p dtc/tests
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qjson.o
CC qobject/qlit.o
CC qobject/qbool.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/cutils.o
CC util/unicode.o
CC util/osdep.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/qemu-timer.o
CC util/thread-pool.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/hbitmap.o
CC util/bitops.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/iov.o
CC util/id.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/notify.o
CC util/uri.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/uuid.o
CC util/crc32c.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/intc/trace.o
CC hw/char/trace.o
CC hw/net/trace.o
CC hw/audio/trace.o
CC hw/virtio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/mips/trace.o
CC target/i386/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC linux-user/trace.o
CC qom/trace.o
CC accel/tcg/trace.o
CC qapi/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/blk-commit-all.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/get-vm-name.o
CC stubs/gdbstub.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/machine-init-done.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-hvm.o
CC stubs/xen-common.o
CC stubs/pci-host-piix.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/blkdebug.o
CC block/parallels.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/common.o
CC nbd/client.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-glib.o
CC crypto/hmac.o
CC crypto/hmac-glib.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-platform.o
CC crypto/pbkdf.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
GEN qemu-img-cmds.h
CC qom/object_interfaces.o
CC qemu-io.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/spiceaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/hostmem.o
CC backends/tpm.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/testdev.o
CC chardev/wctablet.o
CC chardev/spice.o
CC disas/arm.o
CC disas/i386.o
CC fsdev/qemu-fsdev-dummy.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-opts.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/ich9.o
CC hw/acpi/pcihp.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/aml-build.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/ipmi.o
CC hw/acpi/ipmi-stub.o
CC hw/acpi/acpi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/hd-geometry.o
CC hw/block/cdrom.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/xen_disk.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/parallel.o
CC hw/char/serial.o
CC hw/char/pl011.o
CC hw/char/serial-isa.o
CC hw/char/virtio-console.o
CC hw/char/serial-pci.o
CC hw/char/xen_console.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/debugcon.o
CC hw/char/imx_serial.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/reset.o
CC hw/core/bus.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/qdev-properties-system.o
CC hw/core/or-irq.o
CC hw/core/register.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/xenfb.o
CC hw/display/vga-pci.o
CC hw/display/ssd0323.o
CC hw/display/vga-isa.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/qxl.o
CC hw/display/tc6393xb.o
CC hw/display/qxl-logger.o
CC hw/display/qxl-render.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i8257.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/zaurus.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/smbus.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/microdrive.o
CC hw/ide/ich.o
CC hw/ide/ahci.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/vmmouse.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/imx_avic.o
CC hw/intc/realview_gic.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/mem/pc-dimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/mem/nvdimm.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/pc-testdev.o
CC hw/misc/sga.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/arm11scu.o
CC hw/misc/a9scu.o
CC hw/net/xen_nic.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/xgmac.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/ftgmac100.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-host/pam.o
CC hw/pci-host/versatile.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/ssi-sd.o
CC hw/sd/pl181.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_passthrough.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/ccid-card-passthru.o
CC hw/usb/ccid-card-emulated.o
CC hw/usb/dev-mtp.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_aspeed.o
CC hw/xen/xen_backend.o
CC hw/xen/xen_devconfig.o
CC hw/xen/xen_pvdev.o
CC hw/xen/xen-common.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/colo-comm.o
CC migration/savevm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/rdma.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter-buffer.o
CC net/filter.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-input.o
CC replay/replay-time.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
/tmp/qemu-test/src/replay/replay-internal.c: In function 'replay_put_array':
/tmp/qemu-test/src/replay/replay-internal.c:65: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/sbuf.o
CC slirp/misc.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function 'tcp_input':
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_p' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_len' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_tos' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_id' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_off' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_ttl' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_sum' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_src.s_addr' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: 'save_ip.ip_dst.s_addr' may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: 'save_ip6.ip_nh' may be used uninitialized in this function
CC ui/input-linux.o
CC ui/spice-core.o
CC ui/spice-input.o
CC ui/spice-display.o
CC ui/sdl.o
CC ui/sdl_zoom.o
CC ui/x_keymap.o
CC ui/curses.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
VERT ui/shader/texture-blit-vert.h
FRAG ui/shader/texture-blit-frag.h
VERT ui/shader/texture-blit-flip-vert.h
CC ui/console-gl.o
CC ui/egl-helpers.o
CC ui/egl-context.o
CC ui/gtk-egl.o
CC chardev/char.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
LINK tests/qemu-iotests/socket_scm_helper
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
CC qemu-img.o
CC ui/shader.o
AS optionrom/multiboot.o
CC optionrom/linuxboot_dma.o
AS optionrom/linuxboot.o
AS optionrom/kvmvapic.o
cc: unrecognized option '-no-integrated-as'
cc: unrecognized option '-no-integrated-as'
BUILD optionrom/linuxboot_dma.img
BUILD optionrom/multiboot.img
BUILD optionrom/linuxboot.img
BUILD optionrom/linuxboot_dma.raw
BUILD optionrom/multiboot.raw
BUILD optionrom/linuxboot.raw
BUILD optionrom/kvmvapic.img
BUILD optionrom/kvmvapic.raw
SIGN optionrom/linuxboot.bin
SIGN optionrom/kvmvapic.bin
SIGN optionrom/multiboot.bin
SIGN optionrom/linuxboot_dma.bin
LINK qemu-ga
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-img
LINK qemu-io
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
In file included from /usr/include/gtk-2.0/gtk/gtk.h:235,
from /tmp/qemu-test/src/include/ui/gtk.h:10,
from /tmp/qemu-test/src/ui/gtk-egl.c:21:
/usr/include/gtk-2.0/gtk/gtkitemfactory.h:47: warning: function declaration isn't a prototype
In file included from /usr/include/gtk-2.0/gtk/gtk.h:235,
from /tmp/qemu-test/src/include/ui/gtk.h:10,
from /tmp/qemu-test/src/ui/gtk.c:43:
/usr/include/gtk-2.0/gtk/gtkitemfactory.h:47: warning: function declaration isn't a prototype
GEN x86_64-softmmu/hmp-commands.h
GEN x86_64-softmmu/hmp-commands-info.h
GEN x86_64-softmmu/config-target.h
GEN aarch64-softmmu/hmp-commands.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
CC x86_64-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/tcg/tcg.o
CC x86_64-softmmu/exec.o
CC x86_64-softmmu/tcg/optimize.o
CC x86_64-softmmu/tcg/tcg-common.o
CC x86_64-softmmu/disas.o
CC x86_64-softmmu/fpu/softfloat.o
CC aarch64-softmmu/exec.o
GEN x86_64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/arch_init.o
CC x86_64-softmmu/cpus.o
CC x86_64-softmmu/monitor.o
CC x86_64-softmmu/gdbstub.o
CC x86_64-softmmu/balloon.o
CC x86_64-softmmu/ioport.o
CC x86_64-softmmu/numa.o
CC x86_64-softmmu/qtest.o
CC x86_64-softmmu/memory.o
CC x86_64-softmmu/memory_mapping.o
CC x86_64-softmmu/dump.o
CC aarch64-softmmu/tcg/tcg.o
CC x86_64-softmmu/migration/ram.o
CC x86_64-softmmu/accel/accel.o
CC x86_64-softmmu/accel/kvm/kvm-all.o
CC x86_64-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/optimize.o
CC aarch64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/disas.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
GEN aarch64-softmmu/gdbstub-xml.c
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/arch_init.o
CC aarch64-softmmu/cpus.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/monitor.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/gdbstub.o
CC aarch64-softmmu/balloon.o
CC x86_64-softmmu/accel/tcg/translator.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/ioport.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/numa.o
CC aarch64-softmmu/qtest.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/memory.o
CC x86_64-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/memory_mapping.o
CC aarch64-softmmu/dump.o
CC x86_64-softmmu/hw/display/vga.o
CC aarch64-softmmu/migration/ram.o
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC x86_64-softmmu/hw/intc/apic.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/core/null-machine.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC x86_64-softmmu/hw/misc/vmport.o
CC aarch64-softmmu/hw/display/vga.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/hw/display/dpcd.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC x86_64-softmmu/hw/misc/hyperv_testdev.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC x86_64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC aarch64-softmmu/hw/misc/cbus.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC x86_64-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC x86_64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC x86_64-softmmu/hw/xen/xen-host-pci-device.o
CC x86_64-softmmu/hw/xen/xen_pt.o
CC x86_64-softmmu/hw/xen/xen_pt_config_init.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC x86_64-softmmu/hw/xen/xen_pt_graphics.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC x86_64-softmmu/hw/xen/xen_pt_msi.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/i386/pc.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
/tmp/qemu-test/src/hw/i386/pc_piix.c: In function 'igd_passthrough_isa_bridge_create':
/tmp/qemu-test/src/hw/i386/pc_piix.c:1072: warning: 'pch_rev_id' may be used uninitialized in this function
CC x86_64-softmmu/hw/i386/kvmvapic.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/hw/i386/pci-assign-load-rom.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC x86_64-softmmu/hw/i386/../xenpv/xen_machine_pv.o
CC x86_64-softmmu/hw/i386/kvm/clock.o
/tmp/qemu-test/src/hw/i386/acpi-build.c: In function 'build_append_pci_bus_devices':
/tmp/qemu-test/src/hw/i386/acpi-build.c:509: warning: 'notify_method' may be used uninitialized in this function
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/i386/kvm/apic.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/hw/i386/kvm/i8259.o
CC x86_64-softmmu/hw/i386/kvm/ioapic.o
CC x86_64-softmmu/hw/i386/kvm/i8254.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC x86_64-softmmu/hw/i386/kvm/pci-assign.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC x86_64-softmmu/hw/i386/xen/xen_platform.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC x86_64-softmmu/hw/i386/xen/xen_apic.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC x86_64-softmmu/hw/i386/xen/xen_pvdevice.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC x86_64-softmmu/hw/i386/xen/xen-hvm.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC x86_64-softmmu/hw/i386/xen/xen-mapcache.o
CC x86_64-softmmu/target/i386/helper.o
CC x86_64-softmmu/target/i386/cpu.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC x86_64-softmmu/target/i386/translate.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC aarch64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/vfio/pci.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/platform.o
CC x86_64-softmmu/target/i386/int_helper.o
CC x86_64-softmmu/target/i386/mem_helper.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC x86_64-softmmu/target/i386/machine.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC x86_64-softmmu/target/i386/monitor.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC x86_64-softmmu/target/i386/kvm.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC x86_64-softmmu/target/i386/hyperv.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/mainstone.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/spitz.o
CC x86_64-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC x86_64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/arm/z2.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/strongarm.o
LINK x86_64-softmmu/qemu-system-x86_64
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC aarch64-softmmu/gdbstub-xml.o
/tmp/qemu-test/src/target/arm/translate-a64.c: In function 'handle_shri_with_rndacc':
/tmp/qemu-test/src/target/arm/translate-a64.c:6390: warning: 'tcg_src_hi' may be used uninitialized in this function
/tmp/qemu-test/src/target/arm/translate-a64.c: In function 'disas_simd_scalar_two_reg_misc':
/tmp/qemu-test/src/target/arm/translate-a64.c:8117: warning: 'rmode' may be used uninitialized in this function
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64
mkdir -p dtc/libfdt
mkdir -p dtc/tests
TEST tests/qapi-schema/alternate-any.out
TEST tests/qapi-schema/alternate-clash.out
TEST tests/qapi-schema/alternate-array.out
TEST tests/qapi-schema/alternate-conflict-dict.out
TEST tests/qapi-schema/alternate-conflict-enum-bool.out
TEST tests/qapi-schema/alternate-base.out
TEST tests/qapi-schema/alternate-conflict-enum-int.out
TEST tests/qapi-schema/alternate-conflict-string.out
TEST tests/qapi-schema/alternate-conflict-bool-string.out
TEST tests/qapi-schema/alternate-conflict-num-string.out
TEST tests/qapi-schema/alternate-empty.out
TEST tests/qapi-schema/alternate-nested.out
TEST tests/qapi-schema/alternate-unknown.out
TEST tests/qapi-schema/args-alternate.out
TEST tests/qapi-schema/args-any.out
TEST tests/qapi-schema/args-array-empty.out
TEST tests/qapi-schema/args-array-unknown.out
TEST tests/qapi-schema/args-bad-boxed.out
TEST tests/qapi-schema/args-boxed-anon.out
TEST tests/qapi-schema/args-boxed-empty.out
TEST tests/qapi-schema/args-boxed-string.out
TEST tests/qapi-schema/args-int.out
TEST tests/qapi-schema/args-invalid.out
TEST tests/qapi-schema/args-member-array-bad.out
TEST tests/qapi-schema/args-member-case.out
TEST tests/qapi-schema/args-member-unknown.out
TEST tests/qapi-schema/args-name-clash.out
TEST tests/qapi-schema/args-union.out
TEST tests/qapi-schema/args-unknown.out
TEST tests/qapi-schema/bad-base.out
TEST tests/qapi-schema/bad-data.out
TEST tests/qapi-schema/bad-ident.out
TEST tests/qapi-schema/bad-type-bool.out
TEST tests/qapi-schema/bad-type-dict.out
TEST tests/qapi-schema/bad-type-int.out
TEST tests/qapi-schema/base-cycle-direct.out
TEST tests/qapi-schema/base-cycle-indirect.out
TEST tests/qapi-schema/command-int.out
TEST tests/qapi-schema/doc-bad-alternate-member.out
TEST tests/qapi-schema/doc-bad-command-arg.out
TEST tests/qapi-schema/comments.out
TEST tests/qapi-schema/doc-bad-symbol.out
TEST tests/qapi-schema/doc-bad-union-member.out
TEST tests/qapi-schema/doc-before-include.out
TEST tests/qapi-schema/doc-before-pragma.out
TEST tests/qapi-schema/doc-duplicated-arg.out
TEST tests/qapi-schema/doc-duplicated-return.out
TEST tests/qapi-schema/doc-duplicated-since.out
TEST tests/qapi-schema/doc-empty-section.out
TEST tests/qapi-schema/doc-empty-arg.out
TEST tests/qapi-schema/doc-empty-symbol.out
TEST tests/qapi-schema/doc-good.out
TEST tests/qapi-schema/doc-interleaved-section.out
TEST tests/qapi-schema/doc-invalid-end.out
TEST tests/qapi-schema/doc-invalid-end2.out
TEST tests/qapi-schema/doc-invalid-return.out
TEST tests/qapi-schema/doc-invalid-section.out
TEST tests/qapi-schema/doc-invalid-start.out
TEST tests/qapi-schema/doc-missing.out
TEST tests/qapi-schema/doc-missing-colon.out
TEST tests/qapi-schema/doc-missing-expr.out
TEST tests/qapi-schema/doc-missing-space.out
TEST tests/qapi-schema/doc-no-symbol.out
TEST tests/qapi-schema/double-data.out
TEST tests/qapi-schema/double-type.out
TEST tests/qapi-schema/duplicate-key.out
TEST tests/qapi-schema/empty.out
TEST tests/qapi-schema/enum-bad-name.out
TEST tests/qapi-schema/enum-bad-prefix.out
TEST tests/qapi-schema/enum-clash-member.out
TEST tests/qapi-schema/enum-dict-member.out
TEST tests/qapi-schema/enum-int-member.out
TEST tests/qapi-schema/enum-member-case.out
TEST tests/qapi-schema/enum-missing-data.out
TEST tests/qapi-schema/enum-wrong-data.out
TEST tests/qapi-schema/escape-outside-string.out
TEST tests/qapi-schema/escape-too-big.out
TEST tests/qapi-schema/escape-too-short.out
TEST tests/qapi-schema/event-boxed-empty.out
TEST tests/qapi-schema/event-case.out
TEST tests/qapi-schema/event-nest-struct.out
TEST tests/qapi-schema/flat-union-array-branch.out
TEST tests/qapi-schema/flat-union-bad-base.out
TEST tests/qapi-schema/flat-union-bad-discriminator.out
TEST tests/qapi-schema/flat-union-base-any.out
TEST tests/qapi-schema/flat-union-base-union.out
TEST tests/qapi-schema/flat-union-clash-member.out
TEST tests/qapi-schema/flat-union-empty.out
TEST tests/qapi-schema/flat-union-incomplete-branch.out
TEST tests/qapi-schema/flat-union-inline.out
TEST tests/qapi-schema/flat-union-int-branch.out
TEST tests/qapi-schema/flat-union-invalid-branch-key.out
TEST tests/qapi-schema/flat-union-invalid-discriminator.out
TEST tests/qapi-schema/flat-union-no-base.out
TEST tests/qapi-schema/flat-union-optional-discriminator.out
TEST tests/qapi-schema/flat-union-string-discriminator.out
TEST tests/qapi-schema/funny-char.out
TEST tests/qapi-schema/ident-with-escape.out
TEST tests/qapi-schema/include-cycle.out
TEST tests/qapi-schema/include-before-err.out
TEST tests/qapi-schema/include-extra-junk.out
TEST tests/qapi-schema/include-format-err.out
TEST tests/qapi-schema/include-nested-err.out
TEST tests/qapi-schema/include-no-file.out
TEST tests/qapi-schema/include-non-file.out
TEST tests/qapi-schema/include-relpath.out
TEST tests/qapi-schema/include-repetition.out
TEST tests/qapi-schema/include-self-cycle.out
TEST tests/qapi-schema/include-simple.out
TEST tests/qapi-schema/indented-expr.out
TEST tests/qapi-schema/leading-comma-object.out
TEST tests/qapi-schema/leading-comma-list.out
TEST tests/qapi-schema/missing-colon.out
TEST tests/qapi-schema/missing-comma-list.out
TEST tests/qapi-schema/missing-comma-object.out
TEST tests/qapi-schema/missing-type.out
TEST tests/qapi-schema/nested-struct-data.out
TEST tests/qapi-schema/non-objects.out
TEST tests/qapi-schema/pragma-doc-required-crap.out
TEST tests/qapi-schema/pragma-extra-junk.out
TEST tests/qapi-schema/pragma-name-case-whitelist-crap.out
TEST tests/qapi-schema/pragma-non-dict.out
TEST tests/qapi-schema/pragma-returns-whitelist-crap.out
TEST tests/qapi-schema/qapi-schema-test.out
TEST tests/qapi-schema/quoted-structural-chars.out
TEST tests/qapi-schema/redefined-builtin.out
TEST tests/qapi-schema/redefined-command.out
TEST tests/qapi-schema/redefined-event.out
TEST tests/qapi-schema/redefined-type.out
TEST tests/qapi-schema/reserved-command-q.out
TEST tests/qapi-schema/reserved-enum-q.out
TEST tests/qapi-schema/reserved-member-has.out
TEST tests/qapi-schema/reserved-member-q.out
TEST tests/qapi-schema/reserved-member-u.out
TEST tests/qapi-schema/reserved-member-underscore.out
TEST tests/qapi-schema/reserved-type-kind.out
TEST tests/qapi-schema/reserved-type-list.out
TEST tests/qapi-schema/returns-alternate.out
TEST tests/qapi-schema/returns-array-bad.out
TEST tests/qapi-schema/returns-dict.out
TEST tests/qapi-schema/returns-unknown.out
TEST tests/qapi-schema/returns-whitelist.out
TEST tests/qapi-schema/struct-base-clash-deep.out
TEST tests/qapi-schema/struct-base-clash.out
TEST tests/qapi-schema/struct-data-invalid.out
TEST tests/qapi-schema/struct-member-invalid.out
TEST tests/qapi-schema/trailing-comma-list.out
TEST tests/qapi-schema/trailing-comma-object.out
TEST tests/qapi-schema/type-bypass-bad-gen.out
TEST tests/qapi-schema/unclosed-list.out
TEST tests/qapi-schema/unclosed-object.out
TEST tests/qapi-schema/unclosed-string.out
TEST tests/qapi-schema/unicode-str.out
TEST tests/qapi-schema/union-base-empty.out
TEST tests/qapi-schema/union-base-no-discriminator.out
TEST tests/qapi-schema/union-branch-case.out
TEST tests/qapi-schema/union-clash-branches.out
TEST tests/qapi-schema/union-empty.out
TEST tests/qapi-schema/union-invalid-base.out
TEST tests/qapi-schema/union-optional-branch.out
TEST tests/qapi-schema/union-unknown.out
TEST tests/qapi-schema/unknown-escape.out
TEST tests/qapi-schema/unknown-expr-key.out
GEN tests/qapi-schema/doc-good.test.texi
CC tests/check-qdict.o
CC tests/test-char.o
CC tests/check-qstring.o
CC tests/check-qnum.o
CC tests/check-qlist.o
CC tests/check-qjson.o
CC tests/check-qnull.o
CC tests/check-qlit.o
CC tests/test-qobject-output-visitor.o
GEN tests/test-qapi-visit.c
GEN tests/test-qapi-types.c
GEN tests/test-qapi-event.c
GEN tests/test-qmp-introspect.c
CC tests/test-clone-visitor.o
CC tests/test-qobject-input-visitor.o
CC tests/test-qmp-commands.o
GEN tests/test-qmp-marshal.c
CC tests/test-string-input-visitor.o
CC tests/test-string-output-visitor.o
CC tests/test-qmp-event.o
CC tests/test-opts-visitor.o
CC tests/test-coroutine.o
CC tests/iothread.o
CC tests/test-visitor-serialization.o
CC tests/test-iov.o
CC tests/test-aio.o
CC tests/test-aio-multithread.o
CC tests/test-throttle.o
CC tests/test-thread-pool.o
CC tests/test-hbitmap.o
CC tests/test-blockjob.o
CC tests/test-blockjob-txn.o
CC tests/test-x86-cpuid.o
CC tests/test-xbzrle.o
CC tests/test-vmstate.o
CC tests/test-cutils.o
CC tests/test-shift128.o
CC tests/test-mul64.o
CC tests/test-int128.o
CC tests/rcutorture.o
CC tests/test-rcu-list.o
CC tests/test-qdist.o
CC tests/test-qht.o
CC tests/test-qht-par.o
/tmp/qemu-test/src/tests/test-int128.c:180: warning: '__noclone__' attribute directive ignored
CC tests/qht-bench.o
CC tests/test-bitops.o
CC tests/check-qom-interface.o
CC tests/test-bitcnt.o
CC tests/check-qom-proplist.o
CC tests/test-qemu-opts.o
CC tests/test-keyval.o
CC tests/test-write-threshold.o
CC tests/test-crypto-hash.o
CC tests/test-crypto-hmac.o
CC tests/test-crypto-cipher.o
CC tests/test-crypto-secret.o
CC tests/test-qga.o
CC tests/libqtest.o
CC tests/test-timed-average.o
CC tests/test-io-task.o
CC tests/test-io-channel-socket.o
CC tests/io-channel-helpers.o
CC tests/test-io-channel-command.o
CC tests/test-io-channel-file.o
CC tests/test-io-channel-buffer.o
CC tests/test-base64.o
CC tests/test-crypto-ivgen.o
CC tests/test-crypto-afsplit.o
CC tests/test-crypto-xts.o
CC tests/test-crypto-block.o
CC tests/test-logging.o
CC tests/test-replication.o
CC tests/test-bufferiszero.o
CC tests/test-uuid.o
CC tests/ptimer-test.o
CC tests/ptimer-test-stubs.o
CC tests/test-qapi-util.o
CC tests/vhost-user-test.o
CC tests/libqos/pci.o
CC tests/libqos/fw_cfg.o
CC tests/libqos/malloc.o
CC tests/libqos/i2c.o
CC tests/libqos/libqos.o
CC tests/libqos/malloc-spapr.o
CC tests/libqos/libqos-spapr.o
CC tests/libqos/rtas.o
CC tests/libqos/pci-spapr.o
CC tests/libqos/pci-pc.o
CC tests/libqos/malloc-pc.o
CC tests/libqos/libqos-pc.o
CC tests/libqos/ahci.o
CC tests/libqos/virtio.o
CC tests/libqos/virtio-pci.o
CC tests/libqos/virtio-mmio.o
CC tests/libqos/malloc-generic.o
CC tests/endianness-test.o
CC tests/fdc-test.o
CC tests/ide-test.o
CC tests/ahci-test.o
CC tests/hd-geo-test.o
CC tests/boot-order-test.o
CC tests/bios-tables-test.o
CC tests/boot-sector.o
CC tests/acpi-utils.o
CC tests/boot-serial-test.o
CC tests/pxe-test.o
CC tests/rtc-test.o
CC tests/ipmi-kcs-test.o
CC tests/ipmi-bt-test.o
CC tests/i440fx-test.o
CC tests/fw_cfg-test.o
CC tests/drive_del-test.o
CC tests/wdt_ib700-test.o
CC tests/tco-test.o
CC tests/e1000-test.o
CC tests/e1000e-test.o
CC tests/rtl8139-test.o
CC tests/pcnet-test.o
CC tests/eepro100-test.o
CC tests/ne2000-test.o
CC tests/nvme-test.o
CC tests/ac97-test.o
CC tests/es1370-test.o
CC tests/virtio-net-test.o
CC tests/virtio-balloon-test.o
CC tests/virtio-blk-test.o
CC tests/virtio-rng-test.o
CC tests/virtio-scsi-test.o
CC tests/virtio-serial-test.o
CC tests/virtio-console-test.o
CC tests/tpci200-test.o
CC tests/ipoctal232-test.o
CC tests/intel-hda-test.o
CC tests/display-vga-test.o
CC tests/ivshmem-test.o
CC tests/megasas-test.o
CC tests/vmxnet3-test.o
CC tests/pvpanic-test.o
CC tests/i82801b11-test.o
CC tests/ioh3420-test.o
CC tests/usb-hcd-ohci-test.o
CC tests/libqos/usb.o
CC tests/usb-hcd-uhci-test.o
CC tests/usb-hcd-ehci-test.o
CC tests/usb-hcd-xhci-test.o
CC tests/pc-cpu-test.o
CC tests/q35-test.o
CC tests/vmgenid-test.o
CC tests/test-netfilter.o
CC tests/test-filter-mirror.o
CC tests/test-filter-redirector.o
CC tests/postcopy-test.o
CC tests/test-x86-cpuid-compat.o
CC tests/numa-test.o
CC tests/qmp-test.o
CC tests/device-introspect-test.o
CC tests/qom-test.o
CC tests/test-hmp.o
LINK tests/check-qdict
LINK tests/test-char
LINK tests/check-qnum
LINK tests/check-qstring
LINK tests/check-qlist
LINK tests/check-qnull
LINK tests/check-qjson
LINK tests/check-qlit
CC tests/test-qapi-visit.o
CC tests/test-qapi-types.o
CC tests/test-qapi-event.o
CC tests/test-qmp-introspect.o
CC tests/test-qmp-marshal.o
LINK tests/test-coroutine
LINK tests/test-visitor-serialization
LINK tests/test-iov
LINK tests/test-aio
LINK tests/test-aio-multithread
LINK tests/test-throttle
LINK tests/test-thread-pool
LINK tests/test-hbitmap
LINK tests/test-blockjob
LINK tests/test-blockjob-txn
LINK tests/test-x86-cpuid
LINK tests/test-xbzrle
LINK tests/test-vmstate
LINK tests/test-cutils
LINK tests/test-shift128
LINK tests/test-int128
LINK tests/test-mul64
LINK tests/rcutorture
LINK tests/test-rcu-list
LINK tests/test-qdist
LINK tests/test-qht
LINK tests/qht-bench
LINK tests/test-bitops
LINK tests/test-bitcnt
LINK tests/check-qom-interface
LINK tests/check-qom-proplist
LINK tests/test-qemu-opts
LINK tests/test-keyval
LINK tests/test-write-threshold
LINK tests/test-crypto-hash
LINK tests/test-crypto-hmac
LINK tests/test-crypto-cipher
LINK tests/test-crypto-secret
LINK tests/test-qga
LINK tests/test-timed-average
LINK tests/test-io-task
LINK tests/test-io-channel-socket
LINK tests/test-io-channel-file
LINK tests/test-io-channel-command
LINK tests/test-io-channel-buffer
LINK tests/test-base64
LINK tests/test-crypto-ivgen
LINK tests/test-crypto-afsplit
LINK tests/test-crypto-xts
LINK tests/test-crypto-block
LINK tests/test-logging
LINK tests/test-replication
LINK tests/test-bufferiszero
LINK tests/test-uuid
LINK tests/ptimer-test
LINK tests/test-qapi-util
LINK tests/vhost-user-test
LINK tests/endianness-test
LINK tests/fdc-test
LINK tests/ide-test
LINK tests/ahci-test
LINK tests/hd-geo-test
LINK tests/boot-order-test
LINK tests/bios-tables-test
LINK tests/boot-serial-test
LINK tests/pxe-test
LINK tests/rtc-test
LINK tests/ipmi-kcs-test
LINK tests/ipmi-bt-test
LINK tests/i440fx-test
LINK tests/fw_cfg-test
LINK tests/drive_del-test
LINK tests/wdt_ib700-test
LINK tests/tco-test
LINK tests/e1000-test
LINK tests/e1000e-test
LINK tests/rtl8139-test
LINK tests/pcnet-test
LINK tests/eepro100-test
LINK tests/ne2000-test
LINK tests/nvme-test
LINK tests/ac97-test
LINK tests/es1370-test
LINK tests/virtio-net-test
LINK tests/virtio-balloon-test
LINK tests/virtio-blk-test
LINK tests/virtio-rng-test
LINK tests/virtio-scsi-test
LINK tests/virtio-serial-test
LINK tests/virtio-console-test
LINK tests/tpci200-test
LINK tests/ipoctal232-test
LINK tests/display-vga-test
LINK tests/intel-hda-test
LINK tests/ivshmem-test
LINK tests/megasas-test
LINK tests/vmxnet3-test
LINK tests/pvpanic-test
LINK tests/i82801b11-test
LINK tests/ioh3420-test
LINK tests/usb-hcd-ohci-test
LINK tests/usb-hcd-uhci-test
LINK tests/usb-hcd-ehci-test
LINK tests/usb-hcd-xhci-test
LINK tests/pc-cpu-test
LINK tests/q35-test
LINK tests/vmgenid-test
LINK tests/test-netfilter
LINK tests/test-filter-mirror
LINK tests/test-filter-redirector
LINK tests/postcopy-test
LINK tests/test-x86-cpuid-compat
LINK tests/numa-test
LINK tests/qmp-test
LINK tests/device-introspect-test
LINK tests/qom-test
LINK tests/test-hmp
GTESTER tests/check-qdict
GTESTER tests/test-char
GTESTER tests/check-qnum
GTESTER tests/check-qstring
GTESTER tests/check-qlist
GTESTER tests/check-qnull
GTESTER tests/check-qjson
GTESTER tests/check-qlit
LINK tests/test-qobject-output-visitor
LINK tests/test-clone-visitor
LINK tests/test-qobject-input-visitor
LINK tests/test-qmp-commands
LINK tests/test-string-input-visitor
LINK tests/test-string-output-visitor
LINK tests/test-qmp-event
LINK tests/test-opts-visitor
GTESTER tests/test-coroutine
GTESTER tests/test-visitor-serialization
GTESTER tests/test-iov
GTESTER tests/test-aio
GTESTER tests/test-aio-multithread
GTESTER tests/test-throttle
GTESTER tests/test-thread-pool
GTESTER tests/test-hbitmap
GTESTER tests/test-blockjob
GTESTER tests/test-x86-cpuid
GTESTER tests/test-blockjob-txn
GTESTER tests/test-xbzrle
GTESTER tests/test-vmstate
GTESTER tests/test-cutils
Failed to load simple/primitive:b_1
Failed to load simple/primitive:i64_2
Failed to load simple/primitive:i32_1
Failed to load simple/primitive:i32_1
Failed to load test/with_tmp:a
Failed to load test/tmp_child_parent:f
Failed to load test/tmp_child:parent
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
Failed to load test/tmp_child:diff
Failed to load test/with_tmp:tmp
GTESTER tests/test-shift128
GTESTER tests/test-mul64
GTESTER tests/test-int128
GTESTER tests/rcutorture
GTESTER tests/test-rcu-list
GTESTER tests/test-qdist
GTESTER tests/test-qht
LINK tests/test-qht-par
GTESTER tests/test-bitops
GTESTER tests/test-bitcnt
GTESTER tests/check-qom-interface
GTESTER tests/check-qom-proplist
GTESTER tests/test-qemu-opts
GTESTER tests/test-keyval
GTESTER tests/test-write-threshold
GTESTER tests/test-crypto-hash
GTESTER tests/test-crypto-hmac
GTESTER tests/test-crypto-cipher
GTESTER tests/test-crypto-secret
GTESTER tests/test-qga
GTESTER tests/test-timed-average
GTESTER tests/test-io-task
GTESTER tests/test-io-channel-socket
GTESTER tests/test-io-channel-file
GTESTER tests/test-io-channel-command
GTESTER tests/test-io-channel-buffer
GTESTER tests/test-base64
GTESTER tests/test-crypto-ivgen
GTESTER tests/test-crypto-afsplit
GTESTER tests/test-crypto-xts
GTESTER tests/test-crypto-block
GTESTER tests/test-logging
GTESTER tests/test-replication
**
ERROR:/tmp/qemu-test/src/tests/rcutorture.c:388:gtest_stress: assertion failed (n_mberror == 0): (1 == 0)
GTester: last random seed: R02Sf277a4366889473a6df3c7eadc312965
make: *** [check-tests/rcutorture] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "./tests/docker/docker.py", line 385, in <module>
sys.exit(main())
File "./tests/docker/docker.py", line 382, in main
return args.cmdobj.run(args, argv)
File "./tests/docker/docker.py", line 239, in run
return Docker().run(argv, args.keep, quiet=args.quiet)
File "./tests/docker/docker.py", line 207, in run
quiet=quiet)
File "./tests/docker/docker.py", line 125, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=4d7a272ebd2811e797c352540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-5starz_f/src/docker-src.2017-10-30-00.10.34.32148:/var/tmp/qemu:z,ro', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-5starz_f/src'
make: *** [tests/docker/Makefile.include:163: docker-run-test-quick@centos6] Error 2
real 3m14.312s
user 0m4.082s
sys 0m4.246s
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [RFC PATCH] vl: only display available accelerators
@ 2017-10-30 4:00 Philippe Mathieu-Daudé
2017-10-30 4:13 ` no-reply
2017-10-30 8:20 ` Eduardo Habkost
0 siblings, 2 replies; 19+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-10-30 4:00 UTC (permalink / raw)
To: Paolo Bonzini, Thomas Huth, Eduardo Habkost, Peter Xu,
Markus Armbruster, Stefano Stabellini, Anthony Perard
Cc: Philippe Mathieu-Daudé,
qemu-devel, Emilio G . Cota, Eric Blake, Richard Henderson
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
# qemu-system-x86_64 -accel xen
xencall: error: Could not obtain handle on privileged command interface: No such file or directory
xen be core: xen be core: can't open xen interface
can't open xen interface
qemu-system-x86_64: failed to initialize Xen: Operation not permitted
- after
$ qemu-system-x86_64 -accel help
Possible accelerators: kvm
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
RFC because:
- I don't think this is the nicest way, too much #ifdef'fery in main()
- I'm not sure the correct use of CONFIG_KVM_IS_POSSIBLE
- shouldn't CONFIG_XEN/CONFIG_HAX be as poisoned as CONFIG_KVM?
vl.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/vl.c b/vl.c
index ec299099ff..13fce86a6e 100644
--- a/vl.c
+++ b/vl.c
@@ -3883,7 +3883,20 @@ int main(int argc, char **argv, char **envp)
optarg, true);
optarg = qemu_opt_get(accel_opts, "accel");
if (!optarg || is_help_option(optarg)) {
- error_printf("Possible accelerators: kvm, xen, hax, tcg\n");
+ error_printf("Possible accelerators: ");
+#ifdef CONFIG_KVM_IS_POSSIBLE
+ error_printf("kvm ");
+#endif
+#ifdef CONFIG_XEN
+ error_printf("xen ");
+#endif
+#ifdef CONFIG_HAX
+ error_printf("hax ");
+#endif
+#ifdef CONFIG_TCG
+ error_printf("tcg ");
+#endif
+ error_printf("\n");
exit(0);
}
opts = qemu_opts_create(qemu_find_opts("machine"), NULL,
--
2.15.0.rc2
^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2017-11-08 19:42 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-30 18:14 [Qemu-devel] [RFC PATCH] vl: only display available accelerators Philippe Mathieu-Daudé
2017-10-30 18:18 ` Philippe Mathieu-Daudé
2017-11-03 0:35 ` Eduardo Habkost
2017-11-08 16:20 ` Philippe Mathieu-Daudé
2017-11-08 16:56 ` Eduardo Habkost
-- strict thread matches above, loose matches on Subject: below --
2017-10-30 4:00 Philippe Mathieu-Daudé
2017-10-30 4:13 ` no-reply
2017-10-30 8:20 ` Eduardo Habkost
2017-10-30 15:01 ` Philippe Mathieu-Daudé
2017-10-30 15:34 ` Peter Maydell
2017-11-08 13:28 ` Daniel P. Berrange
2017-11-08 16:21 ` Philippe Mathieu-Daudé
2017-11-08 16:59 ` Eduardo Habkost
2017-11-08 17:06 ` Daniel P. Berrange
2017-11-08 17:25 ` Eduardo Habkost
2017-11-08 17:28 ` Daniel P. Berrange
2017-11-08 18:03 ` Philippe Mathieu-Daudé
2017-11-08 18:35 ` Eduardo Habkost
2017-11-08 19:41 ` Philippe Mathieu-Daudé
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.