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>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Ani Sinha <anisinha@redhat.com>
Subject: [PULL 35/46] bios-tables-test: Add complex SRAT / HMAT test for GI GP
Date: Tue, 4 Jun 2024 15:08:04 -0400	[thread overview]
Message-ID: <4c4979cc62f7db9a137c21d64e01766535272fbe.1717527933.git.mst@redhat.com> (raw)
In-Reply-To: <cover.1717527933.git.mst@redhat.com>

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Add a test with 6 nodes to exercise most interesting corner cases
of SRAT and HMAT generation including the new Generic Initiator
and Generic Port Affinity structures.  More details of the
set up in the following patch adding the table data.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20240524100507.32106-6-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test.c | 92 ++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index d1ff4db7a2..1651d06b7b 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1862,6 +1862,96 @@ static void test_acpi_q35_tcg_acpi_hmat_noinitiator(void)
     free_test_data(&data);
 }
 
+/* Test intended to hit corner cases of SRAT and HMAT */
+static void test_acpi_q35_tcg_acpi_hmat_generic_x(void)
+{
+    test_data data = {};
+
+    data.machine = MACHINE_Q35;
+    data.variant = ".acpihmat-generic-x";
+    test_acpi_one(" -machine hmat=on,cxl=on"
+                  " -smp 3,sockets=3"
+                  " -m 128M,maxmem=384M,slots=2"
+                  " -device virtio-rng-pci,id=gidev"
+                  " -device pxb-cxl,bus_nr=64,bus=pcie.0,id=cxl.1"
+                  " -object memory-backend-ram,size=64M,id=ram0"
+                  " -object memory-backend-ram,size=64M,id=ram1"
+                  " -numa node,nodeid=0,cpus=0,memdev=ram0"
+                  " -numa node,nodeid=1"
+                  " -object acpi-generic-initiator,id=gi0,pci-dev=gidev,node=1"
+                  " -numa node,nodeid=2"
+                  " -object acpi-generic-port,id=gp0,pci-bus=cxl.1,node=2"
+                  " -numa node,nodeid=3,cpus=1"
+                  " -numa node,nodeid=4,memdev=ram1"
+                  " -numa node,nodeid=5,cpus=2"
+                  " -numa hmat-lb,initiator=0,target=0,hierarchy=memory,"
+                  "data-type=access-latency,latency=10"
+                  " -numa hmat-lb,initiator=0,target=0,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=800M"
+                  " -numa hmat-lb,initiator=0,target=2,hierarchy=memory,"
+                  "data-type=access-latency,latency=100"
+                  " -numa hmat-lb,initiator=0,target=2,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=200M"
+                  " -numa hmat-lb,initiator=0,target=4,hierarchy=memory,"
+                  "data-type=access-latency,latency=100"
+                  " -numa hmat-lb,initiator=0,target=4,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=200M"
+                  " -numa hmat-lb,initiator=0,target=5,hierarchy=memory,"
+                  "data-type=access-latency,latency=200"
+                  " -numa hmat-lb,initiator=0,target=5,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=400M"
+                  " -numa hmat-lb,initiator=1,target=0,hierarchy=memory,"
+                  "data-type=access-latency,latency=500"
+                  " -numa hmat-lb,initiator=1,target=0,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=100M"
+                  " -numa hmat-lb,initiator=1,target=2,hierarchy=memory,"
+                  "data-type=access-latency,latency=50"
+                  " -numa hmat-lb,initiator=1,target=2,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=400M"
+                  " -numa hmat-lb,initiator=1,target=4,hierarchy=memory,"
+                  "data-type=access-latency,latency=50"
+                  " -numa hmat-lb,initiator=1,target=4,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=800M"
+                  " -numa hmat-lb,initiator=1,target=5,hierarchy=memory,"
+                  "data-type=access-latency,latency=500"
+                  " -numa hmat-lb,initiator=1,target=5,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=100M"
+                  " -numa hmat-lb,initiator=3,target=0,hierarchy=memory,"
+                  "data-type=access-latency,latency=20"
+                  " -numa hmat-lb,initiator=3,target=0,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=400M"
+                  " -numa hmat-lb,initiator=3,target=2,hierarchy=memory,"
+                  "data-type=access-latency,latency=80"
+                  " -numa hmat-lb,initiator=3,target=2,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=200M"
+                  " -numa hmat-lb,initiator=3,target=4,hierarchy=memory,"
+                  "data-type=access-latency,latency=80"
+                  " -numa hmat-lb,initiator=3,target=4,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=200M"
+                  " -numa hmat-lb,initiator=3,target=5,hierarchy=memory,"
+                  "data-type=access-latency,latency=20"
+                  " -numa hmat-lb,initiator=3,target=5,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=400M"
+                  " -numa hmat-lb,initiator=5,target=0,hierarchy=memory,"
+                  "data-type=access-latency,latency=20"
+                  " -numa hmat-lb,initiator=5,target=0,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=400M"
+                  " -numa hmat-lb,initiator=5,target=2,hierarchy=memory,"
+                  "data-type=access-latency,latency=80"
+                  " -numa hmat-lb,initiator=5,target=4,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=200M"
+                  " -numa hmat-lb,initiator=5,target=4,hierarchy=memory,"
+                  "data-type=access-latency,latency=80"
+                  " -numa hmat-lb,initiator=5,target=2,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=200M"
+                  " -numa hmat-lb,initiator=5,target=5,hierarchy=memory,"
+                  "data-type=access-latency,latency=10"
+                  " -numa hmat-lb,initiator=5,target=5,hierarchy=memory,"
+                  "data-type=access-bandwidth,bandwidth=800M",
+                  &data);
+    free_test_data(&data);
+}
+
 #ifdef CONFIG_POSIX
 static void test_acpi_erst(const char *machine)
 {
@@ -2304,6 +2394,8 @@ int main(int argc, char *argv[])
             qtest_add_func("acpi/q35/nohpet", test_acpi_q35_tcg_nohpet);
             qtest_add_func("acpi/q35/acpihmat-noinitiator",
                            test_acpi_q35_tcg_acpi_hmat_noinitiator);
+            qtest_add_func("acpi/q35/acpihmat-genericx",
+                           test_acpi_q35_tcg_acpi_hmat_generic_x);
 
             /* i386 does not support memory hotplug */
             if (strcmp(arch, "i386")) {
-- 
MST



  parent reply	other threads:[~2024-06-04 19:09 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-04 19:05 [PULL 00/46] virtio: features,fixes Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 01/46] vhost: dirty log should be per backend type Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 02/46] vhost: Perform memory section dirty scans once per iteration Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 03/46] vhost-vdpa: check vhost_vdpa_set_vring_ready() return value Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 04/46] virtio-pci: Fix the use of an uninitialized irqfd Michael S. Tsirkin
2024-06-05  7:27   ` Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 05/46] virtio/virtio-pci: Handle extra notification data Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 06/46] virtio: Prevent creation of device using notification-data with ioeventfd Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 07/46] virtio-mmio: Handle extra notification data Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 08/46] virtio-ccw: " Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 09/46] vhost/vhost-user: Add VIRTIO_F_NOTIFICATION_DATA to vhost feature bits Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 10/46] Fix vhost user assertion when sending more than one fd Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 11/46] vhost-vsock: add VIRTIO_F_RING_PACKED to feature_bits Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 12/46] hw/virtio: Fix obtain the buffer id from the last descriptor Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 13/46] virtio-pci: only reset pm state during resetting Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 14/46] vhost-user-gpu: fix import of DMABUF Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 15/46] Revert "vhost-user: fix lost reconnect" Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 16/46] vhost-user: fix lost reconnect again Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 17/46] hw/cxl/mailbox: change CCI cmd set structure to be a member, not a reference Michael S. Tsirkin
2024-06-04 19:06 ` [PULL 18/46] hw/cxl/mailbox: interface to add CCI commands to an existing CCI Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 19/46] hw/cxl/cxl-mailbox-utils: Add dc_event_log_size field to output payload of identify memory device command Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 20/46] hw/cxl/cxl-mailbox-utils: Add dynamic capacity region representative and mailbox command support Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 21/46] include/hw/cxl/cxl_device: Rename mem_size as static_mem_size for type3 memory devices Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 22/46] hw/mem/cxl_type3: Add support to create DC regions to " Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 23/46] hw/mem/cxl-type3: Refactor ct3_build_cdat_entries_for_mr to take mr size instead of mr as argument Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 24/46] hw/mem/cxl_type3: Add host backend and address space handling for DC regions Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 25/46] hw/mem/cxl_type3: Add DC extent list representative and get DC extent list mailbox support Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 26/46] hw/cxl/cxl-mailbox-utils: Add mailbox commands to support add/release dynamic capacity response Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 27/46] hw/cxl/events: Add qmp interfaces to add/release dynamic capacity extents Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 28/46] hw/mem/cxl_type3: Add DPA range validation for accesses to DC regions Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 29/46] hw/cxl/cxl-mailbox-utils: Add superset extent release mailbox support Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 30/46] hw/mem/cxl_type3: Allow to release extent superset in QMP interface Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 31/46] hw/acpi/GI: Fix trivial parameter alignment issue Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 32/46] hw/acpi: Insert an acpi-generic-node base under acpi-generic-initiator Michael S. Tsirkin
2024-06-04 19:07 ` [PULL 33/46] hw/acpi: Generic Port Affinity Structure support Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 34/46] bios-tables-test: Allow for new acpihmat-generic-x test data Michael S. Tsirkin
2024-06-04 19:08 ` Michael S. Tsirkin [this message]
2024-06-04 19:08 ` [PULL 36/46] bios-tables-test: Add data for complex numa test (GI, GP etc) Michael S. Tsirkin
2024-06-05 14:39   ` Richard Henderson
2024-06-05 15:27     ` Jonathan Cameron via
2024-06-05 15:49       ` Jonathan Cameron via
2024-06-05 16:01       ` Richard Henderson
2024-06-05 16:08         ` Jonathan Cameron via
2024-06-05 16:11           ` Jonathan Cameron via
2024-06-05 16:54             ` Richard Henderson
2024-06-05 17:19               ` Jonathan Cameron via
2024-06-04 19:08 ` [PULL 37/46] scripts/update-linux-headers: Copy setup_data.h to correct directory Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 38/46] linux-headers: update to 6.10-rc1 Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 39/46] hw/misc/pvpanic: centralize definition of supported events Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 40/46] tests/qtest/pvpanic: use centralized " Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 41/46] hw/misc/pvpanic: add support for normal shutdowns Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 42/46] pvpanic: Emit GUEST_PVSHUTDOWN QMP event on pvpanic shutdown signal Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 43/46] tests/qtest/pvpanic: add tests for pvshutdown event Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 44/46] Revert "docs/specs/pvpanic: mark shutdown event as not implemented" Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 45/46] virtio-pci: Fix the failure process in kvm_virtio_pci_vector_use_one() Michael S. Tsirkin
2024-06-04 19:08 ` [PULL 46/46] hw/cxl: Fix read from bogus memory Michael S. Tsirkin
2024-06-05  7:27 ` [PULL 00/46] virtio: features,fixes Michael S. Tsirkin
2024-06-05 14:44   ` Richard Henderson
2024-06-25 13:06 ` Peter Maydell
2024-06-25 14:01   ` 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=4c4979cc62f7db9a137c21d64e01766535272fbe.1717527933.git.mst@redhat.com \
    --to=mst@redhat.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=anisinha@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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).