On 05/02/19 16:51, Igor Mammedov wrote: > By default test cases were run with 'kvm:tcg' accelerators to speed up > tests execution. While it works for x86, were change of accelerator > doesn't affect ACPI tables, the approach doesn't works for ARM usecase > though. > > In arm/virt case, KVM mode requires using 'host' cpu model, which > isn't available in TCG mode. That could be worked around with 'max' > cpu model, which works both for KVM and TCG. However in KVM mode it > is necessary to specify matching GIC version, which also could use > 'max' value to automatically pick GIC version suitable for host's CPU. > Depending on host cpu type, different GIC versions would be used, > which in turn leads to different ACPI tables (APIC) generated. > As result while comparing with reference blobs, test would fail if > host's GIC version won't match the version on the host where > reference blobs where generated. > > Let's keep testing simple for now and allow ARM tests run in TCG only > mode. To do so introduce 'accel' parameter in test configuration, so > test case could override default "kvm:tcg" with accelerator of choice. > > Signed-off-by: Igor Mammedov <[email protected]> > --- > tests/bios-tables-test.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > index 8302ffc..39c1e24 100644 > --- a/tests/bios-tables-test.c > +++ b/tests/bios-tables-test.c > @@ -24,6 +24,7 @@ > #define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML" > > typedef struct { > + const char *accel; > const char *machine; > const char *variant; > const char *uefi_fl1; > @@ -532,8 +533,8 @@ static void test_acpi_one(const char *params, test_data > *data) > args = g_strdup_printf("-machine %s,accel=%s -nodefaults -nographic " > "-drive if=pflash,format=raw,file=%s,readonly " > "-drive if=pflash,format=raw,file=%s,snapshot=on -cdrom %s %s", > - data->machine, "kvm:tcg", data->uefi_fl1, data->uefi_fl2, > - data->cd, params ? params : ""); > + data->machine, data->accel ? data->accel : "kvm:tcg", > + data->uefi_fl1, data->uefi_fl2, data->cd, params ? params : ""); > > } else { > /* Disable kernel irqchip to be able to override apic irq0. */ > @@ -541,7 +542,8 @@ static void test_acpi_one(const char *params, test_data > *data) > "-net none -display none %s " > "-drive id=hd0,if=none,file=%s,format=raw " > "-device ide-hd,drive=hd0 ", > - data->machine, "kvm:tcg", params ? params : "", disk); > + data->machine, data->accel ? data->accel : "kvm:tcg", > + params ? params : "", disk); > } > > data->qts = qtest_init(args); >
Reviewed-by: Laszlo Ersek <[email protected]>
