mbox series

[v3,0/6] qtests: Check accelerator available at runtime via QMP 'query-accels'

Message ID 20210415122633.4054644-1-philmd@redhat.com (mailing list archive)
Headers show
Series qtests: Check accelerator available at runtime via QMP 'query-accels' | expand

Message

Philippe Mathieu-Daudé April 15, 2021, 12:26 p.m. UTC
Hi,

This series aims at having accelerator-independent qtests
by querying a QEMU instance at runtime to check the list
of built-in accelerators.

First we add the 'query-accels' QMP command,
then we add the qtest_has_accel() method to libqtest,
finally we use this new method to allow running
bios-tables-test on KVM-only builds.

As a bonus we remove CONFIG_TCG in config_host, to avoid
building unnecessary objects depending on TCG.

Missing review:
- #4 qtest/qmp-cmd-test: Make test build-independent from accelerator
- #6 tests/meson: Only build softfloat objects if TCG is selected

Since v2:
- Addressed Eric & Paolo review comments

Since v1:
- kept over-engineered union (I don't how to do simple enum)
- dropped arm-cpu-features patches for now
- fixed typos (Eric)
- rename qtest_has_accel (Thomas)
- probe accel with machine none previous qtest (Paolo)
- iterate over QAPI enum (Markus)

Eric's suggestion of conditional QAPI didn't worked out,
as accelerator definitions are poisoned.

Please review,

Phil.

Philippe Mathieu-Daudé (6):
  accel: Introduce 'query-accels' QMP command
  tests/qtest: Add qtest_has_accel() method
  qtest/bios-tables-test: Make test build-independent from accelerator
  qtest/qmp-cmd-test: Make test build-independent from accelerator
  tests/qtest: Do not restrict bios-tables-test to Aarch64 hosts anymore
  tests/meson: Only build softfloat objects if TCG is selected

 meson.build                    |  1 -
 qapi/machine.json              | 49 +++++++++++++++++
 tests/qtest/libqos/libqtest.h  |  8 +++
 accel/accel-qmp.c              | 49 +++++++++++++++++
 tests/qtest/bios-tables-test.c | 99 ++++++++++++++++++----------------
 tests/qtest/libqtest.c         | 29 ++++++++++
 tests/qtest/qmp-cmd-test.c     | 18 +++++--
 accel/meson.build              |  2 +-
 tests/qtest/meson.build        |  3 +-
 9 files changed, 203 insertions(+), 55 deletions(-)
 create mode 100644 accel/accel-qmp.c

Comments

Claudio Fontana April 15, 2021, 12:30 p.m. UTC | #1
Hi Philippe,

does the tests/qtest/arm-cpu-features.c kvm_enabled() function need to be replaced by the use of this new command?

Maybe something to add to the series?

The use of "kvm_enabled()" in this function is particularly confused, because it matches the sysemu/kvm.h function name with completely different meaning.

Ciao,

CLaudio

On 4/15/21 2:26 PM, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> This series aims at having accelerator-independent qtests
> by querying a QEMU instance at runtime to check the list
> of built-in accelerators.
> 
> First we add the 'query-accels' QMP command,
> then we add the qtest_has_accel() method to libqtest,
> finally we use this new method to allow running
> bios-tables-test on KVM-only builds.
> 
> As a bonus we remove CONFIG_TCG in config_host, to avoid
> building unnecessary objects depending on TCG.
> 
> Missing review:
> - #4 qtest/qmp-cmd-test: Make test build-independent from accelerator
> - #6 tests/meson: Only build softfloat objects if TCG is selected
> 
> Since v2:
> - Addressed Eric & Paolo review comments
> 
> Since v1:
> - kept over-engineered union (I don't how to do simple enum)
> - dropped arm-cpu-features patches for now
> - fixed typos (Eric)
> - rename qtest_has_accel (Thomas)
> - probe accel with machine none previous qtest (Paolo)
> - iterate over QAPI enum (Markus)
> 
> Eric's suggestion of conditional QAPI didn't worked out,
> as accelerator definitions are poisoned.
> 
> Please review,
> 
> Phil.
> 
> Philippe Mathieu-Daudé (6):
>   accel: Introduce 'query-accels' QMP command
>   tests/qtest: Add qtest_has_accel() method
>   qtest/bios-tables-test: Make test build-independent from accelerator
>   qtest/qmp-cmd-test: Make test build-independent from accelerator
>   tests/qtest: Do not restrict bios-tables-test to Aarch64 hosts anymore
>   tests/meson: Only build softfloat objects if TCG is selected
> 
>  meson.build                    |  1 -
>  qapi/machine.json              | 49 +++++++++++++++++
>  tests/qtest/libqos/libqtest.h  |  8 +++
>  accel/accel-qmp.c              | 49 +++++++++++++++++
>  tests/qtest/bios-tables-test.c | 99 ++++++++++++++++++----------------
>  tests/qtest/libqtest.c         | 29 ++++++++++
>  tests/qtest/qmp-cmd-test.c     | 18 +++++--
>  accel/meson.build              |  2 +-
>  tests/qtest/meson.build        |  3 +-
>  9 files changed, 203 insertions(+), 55 deletions(-)
>  create mode 100644 accel/accel-qmp.c
>
Philippe Mathieu-Daudé April 15, 2021, 12:50 p.m. UTC | #2
On 4/15/21 2:30 PM, Claudio Fontana wrote:
> Hi Philippe,
> 
> does the tests/qtest/arm-cpu-features.c kvm_enabled() function need to be replaced by the use of this new command?
> 
> Maybe something to add to the series?
> 
> The use of "kvm_enabled()" in this function is particularly confused, because it matches the sysemu/kvm.h function name with completely different meaning.

Great idea, thanks!

> 
> Ciao,
> 
> CLaudio