qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Zhao Liu <zhao1.liu@linux.intel.com>
To: "Michael S . Tsirkin" <mst@redhat.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Ani Sinha" <anisinha@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Yanan Wang" <wangyanan55@huawei.com>,
	qemu-devel@nongnu.org
Cc: Michael Tokarev <mjt@tls.msk.ru>,
	Zhenyu Wang <zhenyu.z.wang@intel.com>,
	Zhao Liu <zhao1.liu@intel.com>
Subject: [PATCH 15/16] tests: bios-tables-test: Add test for smbios type4 thread count2
Date: Fri, 25 Aug 2023 11:36:18 +0800	[thread overview]
Message-ID: <20230825033619.2075837-16-zhao1.liu@linux.intel.com> (raw)
In-Reply-To: <20230825033619.2075837-1-zhao1.liu@linux.intel.com>

From: Zhao Liu <zhao1.liu@intel.com>

This tests the commit 7298fd7de5551 ("hw/smbios: Fix thread count in
type4").

Add this test to cover 2 cases:
1. Test thread count2 field with multiple sockets and multiple dies to
   confirm this field could correctly calculate threads per sockets.

2. Confirm that field calculation could correctly recognize the
   difference between "-smp maxcpus" and "-smp cpus".

Suggested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
---
 tests/qtest/bios-tables-test.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 26474d376633..1b0c27e95d26 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -96,6 +96,7 @@ typedef struct {
     uint8_t smbios_core_count;
     uint16_t smbios_core_count2;
     uint8_t smbios_thread_count;
+    uint16_t smbios_thread_count2;
     uint8_t *required_struct_types;
     int required_struct_types_len;
     int type4_count;
@@ -644,6 +645,7 @@ static void smbios_cpu_test(test_data *data, uint32_t addr,
     uint8_t thread_count, expected_thread_count = data->smbios_thread_count;
     uint16_t speed, expected_speed[2];
     uint16_t core_count2, expected_core_count2 = data->smbios_core_count2;
+    uint16_t thread_count2, expected_thread_count2 = data->smbios_thread_count2;
     int offset[2];
     int i;
 
@@ -673,6 +675,8 @@ static void smbios_cpu_test(test_data *data, uint32_t addr,
     }
 
     if (ep_type == SMBIOS_ENTRY_POINT_TYPE_64) {
+        uint64_t thread_count2_addr;
+
         core_count2 = qtest_readw(data->qts,
                           addr + offsetof(struct smbios_type_4, core_count2));
 
@@ -680,6 +684,15 @@ static void smbios_cpu_test(test_data *data, uint32_t addr,
         if (expected_core_count == 0xFF && expected_core_count2) {
             g_assert_cmpuint(core_count2, ==, expected_core_count2);
         }
+
+        thread_count2_addr = addr +
+                             offsetof(struct smbios_type_4, thread_count2);
+        thread_count2 = qtest_readw(data->qts, thread_count2_addr);
+
+        /* Thread Count has reached its limit, checking Thread Count 2 */
+        if (expected_thread_count == 0xFF && expected_thread_count2) {
+            g_assert_cmpuint(thread_count2, ==, expected_thread_count2);
+        }
     }
 }
 
@@ -1050,6 +1063,7 @@ static void test_acpi_q35_tcg_thread_count(void)
         .required_struct_types = base_required_struct_types,
         .required_struct_types_len = ARRAY_SIZE(base_required_struct_types),
         .smbios_thread_count = 27,
+        .smbios_thread_count2 = 27,
     };
 
     test_acpi_one("-machine smbios-entry-point-type=64 "
@@ -1058,6 +1072,23 @@ static void test_acpi_q35_tcg_thread_count(void)
     free_test_data(&data);
 }
 
+static void test_acpi_q35_tcg_thread_count2(void)
+{
+    test_data data = {
+        .machine = MACHINE_Q35,
+        .variant = ".thread-count2",
+        .required_struct_types = base_required_struct_types,
+        .required_struct_types_len = ARRAY_SIZE(base_required_struct_types),
+        .smbios_thread_count = 0xFF,
+        .smbios_thread_count2 = 260,
+    };
+
+    test_acpi_one("-machine smbios-entry-point-type=64 "
+                  "-smp cpus=210,maxcpus=520,sockets=2,dies=2,cores=65,threads=2",
+                  &data);
+    free_test_data(&data);
+}
+
 static void test_acpi_q35_tcg_bridge(void)
 {
     test_data data = {};
@@ -2216,6 +2247,8 @@ int main(int argc, char *argv[])
                                test_acpi_q35_tcg_core_count2);
                 qtest_add_func("acpi/q35/thread-count",
                                test_acpi_q35_tcg_thread_count);
+                qtest_add_func("acpi/q35/thread-count2",
+                               test_acpi_q35_tcg_thread_count2);
             }
             qtest_add_func("acpi/q35/viot", test_acpi_q35_viot);
 #ifdef CONFIG_POSIX
-- 
2.34.1



  parent reply	other threads:[~2023-08-25  3:28 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-25  3:36 [PATCH 00/16] tests: Add CPU topology related smbios test cases Zhao Liu
2023-08-25  3:36 ` [PATCH 01/16] tests: test-smp-parse: Add the test for cores/threads per socket helpers Zhao Liu
2023-09-15 12:31   ` Igor Mammedov
2023-09-19  7:18     ` Zhao Liu
2023-08-25  3:36 ` [PATCH 02/16] tests: bios-tables-test: Prepare the ACPI table change for type4 count test Zhao Liu
2023-08-25  3:36 ` [PATCH 03/16] tests: bios-tables-test: Add test for smbios type4 count Zhao Liu
2023-09-15 12:54   ` Igor Mammedov
2023-09-19  7:20     ` Zhao Liu
2023-08-25  3:36 ` [PATCH 04/16] tests: bios-tables-test: Add ACPI table binaries for type4 count test Zhao Liu
2023-09-15 13:05   ` Igor Mammedov
2023-09-19  7:26     ` Zhao Liu
2023-08-25  3:36 ` [PATCH 05/16] tests: bios-tables-test: Prepare the ACPI table change for type4 core " Zhao Liu
2023-08-25  3:36 ` [PATCH 06/16] tests: bios-tables-test: Add test for smbios type4 core count Zhao Liu
2023-09-15 13:03   ` Igor Mammedov
2023-09-19  7:21     ` Zhao Liu
2023-08-25  3:36 ` [PATCH 07/16] tests: bios-tables-test: Add ACPI table binaries for type4 core count test Zhao Liu
2023-08-25  3:36 ` [PATCH 08/16] tests: bios-tables-test: Prepare the ACPI table change for type4 core count2 test Zhao Liu
2023-08-25  3:36 ` [PATCH 09/16] tests: bios-tables-test: Extend core count2 test to cover general topology Zhao Liu
2023-09-15 13:11   ` Igor Mammedov
2023-09-19  7:14     ` Zhao Liu
2023-08-25  3:36 ` [PATCH 10/16] tests: bios-tables-test: Update ACPI table binaries for core count2 test Zhao Liu
2023-08-25  3:36 ` [PATCH 11/16] tests: bios-tables-test: Prepare the ACPI table change for type4 thread count test Zhao Liu
2023-08-25  3:36 ` [PATCH 12/16] tests: bios-tables-test: Add test for smbios type4 thread count Zhao Liu
2023-09-15 13:19   ` Igor Mammedov
2023-09-19  7:13     ` Zhao Liu
2023-08-25  3:36 ` [PATCH 13/16] tests: bios-tables-test: Add ACPI table binaries for type4 thread count test Zhao Liu
2023-08-25  3:36 ` [PATCH 14/16] tests: bios-tables-test: Prepare the ACPI table change for type4 thread count2 test Zhao Liu
2023-08-25  3:36 ` Zhao Liu [this message]
2023-09-15 13:29   ` [PATCH 15/16] tests: bios-tables-test: Add test for smbios type4 thread count2 Igor Mammedov
2023-09-19  7:12     ` Zhao Liu
2023-09-19  8:01       ` Igor Mammedov
2023-08-25  3:36 ` [PATCH 16/16] tests: bios-tables-test: Add ACPI table binaries for type4 thread count2 test Zhao Liu
2023-09-01  9:55 ` [PATCH 00/16] tests: Add CPU topology related smbios test cases Michael Tokarev
2023-09-05  6:56   ` Zhao Liu
2023-09-15 13:48     ` Michael S. Tsirkin
2023-09-15 14:30       ` Igor Mammedov
2023-09-19  6:46         ` Zhao Liu
2023-09-06 14:40   ` Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230825033619.2075837-16-zhao1.liu@linux.intel.com \
    --to=zhao1.liu@linux.intel.com \
    --cc=anisinha@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=imammedo@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mjt@tls.msk.ru \
    --cc=mst@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=wangyanan55@huawei.com \
    --cc=zhao1.liu@intel.com \
    --cc=zhenyu.z.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).