[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command |
Date: |
Tue, 16 Mar 2021 07:51:18 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Eric Blake <eblake@redhat.com> writes:
> On 3/11/21 5:11 PM, Philippe Mathieu-Daudé wrote:
[...]
>> diff --git a/accel/accel-qmp.c b/accel/accel-qmp.c
>> new file mode 100644
>> index 00000000000..f16e49b8956
>> --- /dev/null
>> +++ b/accel/accel-qmp.c
>> @@ -0,0 +1,47 @@
>> +/*
>> + * QEMU accelerators, QMP commands
>> + *
>> + * Copyright (c) 2021 Red Hat Inc.
>> + *
>> + * SPDX-License-Identifier: GPL-2.0-or-later
>> + */
>> +
>> +#include "qemu/osdep.h"
>> +#include "qapi/qapi-commands-machine.h"
>> +
>> +static const Accelerator accel_list[] = {
>> + ACCELERATOR_QTEST,
>> +#ifdef CONFIG_TCG
>> + ACCELERATOR_TCG,
>> +#endif
>> +#ifdef CONFIG_KVM
>> + ACCELERATOR_KVM,
>> +#endif
>
> ...would it be worth compiling the enum to only list enum values that
> were actually compiled in? That would change it to:
>
> { 'enum': 'Accelerator',
> 'data': [ 'qtest',
> { 'name': 'tcg', 'if': 'defined(CONFIG_TCG)' },
> ...
Makes introspection more useful. Management applications can get the
information the list of compiled-in accelerators from query-qmp-schema.
They don't have to be taught to use query-accels.
In fact, query-accels becomes useless except as a tool to force
visibility of Accelerator in query-qmp-schema. We wouldn't have to
force if we had CLI introspection that shows the type of -accel's
parameter @accel. Adding a query command is a common work-around for
our anemic CLI introspection capabilities.
The query command could be made more useful than introspection if it
reflected run time state, i.e. it showed an accelerator only when the
host system actually supports it. Can't say how practical that would
be.
>>
>> +AcceleratorInfoList *qmp_query_accels(Error **errp)
>> +{
>> + AcceleratorInfoList *list = NULL, **tail = &list;
>> +
>> + for (unsigned i = 0; i < ARRAY_SIZE(accel_list); i++) {
>> + AcceleratorInfo *info = g_new0(AcceleratorInfo, 1);
>> +
>> + info->name = accel_list[i];
>> +
>> + QAPI_LIST_APPEND(tail, info);
>> + }
>> +
>> + return list;
>> +}
You could then use something like
for (accel = 0; accel < ACCELERATOR__MAX; accel++) {
AcceleratorInfo *info = g_new0(AcceleratorInfo, 1);
info->name = Accelerator_str(accel);
QAPI_LIST_APPEND(tail, info);
}
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, (continued)
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Paolo Bonzini, 2021/03/12
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Andrew Jones, 2021/03/12
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Paolo Bonzini, 2021/03/12
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Claudio Fontana, 2021/03/12
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Paolo Bonzini, 2021/03/12
Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Eric Blake, 2021/03/15
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command,
Markus Armbruster <=
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Paolo Bonzini, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Philippe Mathieu-Daudé, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Philippe Mathieu-Daudé, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Markus Armbruster, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Philippe Mathieu-Daudé, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Markus Armbruster, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Thomas Huth, 2021/03/16
- Re: [PATCH 1/6] accel: Introduce 'query-accels' QMP command, Philippe Mathieu-Daudé, 2021/03/16
[PATCH 2/6] tests/qtest: Add qtest_probe_accel() method, Philippe Mathieu-Daudé, 2021/03/11