[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC v11 30/55] target/arm: wrap call to aarch64_sve_change_el in tc
From: |
Alex Bennée |
Subject: |
Re: [RFC v11 30/55] target/arm: wrap call to aarch64_sve_change_el in tcg_enabled() |
Date: |
Wed, 24 Mar 2021 11:41:32 +0000 |
User-agent: |
mu4e 1.5.11; emacs 28.0.50 |
Claudio Fontana <cfontana@suse.de> writes:
> On 3/23/21 11:50 PM, Alex Bennée wrote:
>>
>> Claudio Fontana <cfontana@suse.de> writes:
>>
>>> After this patch it is possible to build only kvm:
>>>
>>> ./configure --disable-tcg --enable-kvm
>
>
> It's possible to build, but tests will fail until all the test-related
> patches are applied.
So I think there has to be a change in ordering in the series so we
don't have differing failure modes as we enable. I'm not sure if that
means all tests need to be fixed before the first "--disable-tcg builds"
patch but I would expect at least a basic:
qemu-system-aarch64 -M virt,gic=host -cpu host -accel kvm -m 2048 -net none
-nographic -kernel ~/lsrc/linux.git/builds/arm64.virt/arch/arm64/boot/Image
-append "panic=-1"
--no-reboot
works - so at least we can track if any of the additional changes cause
regressions.
>>
>> FWIW at this point we get a different failure than later on:
>>
>> 21:10:25 [alex@aarch64-new:~/l/q/b/disable.tcg] (94e2abe0…)|… + make
>> check-qtest
>> GIT ui/keycodemapdb tests/fp/berkeley-testfloat-3
>> tests/fp/berkeley-softfloat-3 meson dtc capstone slirp
>> [1/19] Generating qemu-version.h with a meson_exe.py custom command
>> Running test qtest-aarch64/qom-test
>> qemu-system-aarch64: missing interface 'idau-interface' for object
>> 'machine'
>
> This one is broken by a recent commit in QEMU mainline, by removing the idau
> interface from KVM cpus.
>
> This is fixed by: Revert "target/arm: Restrict v8M IDAU to TCG" in the
> series.
The proper fix is probably to move the mps2tz machine type that brings
this in to TCG only.
Moving up the build chain to the revert I now get:
./qemu-system-aarch64 -M virt,gic=host -cpu host -accel kvm -m 2048 -net none
-nographic -kernel ~/lsrc/linux.git/builds/arm64.virt/arch/arm64/boot/Image
-append "panic=-1"
--no-reboot
qemu-system-aarch64: Property 'virt-6.0-machine.gic' not found
>
>> socket_accept failed: Resource temporarily unavailable
>> **
>> ERROR:../../tests/qtest/libqtest.c:319:qtest_init_without_qmp_handshake:
>> assertion failed: (s->fd >= 0 && s->qmp_fd >= 0)
>> ERROR qtest-aarch64/qom-test - Bail out!
>> ERROR:../../tests/qtest/libqtest.c:319:qtest_init_without_qmp_handshake:
>> assertion failed: (s->fd >= 0 && s->qmp_fd >= 0)
>> make: *** [Makefile.mtest:24: run-test-1] Error 1
>>
>>
>>>
>>> Signed-off-by: Claudio Fontana <cfontana@suse.de>
>>> ---
>>> target/arm/cpu-sysemu.c | 12 +++++++-----
>>> 1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/target/arm/cpu-sysemu.c b/target/arm/cpu-sysemu.c
>>> index eb928832a9..05d6e79ad9 100644
>>> --- a/target/arm/cpu-sysemu.c
>>> +++ b/target/arm/cpu-sysemu.c
>>> @@ -820,11 +820,13 @@ static void arm_cpu_do_interrupt_aarch64(CPUState *cs)
>>> unsigned int cur_el = arm_current_el(env);
>>> int rt;
>>>
>>> - /*
>>> - * Note that new_el can never be 0. If cur_el is 0, then
>>> - * el0_a64 is is_a64(), else el0_a64 is ignored.
>>> - */
>>> - aarch64_sve_change_el(env, cur_el, new_el, is_a64(env));
>>> + if (tcg_enabled()) {
>>> + /*
>>> + * Note that new_el can never be 0. If cur_el is 0, then
>>> + * el0_a64 is is_a64(), else el0_a64 is ignored.
>>> + */
>>> + aarch64_sve_change_el(env, cur_el, new_el, is_a64(env));
>>> + }
>>>
>>> if (cur_el < new_el) {
>>> /* Entry vector offset depends on whether the implemented EL
>>
>>
--
Alex Bennée
- [RFC v11 24/55] target/arm: move arm_cpu_list to common_cpu, (continued)
- [RFC v11 24/55] target/arm: move arm_cpu_list to common_cpu, Claudio Fontana, 2021/03/23
- [RFC v11 22/55] target/arm: move sve_zcr_len_for_el to common_cpu, Claudio Fontana, 2021/03/23
- [RFC v11 25/55] target/arm: move aarch64_sync_32_to_64 (and vv) to cpu code, Claudio Fontana, 2021/03/23
- [RFC v11 26/55] target/arm: split a15 cpu model and 32bit class functions to cpu32.c, Claudio Fontana, 2021/03/23
- [RFC v11 30/55] target/arm: wrap call to aarch64_sve_change_el in tcg_enabled(), Claudio Fontana, 2021/03/23
Re: [RFC v11 30/55] target/arm: wrap call to aarch64_sve_change_el in tcg_enabled(), Richard Henderson, 2021/03/24
[RFC v11 29/55] target/arm: cpu: fix style, Claudio Fontana, 2021/03/23
[RFC v11 27/55] target/arm: move sve_exception_el out of TCG helpers, Claudio Fontana, 2021/03/23
[RFC v11 35/55] tests/qtest: skip bios-tables-test test_acpi_oem_fields_virt for KVM, Claudio Fontana, 2021/03/23
[RFC v11 31/55] target/arm: remove kvm include file for PSCI and arm-powerctl, Claudio Fontana, 2021/03/23