[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 02/12] accel: Introduce 'query-accels' QMP command
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v7 02/12] accel: Introduce 'query-accels' QMP command |
Date: |
Fri, 21 May 2021 11:39:58 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 5/5/21 9:41 PM, Eduardo Habkost wrote:
> On Wed, May 05, 2021 at 02:57:56PM +0200, Philippe Mathieu-Daudé wrote:
>> Introduce the 'query-accels' QMP command which returns a list
>> of built-in accelerator names.
>>
>> - Accelerator is a QAPI enum of all existing accelerators,
>>
>> - AcceleratorInfo is a QAPI structure providing accelerator
>> specific information. Currently the common structure base
>> provides the name of the accelerator, while the specific
>> part is empty, but each accelerator can expand it.
>>
>> - 'query-accels' QMP command returns a list of @AcceleratorInfo
>>
>> For example on a KVM-only build we get:
>>
>> { "execute": "query-accels" }
>> {
>> "return": [
>> {
>> "name": "qtest"
>> },
>> {
>> "name": "kvm"
>> }
>> ]
>> }
>>
>> Note that we can't make the enum values or union branches conditional
>> because of target-specific poisoning of accelerator definitions.
>
> I assume this will be clarified in v8, based on your reply to v5.
> I don't understand what "target-specific poisoning of accelerator
> definitions" means.
$ git grep poison
...
include/exec/poison.h:88:#pragma GCC poison CONFIG_HAX
include/exec/poison.h:89:#pragma GCC poison CONFIG_HVF
include/exec/poison.h:90:#pragma GCC poison CONFIG_LINUX_USER
include/exec/poison.h:91:#pragma GCC poison CONFIG_KVM
include/exec/poison.h:92:#pragma GCC poison CONFIG_SOFTMMU
include/exec/poison.h:93:#pragma GCC poison CONFIG_WHPX
include/exec/poison.h:94:#pragma GCC poison CONFIG_XEN
I thought QAPI was target agnostic, but I just found:
if module.endswith('-target')
qapi_specific_outputs += qapi_module_outputs
specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: qapi_files[i])
So instead of adding this to qapi/machine.json I'll see
if I can add it to qapi/machine-target.json and use
conditionals.
- [PATCH v7 00/12] qtests: Check accelerator available at runtime via QMP 'query-accels', Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 03/12] qtest: Add qtest_has_accel() method, Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 01/12] MAINTAINERS: Add qtest/arm-cpu-features.c to ARM TCG CPUs section, Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 04/12] qtest/arm-cpu-features: Use generic qtest_has_accel() to check for KVM, Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 05/12] qtest/arm-cpu-features: Restrict sve_tests_sve_off_kvm test to KVM, Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 06/12] qtest/arm-cpu-features: Remove TCG fallback to KVM specific tests, Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 07/12] qtest/arm-cpu-features: Use generic qtest_has_accel() to check for TCG, Philippe Mathieu-Daudé, 2021/05/05
- [PATCH v7 08/12] qtest/migration-test: Skip tests if KVM not builtin on s390x/ppc64, Philippe Mathieu-Daudé, 2021/05/05