Message ID | 20210902113551.461632-5-imammedo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests: acpi: add x2apic and various iommu tests | expand |
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 <imammedo@redhat.com> > --- > v3: > - add dedicated test instead of abusing 'numamem' one > - add 'kvm' prefix to the test name > ("Michael S. Tsirkin" <mst@redhat.com>) > v2: > - switch to qtest_has_accel() API > > CC: thuth@redhat.com > CC: lvivier@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? > @@ -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
On Mon, 18 Oct 2021 17:31:33 -0400 "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > --- > > v3: > > - add dedicated test instead of abusing 'numamem' one > > - add 'kvm' prefix to the test name > > ("Michael S. Tsirkin" <mst@redhat.com>) > > v2: > > - switch to qtest_has_accel() API > > > > CC: thuth@redhat.com > > CC: lvivier@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 >
On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > On Mon, 18 Oct 2021 17:31:33 -0400 > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > --- > > > v3: > > > - add dedicated test instead of abusing 'numamem' one > > > - add 'kvm' prefix to the test name > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > v2: > > > - switch to qtest_has_accel() API > > > > > > CC: thuth@redhat.com > > > CC: lvivier@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? what should we do with the annoying warning though? > > > @@ -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 > >
On Tue, 19 Oct 2021 06:23:40 -0400 "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > On Mon, 18 Oct 2021 17:31:33 -0400 > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > --- > > > > v3: > > > > - add dedicated test instead of abusing 'numamem' one > > > > - add 'kvm' prefix to the test name > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > v2: > > > > - switch to qtest_has_accel() API > > > > > > > > CC: thuth@redhat.com > > > > CC: lvivier@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? > > what should we do with the annoying warning though? I'd leave it alone. What do you suggest? > > > > @@ -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 > > > >
On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > On Tue, 19 Oct 2021 06:23:40 -0400 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > --- > > > > > v3: > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > - add 'kvm' prefix to the test name > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > v2: > > > > > - switch to qtest_has_accel() API > > > > > > > > > > CC: thuth@redhat.com > > > > > CC: lvivier@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? > > > > what should we do with the annoying warning though? > > I'd leave it alone. > What do you suggest? > reduce the value so a typical system does not trigger it? > > > > > @@ -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 > > > > > >
On Tue, 19 Oct 2021 07:44:38 -0400 "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > > On Tue, 19 Oct 2021 06:23:40 -0400 > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > > --- > > > > > > v3: > > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > > - add 'kvm' prefix to the test name > > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > > v2: > > > > > > - switch to qtest_has_accel() API > > > > > > > > > > > > CC: thuth@redhat.com > > > > > > CC: lvivier@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? > > > > > > what should we do with the annoying warning though? > > > > I'd leave it alone. > > What do you suggest? > > > > reduce the value so a typical system does not trigger it? it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic and 288 value additionally tests max 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 > > > > > > > > >
On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: > On Tue, 19 Oct 2021 07:44:38 -0400 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > > > On Tue, 19 Oct 2021 06:23:40 -0400 > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > > > --- > > > > > > > v3: > > > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > > > - add 'kvm' prefix to the test name > > > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > > > v2: > > > > > > > - switch to qtest_has_accel() API > > > > > > > > > > > > > > CC: thuth@redhat.com > > > > > > > CC: lvivier@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? > > > > > > > > what should we do with the annoying warning though? > > > > > > I'd leave it alone. > > > What do you suggest? > > > > > > > reduce the value so a typical system does not trigger it? > > it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic > and 288 value additionally tests max limits Add a flag to disable the warning while running this specific test? > > > > > > > > > @@ -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 > > > > > > > > > > > >
On Wed, 20 Oct 2021 04:18:07 -0400 "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: > > On Tue, 19 Oct 2021 07:44:38 -0400 > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > > > > On Tue, 19 Oct 2021 06:23:40 -0400 > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > > > > --- > > > > > > > > v3: > > > > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > > > > - add 'kvm' prefix to the test name > > > > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > > > > v2: > > > > > > > > - switch to qtest_has_accel() API > > > > > > > > > > > > > > > > CC: thuth@redhat.com > > > > > > > > CC: lvivier@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? > > > > > > > > > > what should we do with the annoying warning though? > > > > > > > > I'd leave it alone. > > > > What do you suggest? > > > > > > > > > > reduce the value so a typical system does not trigger it? > > > > it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic > > and 288 value additionally tests max limits > > Add a flag to disable the warning while running this specific test? if it were qtest accel, it would be trivial but I'm not aware of something similar for tcg/kvm mode. Do you suggest to add to QEMU a CLI option for that? > > > > > > > > > > > > @@ -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 > > > > > > > > > > > > > > > >
On 20/10/2021 10.53, Igor Mammedov wrote: > On Wed, 20 Oct 2021 04:18:07 -0400 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > >> On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: >>> On Tue, 19 Oct 2021 07:44:38 -0400 >>> "Michael S. Tsirkin" <mst@redhat.com> wrote: >>> >>>> On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: >>>>> On Tue, 19 Oct 2021 06:23:40 -0400 >>>>> "Michael S. Tsirkin" <mst@redhat.com> wrote: >>>>> >>>>>> On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: >>>>>>> On Mon, 18 Oct 2021 17:31:33 -0400 >>>>>>> "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> >>>>>>>>> --- >>>>>>>>> v3: >>>>>>>>> - add dedicated test instead of abusing 'numamem' one >>>>>>>>> - add 'kvm' prefix to the test name >>>>>>>>> ("Michael S. Tsirkin" <mst@redhat.com>) >>>>>>>>> v2: >>>>>>>>> - switch to qtest_has_accel() API >>>>>>>>> >>>>>>>>> CC: thuth@redhat.com >>>>>>>>> CC: lvivier@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? >>>>>> >>>>>> what should we do with the annoying warning though? >>>>> >>>>> I'd leave it alone. >>>>> What do you suggest? >>>>> >>>> >>>> reduce the value so a typical system does not trigger it? >>> >>> it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic >>> and 288 value additionally tests max limits >> >> Add a flag to disable the warning while running this specific test? > > if it were qtest accel, it would be trivial but > I'm not aware of something similar for tcg/kvm mode. > Do you suggest to add to QEMU a CLI option for that? I think you can still use qtest_enabled(), even if -accel kvm has been specified on top? Thomas
On Wed, 20 Oct 2021 10:58:55 +0200 Thomas Huth <thuth@redhat.com> wrote: > On 20/10/2021 10.53, Igor Mammedov wrote: > > On Wed, 20 Oct 2021 04:18:07 -0400 > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > >> On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: > >>> On Tue, 19 Oct 2021 07:44:38 -0400 > >>> "Michael S. Tsirkin" <mst@redhat.com> wrote: > >>> > >>>> On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > >>>>> On Tue, 19 Oct 2021 06:23:40 -0400 > >>>>> "Michael S. Tsirkin" <mst@redhat.com> wrote: > >>>>> > >>>>>> On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > >>>>>>> On Mon, 18 Oct 2021 17:31:33 -0400 > >>>>>>> "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > >>>>>>>>> --- > >>>>>>>>> v3: > >>>>>>>>> - add dedicated test instead of abusing 'numamem' one > >>>>>>>>> - add 'kvm' prefix to the test name > >>>>>>>>> ("Michael S. Tsirkin" <mst@redhat.com>) > >>>>>>>>> v2: > >>>>>>>>> - switch to qtest_has_accel() API > >>>>>>>>> > >>>>>>>>> CC: thuth@redhat.com > >>>>>>>>> CC: lvivier@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? > >>>>>> > >>>>>> what should we do with the annoying warning though? > >>>>> > >>>>> I'd leave it alone. > >>>>> What do you suggest? > >>>>> > >>>> > >>>> reduce the value so a typical system does not trigger it? > >>> > >>> it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic > >>> and 288 value additionally tests max limits > >> > >> Add a flag to disable the warning while running this specific test? > > > > if it were qtest accel, it would be trivial but > > I'm not aware of something similar for tcg/kvm mode. > > Do you suggest to add to QEMU a CLI option for that? > > I think you can still use qtest_enabled(), even if -accel kvm has been > specified on top? I don't see how accel/qtest/qtest.c: ac->allowed = &qtest_allowed; ... accel_init_machine(): *(acc->allowed) = true; > Thomas >
On Wed, Oct 20, 2021 at 10:53:48AM +0200, Igor Mammedov wrote: > On Wed, 20 Oct 2021 04:18:07 -0400 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: > > > On Tue, 19 Oct 2021 07:44:38 -0400 > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > > > > > On Tue, 19 Oct 2021 06:23:40 -0400 > > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > > > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > > > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > > > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > > > > > --- > > > > > > > > > v3: > > > > > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > > > > > - add 'kvm' prefix to the test name > > > > > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > > > > > v2: > > > > > > > > > - switch to qtest_has_accel() API > > > > > > > > > > > > > > > > > > CC: thuth@redhat.com > > > > > > > > > CC: lvivier@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? > > > > > > > > > > > > what should we do with the annoying warning though? > > > > > > > > > > I'd leave it alone. > > > > > What do you suggest? > > > > > > > > > > > > > reduce the value so a typical system does not trigger it? > > > > > > it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic > > > and 288 value additionally tests max limits > > > > Add a flag to disable the warning while running this specific test? > > if it were qtest accel, it would be trivial but > I'm not aware of something similar for tcg/kvm mode. > Do you suggest to add to QEMU a CLI option for that? Yea, like "x-kvm-dont-warn-about-recommended-cpu-limit". > > > > > > > > > > > > > > > > > @@ -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 > > > > > > > > > > > > > > > > > > > >
On Wed, 20 Oct 2021 05:46:40 -0400 "Michael S. Tsirkin" <mst@redhat.com> wrote: > On Wed, Oct 20, 2021 at 10:53:48AM +0200, Igor Mammedov wrote: > > On Wed, 20 Oct 2021 04:18:07 -0400 > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: > > > > On Tue, 19 Oct 2021 07:44:38 -0400 > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > > > On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > > > > > > On Tue, 19 Oct 2021 06:23:40 -0400 > > > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > > > > > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > > > > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > > > > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > > > > > > --- > > > > > > > > > > v3: > > > > > > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > > > > > > - add 'kvm' prefix to the test name > > > > > > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > > > > > > v2: > > > > > > > > > > - switch to qtest_has_accel() API > > > > > > > > > > > > > > > > > > > > CC: thuth@redhat.com > > > > > > > > > > CC: lvivier@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? > > > > > > > > > > > > > > what should we do with the annoying warning though? > > > > > > > > > > > > I'd leave it alone. > > > > > > What do you suggest? > > > > > > > > > > > > > > > > reduce the value so a typical system does not trigger it? > > > > > > > > it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic > > > > and 288 value additionally tests max limits > > > > > > Add a flag to disable the warning while running this specific test? > > > > if it were qtest accel, it would be trivial but > > I'm not aware of something similar for tcg/kvm mode. > > Do you suggest to add to QEMU a CLI option for that? > > Yea, like "x-kvm-dont-warn-about-recommended-cpu-limit". I'd make it more generic "x-used-with-qtest", but if we can get away without CLI option somehow, I'd prefer that. Maybe we can (ab)use some env var to detect that we are running under qtest? > > > > > > > > > > > > > > > > > > > > > > > > > @@ -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 > > > > > > > > > > > > > > > > > > > > > > > > >
On Wed, Oct 20, 2021 at 12:01:49PM +0200, Igor Mammedov wrote: > On Wed, 20 Oct 2021 05:46:40 -0400 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > On Wed, Oct 20, 2021 at 10:53:48AM +0200, Igor Mammedov wrote: > > > On Wed, 20 Oct 2021 04:18:07 -0400 > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > On Wed, Oct 20, 2021 at 10:16:07AM +0200, Igor Mammedov wrote: > > > > > On Tue, 19 Oct 2021 07:44:38 -0400 > > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > > > > > On Tue, Oct 19, 2021 at 01:36:24PM +0200, Igor Mammedov wrote: > > > > > > > On Tue, 19 Oct 2021 06:23:40 -0400 > > > > > > > "Michael S. Tsirkin" <mst@redhat.com> wrote: > > > > > > > > > > > > > > > On Tue, Oct 19, 2021 at 11:48:25AM +0200, Igor Mammedov wrote: > > > > > > > > > On Mon, 18 Oct 2021 17:31:33 -0400 > > > > > > > > > "Michael S. Tsirkin" <mst@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 <imammedo@redhat.com> > > > > > > > > > > > --- > > > > > > > > > > > v3: > > > > > > > > > > > - add dedicated test instead of abusing 'numamem' one > > > > > > > > > > > - add 'kvm' prefix to the test name > > > > > > > > > > > ("Michael S. Tsirkin" <mst@redhat.com>) > > > > > > > > > > > v2: > > > > > > > > > > > - switch to qtest_has_accel() API > > > > > > > > > > > > > > > > > > > > > > CC: thuth@redhat.com > > > > > > > > > > > CC: lvivier@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? > > > > > > > > > > > > > > > > what should we do with the annoying warning though? > > > > > > > > > > > > > > I'd leave it alone. > > > > > > > What do you suggest? > > > > > > > > > > > > > > > > > > > reduce the value so a typical system does not trigger it? > > > > > > > > > > it won't work, test needs as minimum 255 vcpus to trigger X2APIC logic > > > > > and 288 value additionally tests max limits > > > > > > > > Add a flag to disable the warning while running this specific test? > > > > > > if it were qtest accel, it would be trivial but > > > I'm not aware of something similar for tcg/kvm mode. > > > Do you suggest to add to QEMU a CLI option for that? > > > > Yea, like "x-kvm-dont-warn-about-recommended-cpu-limit". > > I'd make it more generic "x-used-with-qtest", > but if we can get away without CLI option somehow, > I'd prefer that. Maybe we can (ab)use some env var > to detect that we are running under qtest? Ugh. An option is way cleaner. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > @@ -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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
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; @@ -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);
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 <imammedo@redhat.com> --- v3: - add dedicated test instead of abusing 'numamem' one - add 'kvm' prefix to the test name ("Michael S. Tsirkin" <mst@redhat.com>) v2: - switch to qtest_has_accel() API CC: thuth@redhat.com CC: lvivier@redhat.com --- tests/qtest/bios-tables-test.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)