[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 08/11] tests/qtest: Fix tests when no KVM or TCG are prese
From: |
Fabiano Rosas |
Subject: |
Re: [PATCH v8 08/11] tests/qtest: Fix tests when no KVM or TCG are present |
Date: |
Fri, 10 Mar 2023 14:05:26 -0300 |
Thomas Huth <thuth@redhat.com> writes:
> On 10/03/2023 16.37, Fabiano Rosas wrote:
>> Thomas Huth <thuth@redhat.com> writes:
>>
>>> On 10/03/2023 14.06, Fabiano Rosas wrote:
>>>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>>>>
>>>>> On Thu, Mar 09, 2023 at 05:14:31PM -0300, Fabiano Rosas wrote:
>>>>>> It is possible to have a build with both TCG and KVM disabled due to
>>>>>> Xen requiring the i386 and x86_64 binaries to be present in an aarch64
>>>>>> host.
>>>>>>
>>>>>> If we build with --disable-tcg on the aarch64 host, we will end-up
>>>>>> with a QEMU binary (x86) that does not support TCG nor KVM.
>>>>>>
>>>>>> Fix tests that crash or hang in the above scenario. Do not include any
>>>>>> test cases if TCG and KVM are missing.
>>>>>>
>>>>>> Make sure that calls to qtest_has_accel are placed after g_test_init
>>>>>> in similar fashion to commit ae4b01b349 ("tests: Ensure TAP version is
>>>>>> printed before other messages") to avoid TAP parsing errors.
>>>>>>
>>>>>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>>>>>> Reviewed-by: Juan Quintela <quintela@redhat.com>
>>>>>
>>>>> I don't like it that we are hard-coding the list of accelerators
>>>>> like this. Make a wrapper?
>>>>>
>>>>
>>>> Are you thinking of some sort of "has_any_accel" wrapper?
>>>
>>> I think in the long run, we want something like what I described here:
>>>
>>> https://lore.kernel.org/qemu-devel/ee0cad00-a6f3-f0c1-adf0-ba32329354f3@redhat.com/
>>>
>>
>> Wont't that function be too generic? The choice of accelerator is quite
>> specific to each individual test, some might not work with TCG, some
>> might not work with HVF and so on. There is no link between build-time
>> configuration and runtime test execution after all. We could always have
>> a build without an accelerator and then try to run a test that uses that
>> accelerator. And also have an accelerator present that the test does not
>> support at all.
>>
>>
>> For this particularly bizarre case of not having TCG nor KVM in the
>> build I'm inclined to go with Michael's suggestion of checking it at
>> build time and skipping all the hassle. This is what I'm preparing:
>>
>> diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
>> index 29a4efb4c2..e698cdcb60 100644
>> --- a/tests/qtest/meson.build
>> +++ b/tests/qtest/meson.build
>> @@ -27,6 +27,12 @@ if config_host.has_key('CONFIG_MODULES')
>> qtests_generic += [ 'modules-test' ]
>> endif
>>
>> +# For x86_64, i386 and aarch64 it is possible to have only Xen as an
>> +# accelerator. Some tests require either TCG or KVM, so make sure they
>> +# are present before building those tests.
>> +tcg_or_kvm_available = (config_all.has_key('CONFIG_TCG') or
>> + config_all.has_key('CONFIG_KVM'))
Ouch, this doesn't work because one of the binaries could still have KVM
support and we build the tests only once.
On an aarch64 host:
---disable-tcg --enable-kvm --enable-xen =>
qemu-system-aarch64 w/ Xen, KVM, no TCG
qemu-system-x86_64 w/ Xen, no KVM, no TCG
- [PATCH v8 04/11] target/arm: move cpu_tcg to tcg/cpu32.c, (continued)
- [PATCH v8 04/11] target/arm: move cpu_tcg to tcg/cpu32.c, Fabiano Rosas, 2023/03/09
- [PATCH v8 07/11] gitlab-ci: Check building KVM-only aarch64 target, Fabiano Rosas, 2023/03/09
- [PATCH v8 06/11] arm/Kconfig: Do not build TCG-only boards on a KVM-only build, Fabiano Rosas, 2023/03/09
- [PATCH v8 05/11] arm/Kconfig: Always select SEMIHOSTING when TCG is present, Fabiano Rosas, 2023/03/09
- [PATCH v8 08/11] tests/qtest: Fix tests when no KVM or TCG are present, Fabiano Rosas, 2023/03/09
Re: [PATCH v8 08/11] tests/qtest: Fix tests when no KVM or TCG are present, Michael S. Tsirkin, 2023/03/10
[PATCH v8 09/11] tests/avocado: Pass parameters to migration test, Fabiano Rosas, 2023/03/09
[PATCH v8 10/11] target/arm: gdbstub: Guard M-profile code with CONFIG_TCG, Fabiano Rosas, 2023/03/09
[PATCH v8 11/11] target/arm: gdbstub: Guard pauth code with CONFIG_TCG, Fabiano Rosas, 2023/03/09