qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Zhao Liu <zhao1.liu@intel.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Ani Sinha <anisinha@redhat.com>
Subject: [PULL v2 19/78] tests: bios-tables-test: Add test for smbios type4 thread count
Date: Thu, 19 Oct 2023 14:22:01 -0400	[thread overview]
Message-ID: <353a6a8e25f01a2c876780662c43a107f94db76e.1697739629.git.mst@redhat.com> (raw)
In-Reply-To: <cover.1697739629.git.mst@redhat.com>

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

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

In smbios_build_type_4_table() (hw/smbios/smbios.c), if the number of
threads in the socket is not more than 255, then smbios type4 table
encodes threads per socket into the thread count field.

So for the topology in this case, there're the following considerations:
1. threads per socket should be not more than 255 to ensure we could
   cover the thread count field.
2. The original bug was that threads per socket was miscalculated, so
   now we should configure as many topology levels as possible (mutiple
   sockets & dies, no module since x86 hasn't supported it) to cover
   more general topology scenarios, to ensure that the threads per
   socket encoded in the thread count field is correct.
3. For the more general topology, we should also add "cpus" (presented
   threads for machine) and "maxcpus" (total threads for machine) to
   make sure that configuring unpluged CPUs in smp (cpus < maxcpus)
   does not affect the correctness of threads per socket for thread
   count field.

Based on these considerations, select the topology as the follow:

-smp cpus=15,maxcpus=54,sockets=2,dies=3,cores=3,threads=3

The expected thread count = threads per socket = threads (3) * cores (3)
* dies (3) = 27.

Suggested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20230928125943.1816922-13-zhao1.liu@linux.intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index f3af20cf2c..395ed7f9ff 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -95,6 +95,7 @@ typedef struct {
     uint16_t smbios_cpu_curr_speed;
     uint8_t smbios_core_count;
     uint16_t smbios_core_count2;
+    uint8_t smbios_thread_count;
     uint8_t *required_struct_types;
     int required_struct_types_len;
     int type4_count;
@@ -640,6 +641,7 @@ static void smbios_cpu_test(test_data *data, uint32_t addr,
                             SmbiosEntryPointType ep_type)
 {
     uint8_t core_count, expected_core_count = data->smbios_core_count;
+    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;
     int offset[2];
@@ -663,6 +665,13 @@ static void smbios_cpu_test(test_data *data, uint32_t addr,
         g_assert_cmpuint(core_count, ==, expected_core_count);
     }
 
+    thread_count = qtest_readb(data->qts,
+                       addr + offsetof(struct smbios_type_4, thread_count));
+
+    if (expected_thread_count) {
+        g_assert_cmpuint(thread_count, ==, expected_thread_count);
+    }
+
     if (ep_type == SMBIOS_ENTRY_POINT_TYPE_64) {
         core_count2 = qtest_readw(data->qts,
                           addr + offsetof(struct smbios_type_4, core_count2));
@@ -1033,6 +1042,22 @@ static void test_acpi_q35_tcg_core_count2(void)
     free_test_data(&data);
 }
 
+static void test_acpi_q35_tcg_thread_count(void)
+{
+    test_data data = {
+        .machine = MACHINE_Q35,
+        .variant = ".thread-count",
+        .required_struct_types = base_required_struct_types,
+        .required_struct_types_len = ARRAY_SIZE(base_required_struct_types),
+        .smbios_thread_count = 27,
+    };
+
+    test_acpi_one("-machine smbios-entry-point-type=64 "
+                  "-smp cpus=15,maxcpus=54,sockets=2,dies=3,cores=3,threads=3",
+                  &data);
+    free_test_data(&data);
+}
+
 static void test_acpi_q35_tcg_bridge(void)
 {
     test_data data = {};
@@ -2201,6 +2226,8 @@ int main(int argc, char *argv[])
                                test_acpi_q35_tcg_core_count);
                 qtest_add_func("acpi/q35/core-count2",
                                test_acpi_q35_tcg_core_count2);
+                qtest_add_func("acpi/q35/thread-count",
+                               test_acpi_q35_tcg_thread_count);
             }
             if (qtest_has_device("virtio-iommu-pci")) {
                 qtest_add_func("acpi/q35/viot", test_acpi_q35_viot);
-- 
MST



  parent reply	other threads:[~2023-10-19 18:34 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-19 18:24 [PULL v2 00/78] virtio,pc,pci: features, cleanups Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 01/78] vdpa: Use iovec for vhost_vdpa_net_cvq_add() Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 02/78] vdpa: Avoid using vhost_vdpa_net_load_*() outside vhost_vdpa_net_load() Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 03/78] vdpa: Check device ack in vhost_vdpa_net_load_rx_mode() Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 04/78] vdpa: Move vhost_svq_poll() to the caller of vhost_vdpa_net_cvq_add() Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 05/78] vdpa: Introduce cursors to vhost_vdpa_net_loadx() Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 06/78] vhost: Expose vhost_svq_available_slots() Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 07/78] vdpa: Send cvq state load commands in parallel Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 08/78] tests: test-smp-parse: Add the test for cores/threads per socket helpers Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 09/78] tests: bios-tables-test: Prepare the ACPI table change for smbios type4 count test Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 10/78] tests: bios-tables-test: Add test for smbios type4 count Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 11/78] tests: bios-tables-test: Add ACPI table binaries for smbios type4 count test Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 12/78] tests: bios-tables-test: Prepare the ACPI table change for smbios type4 core " Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 13/78] tests: bios-tables-test: Add test for smbios type4 core count Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 14/78] tests: bios-tables-test: Add ACPI table binaries for smbios type4 core count test Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 15/78] tests: bios-tables-test: Prepare the ACPI table change for smbios type4 core count2 test Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 16/78] tests: bios-tables-test: Extend smbios core count2 test to cover general topology Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 17/78] tests: bios-tables-test: Update ACPI table binaries for smbios core count2 test Michael S. Tsirkin
2023-10-19 18:21 ` [PULL v2 18/78] tests: bios-tables-test: Prepare the ACPI table change for smbios type4 thread count test Michael S. Tsirkin
2023-10-19 18:22 ` Michael S. Tsirkin [this message]
2023-10-19 18:22 ` [PULL v2 20/78] tests: bios-tables-test: Add ACPI table binaries " Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 21/78] tests: bios-tables-test: Prepare the ACPI table change for smbios type4 thread count2 test Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 22/78] tests: bios-tables-test: Add test for smbios type4 thread count2 Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 23/78] tests: bios-tables-test: Add ACPI table binaries for smbios type4 thread count2 test Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 24/78] vhost-user: strip superfluous whitespace Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 25/78] vhost-user: tighten "reply_supported" scope in "set_vring_addr" Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 26/78] vhost-user: factor out "vhost_user_write_sync" Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 27/78] vhost-user: flatten "enforce_reply" into "vhost_user_write_sync" Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 28/78] vhost-user: hoist "write_sync", "get_features", "get_u64" Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 29/78] vhost-user: allow "vhost_set_vring" to wait for a reply Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 30/78] vhost-user: call VHOST_USER_SET_VRING_ENABLE synchronously Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 31/78] memory: initialize 'fv' in MemoryRegionCache to make Coverity happy Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 32/78] vhost-user: do not send RESET_OWNER on device reset Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 33/78] vhost-backend: remove vhost_kernel_reset_device() Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 34/78] virtio: call ->vhost_reset_device() during reset Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 35/78] hw/i386/acpi-build: Remove build-time assertion on PIIX/ICH9 reset registers being identical Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 36/78] timer/i8254: Fix one shot PIT mode Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 37/78] hw/display: fix memleak from virtio_add_resource Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 38/78] hw/i386/pc: Merge two if statements into one Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 39/78] hw/i386/pc_piix: Allow for setting properties before realizing PIIX3 south bridge Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 40/78] hw/i386/pc_piix: Assign PIIX3's ISA interrupts before its realize() Michael S. Tsirkin
2023-10-19 18:22 ` [PULL v2 41/78] hw/isa/piix3: Resolve redundant PIIX_NUM_PIC_IRQS Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 42/78] hw/i386/pc_piix: Wire PIIX3's ISA interrupts by new "isa-irqs" property Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 43/78] hw/i386/pc_piix: Remove redundant "piix3" variable Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 44/78] hw/isa/piix3: Rename "pic" attribute to "isa_irqs_in" Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 45/78] hw/i386/pc_q35: Wire ICH9 LPC function's interrupts before its realize() Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 46/78] hw/isa/piix3: Wire PIC IRQs to ISA bus in host device Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 47/78] hw/i386/pc: Wire RTC ISA IRQs in south bridges Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 48/78] hw/isa/piix3: Create IDE controller in host device Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 49/78] hw/isa/piix3: Create USB " Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 50/78] hw/isa/piix3: Create power management " Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 51/78] hw/isa/piix3: Drop the "3" from PIIX base class name Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 52/78] hw/isa/piix4: Remove unused inbound ISA interrupt lines Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 53/78] hw/isa/piix4: Rename "isa" attribute to "isa_irqs_in" Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 54/78] hw/isa/piix4: Rename reset control operations to match PIIX3 Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 55/78] hw/isa/piix4: Reuse struct PIIXState from PIIX3 Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 56/78] hw/isa/piix3: Merge hw/isa/piix4.c Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 57/78] hw/isa/piix: Allow for optional PIC creation in PIIX3 Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 58/78] hw/isa/piix: Allow for optional PIT " Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 59/78] hw/isa/piix: Harmonize names of reset control memory regions Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 60/78] hw/isa/piix: Share PIIX3's base class with PIIX4 Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 61/78] hw/isa/piix: Reuse PIIX3 base class' realize method in PIIX4 Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 62/78] hw/isa/piix: Rename functions to be shared for PCI interrupt triggering Michael S. Tsirkin
2023-10-19 18:23 ` [PULL v2 63/78] hw/isa/piix: Reuse PIIX3's PCI interrupt triggering in PIIX4 Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 64/78] hw/isa/piix: Resolve duplicate code regarding PCI interrupt wiring Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 65/78] hw/isa/piix: Implement multi-process QEMU support also for PIIX4 Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 66/78] hw/i386/pc_piix: Make PIIX4 south bridge usable in PC machine Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 67/78] vhost-user-common: send get_inflight_fd once Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 68/78] vhost: move and rename the conn retry times Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 69/78] vhost-user-scsi: support reconnect to backend Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 70/78] vhost-user-scsi: start vhost when guest kicks Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 71/78] vhost-user: fix lost reconnect Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 72/78] hw/i386/cxl: ensure maxram is greater than ram size for calculating cxl range Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 73/78] tests/acpi: Allow update of DSDT.cxl Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 74/78] hw/cxl: Add QTG _DSM support for ACPI0017 device Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 75/78] tests/acpi: Update DSDT.cxl with QTG DSM Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 76/78] vhost-user: Fix protocol feature bit conflict Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 77/78] MAINTAINERS: Add include/hw/intc/i8259.h to the PC chip section Michael S. Tsirkin
2023-10-19 18:24 ` [PULL v2 78/78] intel-iommu: Report interrupt remapping faults, fix return value Michael S. Tsirkin
2023-10-20 16:00 ` [PULL v2 00/78] virtio,pc,pci: features, cleanups Stefan Hajnoczi
2023-10-23 11:38   ` Michael S. Tsirkin

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=353a6a8e25f01a2c876780662c43a107f94db76e.1697739629.git.mst@redhat.com \
    --to=mst@redhat.com \
    --cc=anisinha@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zhao1.liu@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).