diff mbox series

[04/53] tests: acpi: q35: test for x2APIC entries in SRAT

Message ID 20210625091818.1047980-5-imammedo@redhat.com
State New
Headers show
Series acpi: refactor error prone build_header() and packed structures usage in ACPI tables | expand

Commit Message

Igor Mammedov June 25, 2021, 9:17 a.m. UTC
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>
---
v2:
  - switch to qtest_has_accel() API

CC: thuth@redhat.com
CC: lvivier@redhat.com
---
 tests/qtest/bios-tables-test.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

Comments

Michael S. Tsirkin July 2, 2021, 2:45 p.m. UTC | #1
On Fri, Jun 25, 2021 at 05:17:28AM -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>

Why don't we add a new test? Why change an existing one?
And I'd prefer kvm in the name since it's kvm specific.
E.g. kvmnumamem.


> ---
> v2:
>   - switch to qtest_has_accel() API
> 
> CC: thuth@redhat.com
> CC: lvivier@redhat.com
> ---
>  tests/qtest/bios-tables-test.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> index 51d3a4e239..ca496819fa 100644
> --- a/tests/qtest/bios-tables-test.c
> +++ b/tests/qtest/bios-tables-test.c
> @@ -1021,7 +1021,7 @@ static void test_acpi_piix4_tcg_nohpet(void)
>      free_test_data(&data);
>  }
>  
> -static void test_acpi_q35_tcg_numamem(void)
> +static void test_acpi_q35_kvm_numamem(void)
>  {
>      test_data data;
>  
> @@ -1029,7 +1029,9 @@ static void test_acpi_q35_tcg_numamem(void)
>      data.machine = MACHINE_Q35;
>      data.variant = ".numamem";
>      test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
> -                  " -numa node -numa node,memdev=ram0", &data);
> +                  " -numa node -numa node,memdev=ram0"
> +                  " -machine kernel-irqchip=on -smp 1,maxcpus=288"
> +                   , &data);
>      free_test_data(&data);
>  }
>  
> @@ -1506,6 +1508,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);
> @@ -1536,7 +1539,6 @@ int main(int argc, char *argv[])
>          qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
>          qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
>          qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
> -        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
>          qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
>          qtest_add_func("acpi/piix4/smm-compat",
>                         test_acpi_piix4_tcg_smm_compat);
> @@ -1561,6 +1563,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/numamem", test_acpi_q35_kvm_numamem);
> +        }
>      } 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
Igor Mammedov July 8, 2021, 9:18 a.m. UTC | #2
On Fri, 2 Jul 2021 10:45:37 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Fri, Jun 25, 2021 at 05:17:28AM -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>  
> 
> Why don't we add a new test? Why change an existing one?
> And I'd prefer kvm in the name since it's kvm specific.
> E.g. kvmnumamem.

I've opted for changing existing one as it practically
tests the same ACPI code in 'pc' variant, so changing
q35 'duplicate' variant to handle more than 255 cpus
seemed reasonable to me.

Anyways, I don't have any preferences here so I can
easily change that to a new testcase if you still
prefer it.

as for name, I'll amend it on test respin.
 
> 
> > ---
> > v2:
> >   - switch to qtest_has_accel() API
> > 
> > CC: thuth@redhat.com
> > CC: lvivier@redhat.com
> > ---
> >  tests/qtest/bios-tables-test.c | 11 ++++++++---
> >  1 file changed, 8 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> > index 51d3a4e239..ca496819fa 100644
> > --- a/tests/qtest/bios-tables-test.c
> > +++ b/tests/qtest/bios-tables-test.c
> > @@ -1021,7 +1021,7 @@ static void test_acpi_piix4_tcg_nohpet(void)
> >      free_test_data(&data);
> >  }
> >  
> > -static void test_acpi_q35_tcg_numamem(void)
> > +static void test_acpi_q35_kvm_numamem(void)
> >  {
> >      test_data data;
> >  
> > @@ -1029,7 +1029,9 @@ static void test_acpi_q35_tcg_numamem(void)
> >      data.machine = MACHINE_Q35;
> >      data.variant = ".numamem";
> >      test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
> > -                  " -numa node -numa node,memdev=ram0", &data);
> > +                  " -numa node -numa node,memdev=ram0"
> > +                  " -machine kernel-irqchip=on -smp 1,maxcpus=288"
> > +                   , &data);
> >      free_test_data(&data);
> >  }
> >  
> > @@ -1506,6 +1508,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);
> > @@ -1536,7 +1539,6 @@ int main(int argc, char *argv[])
> >          qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
> >          qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
> >          qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
> > -        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
> >          qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
> >          qtest_add_func("acpi/piix4/smm-compat",
> >                         test_acpi_piix4_tcg_smm_compat);
> > @@ -1561,6 +1563,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/numamem", test_acpi_q35_kvm_numamem);
> > +        }
> >      } 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  
>
Michael S. Tsirkin July 8, 2021, 11:59 a.m. UTC | #3
On Thu, Jul 08, 2021 at 11:18:33AM +0200, Igor Mammedov wrote:
> On Fri, 2 Jul 2021 10:45:37 -0400
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Fri, Jun 25, 2021 at 05:17:28AM -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>  
> > 
> > Why don't we add a new test? Why change an existing one?
> > And I'd prefer kvm in the name since it's kvm specific.
> > E.g. kvmnumamem.
> 
> I've opted for changing existing one as it practically
> tests the same ACPI code in 'pc' variant, so changing
> q35 'duplicate' variant to handle more than 255 cpus
> seemed reasonable to me.
> 
> Anyways, I don't have any preferences here so I can
> easily change that to a new testcase if you still
> prefer it.


the reason I do is because this way we don't drop the test on non
kvm hosts.
 
> as for name, I'll amend it on test respin.
>  
> > 
> > > ---
> > > v2:
> > >   - switch to qtest_has_accel() API
> > > 
> > > CC: thuth@redhat.com
> > > CC: lvivier@redhat.com
> > > ---
> > >  tests/qtest/bios-tables-test.c | 11 ++++++++---
> > >  1 file changed, 8 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> > > index 51d3a4e239..ca496819fa 100644
> > > --- a/tests/qtest/bios-tables-test.c
> > > +++ b/tests/qtest/bios-tables-test.c
> > > @@ -1021,7 +1021,7 @@ static void test_acpi_piix4_tcg_nohpet(void)
> > >      free_test_data(&data);
> > >  }
> > >  
> > > -static void test_acpi_q35_tcg_numamem(void)
> > > +static void test_acpi_q35_kvm_numamem(void)
> > >  {
> > >      test_data data;
> > >  
> > > @@ -1029,7 +1029,9 @@ static void test_acpi_q35_tcg_numamem(void)
> > >      data.machine = MACHINE_Q35;
> > >      data.variant = ".numamem";
> > >      test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
> > > -                  " -numa node -numa node,memdev=ram0", &data);
> > > +                  " -numa node -numa node,memdev=ram0"
> > > +                  " -machine kernel-irqchip=on -smp 1,maxcpus=288"
> > > +                   , &data);
> > >      free_test_data(&data);
> > >  }
> > >  
> > > @@ -1506,6 +1508,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);
> > > @@ -1536,7 +1539,6 @@ int main(int argc, char *argv[])
> > >          qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
> > >          qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
> > >          qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
> > > -        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
> > >          qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
> > >          qtest_add_func("acpi/piix4/smm-compat",
> > >                         test_acpi_piix4_tcg_smm_compat);
> > > @@ -1561,6 +1563,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/numamem", test_acpi_q35_kvm_numamem);
> > > +        }
> > >      } 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 mbox series

Patch

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 51d3a4e239..ca496819fa 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1021,7 +1021,7 @@  static void test_acpi_piix4_tcg_nohpet(void)
     free_test_data(&data);
 }
 
-static void test_acpi_q35_tcg_numamem(void)
+static void test_acpi_q35_kvm_numamem(void)
 {
     test_data data;
 
@@ -1029,7 +1029,9 @@  static void test_acpi_q35_tcg_numamem(void)
     data.machine = MACHINE_Q35;
     data.variant = ".numamem";
     test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M"
-                  " -numa node -numa node,memdev=ram0", &data);
+                  " -numa node -numa node,memdev=ram0"
+                  " -machine kernel-irqchip=on -smp 1,maxcpus=288"
+                   , &data);
     free_test_data(&data);
 }
 
@@ -1506,6 +1508,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);
@@ -1536,7 +1539,6 @@  int main(int argc, char *argv[])
         qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp);
         qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp);
         qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem);
-        qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem);
         qtest_add_func("acpi/piix4/nosmm", test_acpi_piix4_tcg_nosmm);
         qtest_add_func("acpi/piix4/smm-compat",
                        test_acpi_piix4_tcg_smm_compat);
@@ -1561,6 +1563,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/numamem", test_acpi_q35_kvm_numamem);
+        }
     } 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);