On Mon, 18 Oct 2021 17:31:33 -0400 "Michael S. Tsirkin" <m...@redhat.com> wrote:
> On Thu, Sep 02, 2021 at 07:35:40AM -0400, Igor Mammedov wrote: > > Set -smp 1,maxcpus=288 to test for ACPI code that > > deal with CPUs with large APIC ID (>255). > > > > PS: > > Test requires KVM and in-kernel irqchip support, > > so skip test if KVM is not available. > > > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > --- > > v3: > > - add dedicated test instead of abusing 'numamem' one > > - add 'kvm' prefix to the test name > > ("Michael S. Tsirkin" <m...@redhat.com>) > > v2: > > - switch to qtest_has_accel() API > > > > CC: th...@redhat.com > > CC: lviv...@redhat.com > > --- > > tests/qtest/bios-tables-test.c | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > > index 51d3a4e239..1f6779da87 100644 > > --- a/tests/qtest/bios-tables-test.c > > +++ b/tests/qtest/bios-tables-test.c > > @@ -1033,6 +1033,19 @@ static void test_acpi_q35_tcg_numamem(void) > > free_test_data(&data); > > } > > > > +static void test_acpi_q35_kvm_xapic(void) > > +{ > > + test_data data; > > + > > + memset(&data, 0, sizeof(data)); > > + data.machine = MACHINE_Q35; > > + data.variant = ".xapic"; > > + test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M" > > + " -numa node -numa node,memdev=ram0" > > + " -machine kernel-irqchip=on -smp 1,maxcpus=288", &data); > > + free_test_data(&data); > > +} > > + > > static void test_acpi_q35_tcg_nosmm(void) > > { > > test_data data; > > > This causes an annoying message each time I run it: > > qemu-system-x86_64: -accel kvm: warning: Number of hotpluggable cpus > requested (288) exceeds the recommended cpus supported by KVM (240) > > what gives? it depends on kernel, see kvm_recommended_vcpus(). We probably should bump it on upstream kernel side (it's much more than that in RHEL8). Is there anything that prevents bumping upstream kernel limits? > > @@ -1506,6 +1519,7 @@ static void test_acpi_oem_fields_virt(void) > > int main(int argc, char *argv[]) > > { > > const char *arch = qtest_get_arch(); > > + const bool has_kvm = qtest_has_accel("kvm"); > > int ret; > > > > g_test_init(&argc, &argv, NULL); > > @@ -1561,6 +1575,9 @@ int main(int argc, char *argv[]) > > if (strcmp(arch, "x86_64") == 0) { > > qtest_add_func("acpi/microvm/pcie", > > test_acpi_microvm_pcie_tcg); > > } > > + if (has_kvm) { > > + qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); > > + } > > } else if (strcmp(arch, "aarch64") == 0) { > > qtest_add_func("acpi/virt", test_acpi_virt_tcg); > > qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); > > -- > > 2.27.0 >