All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/13] virtio,pc,pci: bug fixes, new test
@ 2024-11-27 13:57 Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 01/13] vhost_net: fix assertion triggered by batch of host notifiers processing Michael S. Tsirkin
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The following changes since commit 34754a3a627e1937be7f3daaa0c5e73d91c7d9b5:

  Update version for v9.2.0-rc1 release (2024-11-20 18:27:48 +0000)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

for you to fetch changes up to 571bdc97b83646dfd3746ec56fb2f70bca55b9a2:

  vhost: fail device start if iotlb update fails (2024-11-26 17:18:07 -0500)

----------------------------------------------------------------
virtio,pc,pci: bug fixes, new test

Some small bug fixes, notably a fix for a regression
in cpu hotplug after migration. I also included a
new test, just to help make sure we don't regress cxl.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

----------------------------------------------------------------
Igor Mammedov (3):
      Revert "hw/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states"
      Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug"
      tests/acpi: update expected blobs

Jonathan Cameron (6):
      hw/cxl: Check for zero length features in cmd_features_set_feature()
      hw/acpi: Fix size of HID in build_append_srat_acpi_device_handle()
      qapi/qom: Change Since entry for AcpiGenericPortProperties to 9.2
      bios-tables-test: Allow for new acpihmat-generic-x test data.
      bios-tables-test: Add complex SRAT / HMAT test for GI GP
      bios-tables-test: Add data for complex numa test (GI, GP etc)

Prasad J Pandit (1):
      vhost: fail device start if iotlb update fails

Salil Mehta (1):
      qtest: allow ACPI DSDT Table changes

Vladimir Sementsov-Ogievskiy (1):
      qapi: fix device-sync-config since-version

zuoboqun (1):
      vhost_net: fix assertion triggered by batch of host notifiers processing

 qapi/qdev.json                                    |   2 +-
 qapi/qom.json                                     |   2 +-
 include/hw/core/cpu.h                             |   2 -
 hw/acpi/aml-build.c                               |   2 +-
 hw/acpi/cpu.c                                     |  53 ++----------
 hw/cxl/cxl-mailbox-utils.c                        |   4 +
 hw/net/vhost_net.c                                |  35 +++++---
 hw/virtio/vhost.c                                 |  13 ++-
 tests/qtest/bios-tables-test.c                    |  97 ++++++++++++++++++++++
 tests/data/acpi/x86/pc/DSDT                       | Bin 8560 -> 8526 bytes
 tests/data/acpi/x86/pc/DSDT.acpierst              | Bin 8471 -> 8437 bytes
 tests/data/acpi/x86/pc/DSDT.acpihmat              | Bin 9885 -> 9851 bytes
 tests/data/acpi/x86/pc/DSDT.bridge                | Bin 15431 -> 15397 bytes
 tests/data/acpi/x86/pc/DSDT.cphp                  | Bin 9024 -> 8990 bytes
 tests/data/acpi/x86/pc/DSDT.dimmpxm               | Bin 10214 -> 10180 bytes
 tests/data/acpi/x86/pc/DSDT.hpbridge              | Bin 8511 -> 8477 bytes
 tests/data/acpi/x86/pc/DSDT.hpbrroot              | Bin 5067 -> 5033 bytes
 tests/data/acpi/x86/pc/DSDT.ipmikcs               | Bin 8632 -> 8598 bytes
 tests/data/acpi/x86/pc/DSDT.memhp                 | Bin 9919 -> 9885 bytes
 tests/data/acpi/x86/pc/DSDT.nohpet                | Bin 8418 -> 8384 bytes
 tests/data/acpi/x86/pc/DSDT.numamem               | Bin 8566 -> 8532 bytes
 tests/data/acpi/x86/pc/DSDT.roothp                | Bin 12353 -> 12319 bytes
 tests/data/acpi/x86/q35/APIC.acpihmat-generic-x   | Bin 0 -> 136 bytes
 tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x   | Bin 0 -> 68 bytes
 tests/data/acpi/x86/q35/DSDT                      | Bin 8389 -> 8355 bytes
 tests/data/acpi/x86/q35/DSDT.acpierst             | Bin 8406 -> 8372 bytes
 tests/data/acpi/x86/q35/DSDT.acpihmat             | Bin 9714 -> 9680 bytes
 tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x   | Bin 0 -> 12565 bytes
 tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator | Bin 8668 -> 8634 bytes
 tests/data/acpi/x86/q35/DSDT.applesmc             | Bin 8435 -> 8401 bytes
 tests/data/acpi/x86/q35/DSDT.bridge               | Bin 12002 -> 11968 bytes
 tests/data/acpi/x86/q35/DSDT.core-count           | Bin 12947 -> 12913 bytes
 tests/data/acpi/x86/q35/DSDT.core-count2          | Bin 33804 -> 33770 bytes
 tests/data/acpi/x86/q35/DSDT.cphp                 | Bin 8853 -> 8819 bytes
 tests/data/acpi/x86/q35/DSDT.cxl                  | Bin 13180 -> 13146 bytes
 tests/data/acpi/x86/q35/DSDT.dimmpxm              | Bin 10043 -> 10009 bytes
 tests/data/acpi/x86/q35/DSDT.ipmibt               | Bin 8464 -> 8430 bytes
 tests/data/acpi/x86/q35/DSDT.ipmismbus            | Bin 8477 -> 8443 bytes
 tests/data/acpi/x86/q35/DSDT.ivrs                 | Bin 8406 -> 8372 bytes
 tests/data/acpi/x86/q35/DSDT.memhp                | Bin 9748 -> 9714 bytes
 tests/data/acpi/x86/q35/DSDT.mmio64               | Bin 9519 -> 9485 bytes
 tests/data/acpi/x86/q35/DSDT.multi-bridge         | Bin 13242 -> 13208 bytes
 tests/data/acpi/x86/q35/DSDT.noacpihp             | Bin 8269 -> 8235 bytes
 tests/data/acpi/x86/q35/DSDT.nohpet               | Bin 8247 -> 8213 bytes
 tests/data/acpi/x86/q35/DSDT.numamem              | Bin 8395 -> 8361 bytes
 tests/data/acpi/x86/q35/DSDT.pvpanic-isa          | Bin 8490 -> 8456 bytes
 tests/data/acpi/x86/q35/DSDT.thread-count         | Bin 12947 -> 12913 bytes
 tests/data/acpi/x86/q35/DSDT.thread-count2        | Bin 33804 -> 33770 bytes
 tests/data/acpi/x86/q35/DSDT.tis.tpm12            | Bin 8995 -> 8961 bytes
 tests/data/acpi/x86/q35/DSDT.tis.tpm2             | Bin 9021 -> 8987 bytes
 tests/data/acpi/x86/q35/DSDT.type4-count          | Bin 18623 -> 18589 bytes
 tests/data/acpi/x86/q35/DSDT.viot                 | Bin 14646 -> 14612 bytes
 tests/data/acpi/x86/q35/DSDT.xapic                | Bin 35752 -> 35718 bytes
 tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x   | Bin 0 -> 360 bytes
 tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x   | Bin 0 -> 520 bytes
 55 files changed, 145 insertions(+), 65 deletions(-)
 create mode 100644 tests/data/acpi/x86/q35/APIC.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x



^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PULL 01/13] vhost_net: fix assertion triggered by batch of host notifiers processing
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 02/13] qtest: allow ACPI DSDT Table changes Michael S. Tsirkin
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, zuoboqun, Gao Shiyuan, Stefano Garzarella,
	Jason Wang

From: zuoboqun <zuoboqun@baidu.com>

When the backend of vhost_net restarts during the vm is running, vhost_net
is stopped and started. The virtio_device_grab_ioeventfd() fucntion in
vhost_net_enable_notifiers() will result in a call to
virtio_bus_set_host_notifier()(assign=false).

And now virtio_device_grab_ioeventfd() is batched in a single transaction
with virtio_bus_set_host_notifier()(assign=true).

This triggers the following assertion:

kvm_mem_ioeventfd_del: error deleting ioeventfd: Bad file descriptor

This patch moves virtio_device_grab_ioeventfd() out of the batch to fix
this problem.

To be noted that the for loop to release ioeventfd should start from i+1,
not i, because the i-th ioeventfd has already been released in
vhost_dev_disable_notifiers_nvqs().

Fixes: 6166799f6 ("vhost_net: configure all host notifiers in a single MR transaction")
Signed-off-by: Zuo Boqun <zuoboqun@baidu.com>
Reported-by: Gao Shiyuan <gaoshiyuan@baidu.com>

Message-Id: <20241115080312.3184-1-zuoboqun@baidu.com>
Acked-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/net/vhost_net.c | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index 997aab0557..891f235a0a 100644
--- a/hw/net/vhost_net.c
+++ b/hw/net/vhost_net.c
@@ -229,9 +229,24 @@ static int vhost_net_enable_notifiers(VirtIODevice *dev,
     int nvhosts = data_queue_pairs + cvq;
     struct vhost_net *net;
     struct vhost_dev *hdev;
-    int r, i, j;
+    int r, i, j, k;
     NetClientState *peer;
 
+    /*
+     * We will pass the notifiers to the kernel, make sure that QEMU
+     * doesn't interfere.
+     */
+    for (i = 0; i < nvhosts; i++) {
+        r = virtio_device_grab_ioeventfd(dev);
+        if (r < 0) {
+            error_report("vhost %d binding does not support host notifiers", i);
+            for (k = 0; k < i; k++) {
+                virtio_device_release_ioeventfd(dev);
+            }
+            return r;
+        }
+    }
+
     /*
      * Batch all the host notifiers in a single transaction to avoid
      * quadratic time complexity in address_space_update_ioeventfds().
@@ -247,16 +262,6 @@ static int vhost_net_enable_notifiers(VirtIODevice *dev,
 
         net = get_vhost_net(peer);
         hdev = &net->dev;
-        /*
-         * We will pass the notifiers to the kernel, make sure that QEMU
-         * doesn't interfere.
-         */
-        r = virtio_device_grab_ioeventfd(dev);
-        if (r < 0) {
-            error_report("binding does not support host notifiers");
-            memory_region_transaction_commit();
-            goto fail_nvhosts;
-        }
 
         for (j = 0; j < hdev->nvqs; j++) {
             r = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus),
@@ -277,6 +282,14 @@ static int vhost_net_enable_notifiers(VirtIODevice *dev,
     return 0;
 fail_nvhosts:
     vhost_net_disable_notifiers_nvhosts(dev, ncs, data_queue_pairs, i);
+    /*
+     * This for loop starts from i+1, not i, because the i-th ioeventfd
+     * has already been released in vhost_dev_disable_notifiers_nvqs().
+     */
+    for (k = i + 1; k < nvhosts; k++) {
+        virtio_device_release_ioeventfd(dev);
+    }
+
     return r;
 }
 
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 02/13] qtest: allow ACPI DSDT Table changes
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 01/13] vhost_net: fix assertion triggered by batch of host notifiers processing Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 03/13] Revert "hw/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states" Michael S. Tsirkin
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Salil Mehta, Igor Mammedov, Ani Sinha

From: Salil Mehta <salil.mehta@huawei.com>

list changed files in tests/qtest/bios-tables-test-allowed-diff.h

Message-ID: <20241106100047.18901c9d@imammedo.users.ipa.redhat.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20241112170258.2996640-2-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 41 +++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..512d40665d 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,42 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/x86/pc/DSDT",
+"tests/data/acpi/x86/pc/DSDT.acpierst",
+"tests/data/acpi/x86/pc/DSDT.acpihmat",
+"tests/data/acpi/x86/pc/DSDT.bridge",
+"tests/data/acpi/x86/pc/DSDT.cphp",
+"tests/data/acpi/x86/pc/DSDT.dimmpxm",
+"tests/data/acpi/x86/pc/DSDT.hpbridge",
+"tests/data/acpi/x86/pc/DSDT.hpbrroot",
+"tests/data/acpi/x86/pc/DSDT.ipmikcs",
+"tests/data/acpi/x86/pc/DSDT.memhp",
+"tests/data/acpi/x86/pc/DSDT.nohpet",
+"tests/data/acpi/x86/pc/DSDT.numamem",
+"tests/data/acpi/x86/pc/DSDT.roothp",
+"tests/data/acpi/x86/q35/DSDT",
+"tests/data/acpi/x86/q35/DSDT.acpierst",
+"tests/data/acpi/x86/q35/DSDT.acpihmat",
+"tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator",
+"tests/data/acpi/x86/q35/DSDT.applesmc",
+"tests/data/acpi/x86/q35/DSDT.bridge",
+"tests/data/acpi/x86/q35/DSDT.core-count",
+"tests/data/acpi/x86/q35/DSDT.core-count2",
+"tests/data/acpi/x86/q35/DSDT.cphp",
+"tests/data/acpi/x86/q35/DSDT.cxl",
+"tests/data/acpi/x86/q35/DSDT.dimmpxm",
+"tests/data/acpi/x86/q35/DSDT.ipmibt",
+"tests/data/acpi/x86/q35/DSDT.ipmismbus",
+"tests/data/acpi/x86/q35/DSDT.ivrs",
+"tests/data/acpi/x86/q35/DSDT.memhp",
+"tests/data/acpi/x86/q35/DSDT.mmio64",
+"tests/data/acpi/x86/q35/DSDT.multi-bridge",
+"tests/data/acpi/x86/q35/DSDT.noacpihp",
+"tests/data/acpi/x86/q35/DSDT.nohpet",
+"tests/data/acpi/x86/q35/DSDT.numamem",
+"tests/data/acpi/x86/q35/DSDT.pvpanic-isa",
+"tests/data/acpi/x86/q35/DSDT.thread-count",
+"tests/data/acpi/x86/q35/DSDT.thread-count2",
+"tests/data/acpi/x86/q35/DSDT.tis.tpm12",
+"tests/data/acpi/x86/q35/DSDT.tis.tpm2",
+"tests/data/acpi/x86/q35/DSDT.type4-count",
+"tests/data/acpi/x86/q35/DSDT.viot",
+"tests/data/acpi/x86/q35/DSDT.xapic",
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 03/13] Revert "hw/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states"
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 01/13] vhost_net: fix assertion triggered by batch of host notifiers processing Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 02/13] qtest: allow ACPI DSDT Table changes Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 04/13] Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug" Michael S. Tsirkin
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Igor Mammedov, Ani Sinha, Eduardo Habkost,
	Marcel Apfelbaum, Philippe Mathieu-Daudé, Yanan Wang,
	Zhao Liu

From: Igor Mammedov <imammedo@redhat.com>

This reverts commit bf1ecc8dad6061914730a2a2d57af6b37c3a4f8d
which broke cpu hotplug in x86 after migration to older QEMU

Fixes: bf1ecc8dad606 (w/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states)
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20241112170258.2996640-3-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/core/cpu.h |  1 -
 hw/acpi/cpu.c         | 38 ++++----------------------------------
 2 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index db8a6fbc6e..e7de77dc6d 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -159,7 +159,6 @@ struct CPUClass {
     void (*query_cpu_fast)(CPUState *cpu, CpuInfoFast *value);
     int64_t (*get_arch_id)(CPUState *cpu);
     bool (*cpu_persistent_status)(CPUState *cpu);
-    bool (*cpu_enabled_status)(CPUState *cpu);
     void (*set_pc)(CPUState *cpu, vaddr value);
     vaddr (*get_pc)(CPUState *cpu);
     int (*gdb_read_register)(CPUState *cpu, GByteArray *buf, int reg);
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 23443f09a5..9b03b4292e 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -50,18 +50,6 @@ void acpi_cpu_ospm_status(CPUHotplugState *cpu_st, ACPIOSTInfoList ***list)
     }
 }
 
-static bool check_cpu_enabled_status(DeviceState *dev)
-{
-    CPUClass *k = dev ? CPU_GET_CLASS(dev) : NULL;
-    CPUState *cpu = CPU(dev);
-
-    if (cpu && (!k->cpu_enabled_status || k->cpu_enabled_status(cpu))) {
-        return true;
-    }
-
-    return false;
-}
-
 static uint64_t cpu_hotplug_rd(void *opaque, hwaddr addr, unsigned size)
 {
     uint64_t val = 0;
@@ -75,11 +63,10 @@ static uint64_t cpu_hotplug_rd(void *opaque, hwaddr addr, unsigned size)
     cdev = &cpu_st->devs[cpu_st->selector];
     switch (addr) {
     case ACPI_CPU_FLAGS_OFFSET_RW: /* pack and return is_* fields */
-        val |= check_cpu_enabled_status(DEVICE(cdev->cpu)) ? 1 : 0;
+        val |= cdev->cpu ? 1 : 0;
         val |= cdev->is_inserting ? 2 : 0;
         val |= cdev->is_removing  ? 4 : 0;
         val |= cdev->fw_remove  ? 16 : 0;
-        val |= cdev->cpu ? 32 : 0;
         trace_cpuhp_acpi_read_flags(cpu_st->selector, val);
         break;
     case ACPI_CPU_CMD_DATA_OFFSET_RW:
@@ -362,7 +349,6 @@ const VMStateDescription vmstate_cpu_hotplug = {
 #define CPU_REMOVE_EVENT  "CRMV"
 #define CPU_EJECT_EVENT   "CEJ0"
 #define CPU_FW_EJECT_EVENT "CEJF"
-#define CPU_PRESENT       "CPRS"
 
 void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
                     build_madt_cpu_fn build_madt_cpu, hwaddr base_addr,
@@ -423,9 +409,7 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
         aml_append(field, aml_named_field(CPU_EJECT_EVENT, 1));
         /* tell firmware to do device eject, write only */
         aml_append(field, aml_named_field(CPU_FW_EJECT_EVENT, 1));
-        /* 1 if present, read only */
-        aml_append(field, aml_named_field(CPU_PRESENT, 1));
-        aml_append(field, aml_reserved_field(2));
+        aml_append(field, aml_reserved_field(3));
         aml_append(field, aml_named_field(CPU_COMMAND, 8));
         aml_append(cpu_ctrl_dev, field);
 
@@ -455,7 +439,6 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
         Aml *ctrl_lock = aml_name("%s.%s", cphp_res_path, CPU_LOCK);
         Aml *cpu_selector = aml_name("%s.%s", cphp_res_path, CPU_SELECTOR);
         Aml *is_enabled = aml_name("%s.%s", cphp_res_path, CPU_ENABLED);
-        Aml *is_present = aml_name("%s.%s", cphp_res_path, CPU_PRESENT);
         Aml *cpu_cmd = aml_name("%s.%s", cphp_res_path, CPU_COMMAND);
         Aml *cpu_data = aml_name("%s.%s", cphp_res_path, CPU_DATA);
         Aml *ins_evt = aml_name("%s.%s", cphp_res_path, CPU_INSERT_EVENT);
@@ -484,26 +467,13 @@ void build_cpus_aml(Aml *table, MachineState *machine, CPUHotplugFeatures opts,
         {
             Aml *idx = aml_arg(0);
             Aml *sta = aml_local(0);
-            Aml *ifctx2;
-            Aml *else_ctx;
 
             aml_append(method, aml_acquire(ctrl_lock, 0xFFFF));
             aml_append(method, aml_store(idx, cpu_selector));
             aml_append(method, aml_store(zero, sta));
-            ifctx = aml_if(aml_equal(is_present, one));
+            ifctx = aml_if(aml_equal(is_enabled, one));
             {
-                ifctx2 = aml_if(aml_equal(is_enabled, one));
-                {
-                    /* cpu is present and enabled */
-                    aml_append(ifctx2, aml_store(aml_int(0xF), sta));
-                }
-                aml_append(ifctx, ifctx2);
-                else_ctx = aml_else();
-                {
-                    /* cpu is present but disabled */
-                    aml_append(else_ctx, aml_store(aml_int(0xD), sta));
-                }
-                aml_append(ifctx, else_ctx);
+                aml_append(ifctx, aml_store(aml_int(0xF), sta));
             }
             aml_append(method, ifctx);
             aml_append(method, aml_release(ctrl_lock));
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 04/13] Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug"
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (2 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 03/13] Revert "hw/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states" Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 05/13] tests/acpi: update expected blobs Michael S. Tsirkin
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Igor Mammedov, Ani Sinha, Eduardo Habkost,
	Marcel Apfelbaum, Philippe Mathieu-Daudé, Yanan Wang,
	Zhao Liu

From: Igor Mammedov <imammedo@redhat.com>

This reverts commit 2d6cfbaf174b91dfa9a50065f7494634afb39c23.

The patch is supposed to be part of ARM CPU hotplug series and has not value
on its own without it. The series however is still in RFC stage and outside
of scope 9.2 release.

On top of that it introduces not needed callback that pokes directly into
CPU state without any need for that. Instead properties and AML generator
option should be used to configure static platform depended vCPU presence
state.

Drop the patch so that corrected version could be posted along with
ARM CPU hotplug series and properly reviewed in relevant context.
That also helps us to keep history cleaner with new patch being
against original code vs a string of fixups on top of current mess.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20241112170258.2996640-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/core/cpu.h |  1 -
 hw/acpi/cpu.c         | 15 +--------------
 2 files changed, 1 insertion(+), 15 deletions(-)

diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index e7de77dc6d..c3ca0babcb 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -158,7 +158,6 @@ struct CPUClass {
     void (*dump_state)(CPUState *cpu, FILE *, int flags);
     void (*query_cpu_fast)(CPUState *cpu, CpuInfoFast *value);
     int64_t (*get_arch_id)(CPUState *cpu);
-    bool (*cpu_persistent_status)(CPUState *cpu);
     void (*set_pc)(CPUState *cpu, vaddr value);
     vaddr (*get_pc)(CPUState *cpu);
     int (*gdb_read_register)(CPUState *cpu, GByteArray *buf, int reg);
diff --git a/hw/acpi/cpu.c b/hw/acpi/cpu.c
index 9b03b4292e..5cb60ca8bc 100644
--- a/hw/acpi/cpu.c
+++ b/hw/acpi/cpu.c
@@ -233,17 +233,6 @@ void cpu_hotplug_hw_init(MemoryRegion *as, Object *owner,
     memory_region_add_subregion(as, base_addr, &state->ctrl_reg);
 }
 
-static bool should_remain_acpi_present(DeviceState *dev)
-{
-    CPUClass *k = CPU_GET_CLASS(dev);
-    /*
-     * A system may contain CPUs that are always present on one die, NUMA node,
-     * or socket, yet may be non-present on another simultaneously. Check from
-     * architecture specific code.
-     */
-    return k->cpu_persistent_status && k->cpu_persistent_status(CPU(dev));
-}
-
 static AcpiCpuStatus *get_cpu_status(CPUHotplugState *cpu_st, DeviceState *dev)
 {
     CPUClass *k = CPU_GET_CLASS(dev);
@@ -300,9 +289,7 @@ void acpi_cpu_unplug_cb(CPUHotplugState *cpu_st,
         return;
     }
 
-    if (!should_remain_acpi_present(dev)) {
-        cdev->cpu = NULL;
-    }
+    cdev->cpu = NULL;
 }
 
 static const VMStateDescription vmstate_cpuhp_sts = {
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 05/13] tests/acpi: update expected blobs
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (3 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 04/13] Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug" Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 06/13] hw/cxl: Check for zero length features in cmd_features_set_feature() Michael S. Tsirkin
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Igor Mammedov, Ani Sinha

From: Igor Mammedov <imammedo@redhat.com>

Expected AML return to the state before
  bf1ecc8dad606 (w/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states)
droping not needed CPRS and _STA logic that broke cpu hotplug

	@@ -2887,7 +2887,6 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC    ", 0x00000001)
			 CRMV,   1,
			 CEJ0,   1,
			 CEJF,   1,
	-                CPRS,   1,
			 Offset (0x05),
			 CCMD,   8
		     }
	@@ -2922,16 +2921,9 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC    ", 0x00000001)
			 Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF)
			 \_SB.PCI0.PRES.CSEL = Arg0
			 Local0 = Zero
	-                If ((\_SB.PCI0.PRES.CPRS == One))
	+                If ((\_SB.PCI0.PRES.CPEN == One))
			 {
	-                    If ((\_SB.PCI0.PRES.CPEN == One))
	-                    {
	-                        Local0 = 0x0F
	-                    }
	-                    Else
	-                    {
	-                        Local0 = 0x0D
	-                    }
	+                    Local0 = 0x0F
			 }

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20241112170258.2996640-5-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h   |  41 ------------------
 tests/data/acpi/x86/pc/DSDT                   | Bin 8560 -> 8526 bytes
 tests/data/acpi/x86/pc/DSDT.acpierst          | Bin 8471 -> 8437 bytes
 tests/data/acpi/x86/pc/DSDT.acpihmat          | Bin 9885 -> 9851 bytes
 tests/data/acpi/x86/pc/DSDT.bridge            | Bin 15431 -> 15397 bytes
 tests/data/acpi/x86/pc/DSDT.cphp              | Bin 9024 -> 8990 bytes
 tests/data/acpi/x86/pc/DSDT.dimmpxm           | Bin 10214 -> 10180 bytes
 tests/data/acpi/x86/pc/DSDT.hpbridge          | Bin 8511 -> 8477 bytes
 tests/data/acpi/x86/pc/DSDT.hpbrroot          | Bin 5067 -> 5033 bytes
 tests/data/acpi/x86/pc/DSDT.ipmikcs           | Bin 8632 -> 8598 bytes
 tests/data/acpi/x86/pc/DSDT.memhp             | Bin 9919 -> 9885 bytes
 tests/data/acpi/x86/pc/DSDT.nohpet            | Bin 8418 -> 8384 bytes
 tests/data/acpi/x86/pc/DSDT.numamem           | Bin 8566 -> 8532 bytes
 tests/data/acpi/x86/pc/DSDT.roothp            | Bin 12353 -> 12319 bytes
 tests/data/acpi/x86/q35/DSDT                  | Bin 8389 -> 8355 bytes
 tests/data/acpi/x86/q35/DSDT.acpierst         | Bin 8406 -> 8372 bytes
 tests/data/acpi/x86/q35/DSDT.acpihmat         | Bin 9714 -> 9680 bytes
 .../acpi/x86/q35/DSDT.acpihmat-noinitiator    | Bin 8668 -> 8634 bytes
 tests/data/acpi/x86/q35/DSDT.applesmc         | Bin 8435 -> 8401 bytes
 tests/data/acpi/x86/q35/DSDT.bridge           | Bin 12002 -> 11968 bytes
 tests/data/acpi/x86/q35/DSDT.core-count       | Bin 12947 -> 12913 bytes
 tests/data/acpi/x86/q35/DSDT.core-count2      | Bin 33804 -> 33770 bytes
 tests/data/acpi/x86/q35/DSDT.cphp             | Bin 8853 -> 8819 bytes
 tests/data/acpi/x86/q35/DSDT.cxl              | Bin 13180 -> 13146 bytes
 tests/data/acpi/x86/q35/DSDT.dimmpxm          | Bin 10043 -> 10009 bytes
 tests/data/acpi/x86/q35/DSDT.ipmibt           | Bin 8464 -> 8430 bytes
 tests/data/acpi/x86/q35/DSDT.ipmismbus        | Bin 8477 -> 8443 bytes
 tests/data/acpi/x86/q35/DSDT.ivrs             | Bin 8406 -> 8372 bytes
 tests/data/acpi/x86/q35/DSDT.memhp            | Bin 9748 -> 9714 bytes
 tests/data/acpi/x86/q35/DSDT.mmio64           | Bin 9519 -> 9485 bytes
 tests/data/acpi/x86/q35/DSDT.multi-bridge     | Bin 13242 -> 13208 bytes
 tests/data/acpi/x86/q35/DSDT.noacpihp         | Bin 8269 -> 8235 bytes
 tests/data/acpi/x86/q35/DSDT.nohpet           | Bin 8247 -> 8213 bytes
 tests/data/acpi/x86/q35/DSDT.numamem          | Bin 8395 -> 8361 bytes
 tests/data/acpi/x86/q35/DSDT.pvpanic-isa      | Bin 8490 -> 8456 bytes
 tests/data/acpi/x86/q35/DSDT.thread-count     | Bin 12947 -> 12913 bytes
 tests/data/acpi/x86/q35/DSDT.thread-count2    | Bin 33804 -> 33770 bytes
 tests/data/acpi/x86/q35/DSDT.tis.tpm12        | Bin 8995 -> 8961 bytes
 tests/data/acpi/x86/q35/DSDT.tis.tpm2         | Bin 9021 -> 8987 bytes
 tests/data/acpi/x86/q35/DSDT.type4-count      | Bin 18623 -> 18589 bytes
 tests/data/acpi/x86/q35/DSDT.viot             | Bin 14646 -> 14612 bytes
 tests/data/acpi/x86/q35/DSDT.xapic            | Bin 35752 -> 35718 bytes
 42 files changed, 41 deletions(-)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 512d40665d..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,42 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/x86/pc/DSDT",
-"tests/data/acpi/x86/pc/DSDT.acpierst",
-"tests/data/acpi/x86/pc/DSDT.acpihmat",
-"tests/data/acpi/x86/pc/DSDT.bridge",
-"tests/data/acpi/x86/pc/DSDT.cphp",
-"tests/data/acpi/x86/pc/DSDT.dimmpxm",
-"tests/data/acpi/x86/pc/DSDT.hpbridge",
-"tests/data/acpi/x86/pc/DSDT.hpbrroot",
-"tests/data/acpi/x86/pc/DSDT.ipmikcs",
-"tests/data/acpi/x86/pc/DSDT.memhp",
-"tests/data/acpi/x86/pc/DSDT.nohpet",
-"tests/data/acpi/x86/pc/DSDT.numamem",
-"tests/data/acpi/x86/pc/DSDT.roothp",
-"tests/data/acpi/x86/q35/DSDT",
-"tests/data/acpi/x86/q35/DSDT.acpierst",
-"tests/data/acpi/x86/q35/DSDT.acpihmat",
-"tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator",
-"tests/data/acpi/x86/q35/DSDT.applesmc",
-"tests/data/acpi/x86/q35/DSDT.bridge",
-"tests/data/acpi/x86/q35/DSDT.core-count",
-"tests/data/acpi/x86/q35/DSDT.core-count2",
-"tests/data/acpi/x86/q35/DSDT.cphp",
-"tests/data/acpi/x86/q35/DSDT.cxl",
-"tests/data/acpi/x86/q35/DSDT.dimmpxm",
-"tests/data/acpi/x86/q35/DSDT.ipmibt",
-"tests/data/acpi/x86/q35/DSDT.ipmismbus",
-"tests/data/acpi/x86/q35/DSDT.ivrs",
-"tests/data/acpi/x86/q35/DSDT.memhp",
-"tests/data/acpi/x86/q35/DSDT.mmio64",
-"tests/data/acpi/x86/q35/DSDT.multi-bridge",
-"tests/data/acpi/x86/q35/DSDT.noacpihp",
-"tests/data/acpi/x86/q35/DSDT.nohpet",
-"tests/data/acpi/x86/q35/DSDT.numamem",
-"tests/data/acpi/x86/q35/DSDT.pvpanic-isa",
-"tests/data/acpi/x86/q35/DSDT.thread-count",
-"tests/data/acpi/x86/q35/DSDT.thread-count2",
-"tests/data/acpi/x86/q35/DSDT.tis.tpm12",
-"tests/data/acpi/x86/q35/DSDT.tis.tpm2",
-"tests/data/acpi/x86/q35/DSDT.type4-count",
-"tests/data/acpi/x86/q35/DSDT.viot",
-"tests/data/acpi/x86/q35/DSDT.xapic",
diff --git a/tests/data/acpi/x86/pc/DSDT b/tests/data/acpi/x86/pc/DSDT
index f68a32e6068788c3fdfaff139206b725ba2bf1d1..8b8235fe79e2fa08a6f840c8479edb75f5a047b9 100644
GIT binary patch
delta 76
zcmez1bk2#(CD<jzPmzIvF>@o=P99EwyZB(I_~<5&$!B=t7&Rtq^C~bgFi#HR)nM{9
go?OFg#^%B1930{}*^W<-i6LR~e_rX$3VZ>=07R=4p8x;=

delta 125
zcmX@-^udYCCD<jTK#_rgao0w!ojjb5j`6`x@zG7blh5$PG3rj%=2c*K4hRZnWMG=?
z%d5fUWjeW>*Nn-PWAb`lQ#13)G5RbZ4FS%c1_42?!C<8eq%ehD{TK_l_!Abg7I5)y
J{>vLE3;@@vBVGUi

diff --git a/tests/data/acpi/x86/pc/DSDT.acpierst b/tests/data/acpi/x86/pc/DSDT.acpierst
index 0fd79699ebbfb650a5bbe49faecbebf2fc13a86c..06829b9c6c6d726d955dc7c99bc9f42448e22aeb 100644
GIT binary patch
delta 76
zcmV-S0JHy>LiIrkL{mgm^&kKM0kW|QxeN(UK3`KpUt5AmlgtcW0VtCz4Ilyl1Cvq>
iC<0A0lY9*}21o`&Q&d5dJ`OGd0AQ2<4I8r{4)+pssulqN

delta 125
zcmezBINgcMCD<iIT#<o+k!d5>P99E2$M|5U_~<6z$!B=t7<DIW^D3}A2LuH(GB8c{
z<<(&FGM!w`YsTctF?l_&shRoY7=0Fyh5%<zgMc8{V6f5!QkcT7evAcN{0R$L3%GbU
J|K<H51OP~<BESFu

diff --git a/tests/data/acpi/x86/pc/DSDT.acpihmat b/tests/data/acpi/x86/pc/DSDT.acpihmat
index a4dd09e5ef71a47c31be0d9a57e93767f5d15b3c..2fe355ebdbb858fa9247d09112e21712e3eddc45 100644
GIT binary patch
delta 73
zcmV-P0Ji^~P5Vp=L{mgmdnNz?0Vc5uxeN(TL|;=vUt5AmlgtcW0VtCz4Ilyl1Cvq>
fC<075lY9+90!RjvzYR5$3l18Skq{NLKn`6P2n`eu

delta 108
zcmezEGuM~PCD<iot{MXaWBEp|ojjZl?(xA+@zG7blh5$PG3rj%=2c*K4hRZnWMG=?
z%d5fUX+61|*OAGUWAZLuQ!(?&G5RbZ4FS%c1_42?!C<A6-|<SbEo3d=;!T)*kzaJP
I9AB&i0HJIifdBvi

diff --git a/tests/data/acpi/x86/pc/DSDT.bridge b/tests/data/acpi/x86/pc/DSDT.bridge
index 7ef58152d281c1e2c8da5b15bd30f23e61439d69..4d4067c182a6625db1e877408eb7436113884b50 100644
GIT binary patch
delta 76
zcmX?Jv9yBACD<iI)rNtAv3w)fP99EwyZB(I_~<5&$!B=t7&Rtq^C~bgFi#HR)nM{9
go?OFg#^%B1930{}*^W<-i6LR~e_rX$3ViB%082#_s{jB1

delta 125
zcmZ2lalC@dCD<jz-G+gI@x(^1ojjb5j`6`x@zG7blh5$PG3rj%=2c*K4hRZnWMG=?
z%d5fUWjeW>*Nn-PWAb`lQ#13)G5RbZ4FS%c1_42?!C<8eq%ehD{TK_l_!Abg7I5)y
J{>!VO2LR(fBWeHu

diff --git a/tests/data/acpi/x86/pc/DSDT.cphp b/tests/data/acpi/x86/pc/DSDT.cphp
index 1079ff81c1ab05f0d5991835b3a0b014687924f4..045a52e75b7fcd4e5f840a758c548231498b96e4 100644
GIT binary patch
delta 69
zcmV-L0J{IcMxI6rL{mgm9wPt%0nM=rxeN(UTVGQ`Ut5AmlgtcW0VtCz4Ilyl1Cvq>
bC<0ATlY9+w0!Rjv@C`MSJPsPOTn^+E!a5Wv

delta 108
zcmbQ|cEF9xCD<jzL79PpQEnsGP99FjxcFeF_~<6z$!B=t7<DIW^D3}A2LuH(GB8c{
z<<(&F3YuKbTg2qbG5IyGshIiX7=0Fyh5%<zgMc8{V6f83@_f>43t0=ecoQZs5D?w$
I&v#w~08Tv}v;Y7A

diff --git a/tests/data/acpi/x86/pc/DSDT.dimmpxm b/tests/data/acpi/x86/pc/DSDT.dimmpxm
index 34fe3fcad9dc245eb173ca5a9655d17f15bd42ef..205219b99d903555125c4b07fc047c42993eb338 100644
GIT binary patch
delta 96
zcmaFnf5e~5CD<k8h&lrU<IIg*XL&e10^)<6;-i~9CO_bbW7L>z&#S=1z&tsPSA)sT
zb@Bw>NG1=q$**}$rKBdu=(B*-1~_{f1O&MTI|sP>F&1#~Crp+X5Z#=^S0xDmhw>Y!

delta 103
zcmX@&|IDAuCD<k8nK}al<L!-HXL&fig5ran;-i~<CqLkcW7M5&&#S=h91s-D$iOr?
zkynGs*?n?1ZzPi|$K+?crefxkWAs@-8Uma>4FZB(gTYECOYupwE@Um>;@xb*H$f5r
Dad91&

diff --git a/tests/data/acpi/x86/pc/DSDT.hpbridge b/tests/data/acpi/x86/pc/DSDT.hpbridge
index 33c7529f5c8a6ec651f979b3cebadb18774a781f..8fa8b519ec65bd5099c45f4e1c85b11b47a23845 100644
GIT binary patch
delta 76
zcmdn*G}npCCD<iIR*`{$aqdR0ojjcWcJaYZ@zG5llh5$PF=|ZK=2c)~V4fVrtHI=J
gJh_I~jLn11IXJ{|vK^lu6GOt}|Gd(h75L<Z0Vh}#4*&oF

delta 125
zcmbR1wBL!#CD<jzUXg);@!dwQojjb5j`6`x@zG7blh5$PG3rj%=2c*K4hRZnWMG=?
z%d5fUWjeW>*Nn-PWAb`lQ#13)G5RbZ4FS%c1_42?!C<8eq%ehD{TK_l_!Abg7I5)y
J{>!T%3;?JoBF+E+

diff --git a/tests/data/acpi/x86/pc/DSDT.hpbrroot b/tests/data/acpi/x86/pc/DSDT.hpbrroot
index 2661170c833e23ae1985d31512a81a29afc858bd..01719462a72fd6d40ce433dac601e4b94eae574c 100644
GIT binary patch
delta 98
zcmX@DzEYjbCD<ior7!~nWA8?;9Bxj3yZB(I_~<5&$@ScEj2e^gaVsz}Fi&RX(O~j5
zo~+Mf#^%B1930{}`6G{>3`4>KsmU?=EFdib&YlJVL9W5h0j_?G1zh}_FY)|j0{}jp
B8;bw{

delta 131
zcmZ3fep;Q&CD<k8v@in$<GqbsIozC%j`6`x@zG7blk2(T7<DJ#<5pmI4hRZnWMG=a
zqrv25I$4XyjLnt9IXJ{|@_8OTONN96=96ReSwPwXoIMQ!f?R{a8Wu=l3cLC-7I5(=
PEMzU<;@!M~=O-HgoMa_l

diff --git a/tests/data/acpi/x86/pc/DSDT.ipmikcs b/tests/data/acpi/x86/pc/DSDT.ipmikcs
index 688faf83cbd7395e1112ba04303d66e11934bf8d..0ca664688b16baa3a06b8440181de4f17511c6b0 100644
GIT binary patch
delta 76
zcmV-S0JHzNLzY7dL{mgmmLUKD0p+m@xeN(UK3`KpUt5AmlgtcW0VtCz4Ilyl1Cvq>
iC<0A0lY9*}21o`&Q&d5dJ`OGd0AQ2<4I8r{4ww^F-xWOo

delta 125
zcmbQ{yu+ExCD<iohav+5quEBTojjb5j`6`x@zG7blh5$PG3rj%=2c*K4hRZnWMG=?
z%d5fUWjeW>*Nn-PWAb`lQ#13)G5RbZ4FS%c1_42?!C<8eq%ehD{TK_l_!Abg7I5)y
J{>wX47yyb?BK!aV

diff --git a/tests/data/acpi/x86/pc/DSDT.memhp b/tests/data/acpi/x86/pc/DSDT.memhp
index 6ede4361f4b7bf18c496d7ca117310675126bbbf..03ff464ba4e72082fce0921815cfc09ca20b561a 100644
GIT binary patch
delta 76
zcmV-S0JHzUO`S~&L{mgmohASP0b8*OxeN(KKVMTqUt5AmlgtcW0VtCz4Ilyl1Cvq>
iC;~$?lY9*}21o`&Q&d5dJ`OGd0AQ2<4I8r{4xbo4h!ooZ

delta 125
zcmbR1yWf|~CD<iozZwGr<J^s0J9#+W9pi(Y;-i~<C!gVoW7M6j&8xuf91s-D$iOt&
zmsf+y!EACluNjjo$K>_Are@}oWAs@-8Uma>4FZB(gTYD{NMQ=Q`Y{%8@h2=~E#Tta
J{Firu1OUv#BbopJ

diff --git a/tests/data/acpi/x86/pc/DSDT.nohpet b/tests/data/acpi/x86/pc/DSDT.nohpet
index 9d6040733f57f243056ee8f7601af84dd3cf2fa2..b081030f0ed171e52b13e28cfdc8770a04c2806e 100644
GIT binary patch
delta 76
zcmV-S0JHz%LBK%@L{mgmz#sqs0W+}*D+~!wK3`KpUt5AmlRgYy0VtE53?Kpk1CzuI
iC<0A0lkN;Q21o`&Q&d5dunjH(0AQ1G4I8tP4Nwz7&=p4j

delta 125
zcmX@$_{fpVCD<k8kpcq)W6MS^Z5~cX$M|5U_~<6z$#y((jJlKO@+h!72LuH(GB8cv
z&!fTQWjgsKj~SCI$7DrbQ#13)G5RbZ4FS%c1_42?!C<8eq%ehD{TK_l_!Abg7I5)y
J&gTsj1^~BOB9;IE

diff --git a/tests/data/acpi/x86/pc/DSDT.numamem b/tests/data/acpi/x86/pc/DSDT.numamem
index aa9986f74bbd9f20ea9c886901a34122700f33b2..2c98cafbff5db04410b35a1151eaf18723a4dad7 100644
GIT binary patch
delta 76
zcmez7bj69wCD<h-M3I4kQFtTQP99EI`}km|_~<5&$!B=t7&Rtq^C~bgFi#HR)nIZq
gnOwtb#^%B1930{}*^W<-i6LR~e_rX$3VdP005SR$PXGV_

delta 125
zcmccO^v#LOCD<jTOp$?sF?1u>P99Eo$M|5U_~<6z$!B=t7<DIW^D3}A2LuH(GB8c{
z<<($vFq>S?YsTctF?l_&shRoY7=0Fyh5%<zgMc8{V6f5!QkcT7evAcN{0R$L3%GbU
J|K$xA1^~2IBMtxn

diff --git a/tests/data/acpi/x86/pc/DSDT.roothp b/tests/data/acpi/x86/pc/DSDT.roothp
index 86c2ae11dc601008cd4dbbbd34d4e5adcb9236cd..da018dca9e3102e811107994248719ab5278c505 100644
GIT binary patch
delta 76
zcmX?@Fh7CICD<iI-hhFD@#{veojjcWcJaYZ@zG5llh5$PF=|ZK=2c)~V4fVrtHI=J
gJh_I~jLn11IXJ{|vK^lu6GOt}|Gd(h75EgD08^tB$p8QV

delta 125
zcmbQAa4><(CD<jz(SU)0(QPBwP99E2$M|5U_~<6z$!B=t7<DIW^D3}A2LuH(GB8c{
z<<(&FGM!w`YsTctF?l_&shRoY7=0Fyh5%<zgMc8{V6f5!QkcT7evAcN{0R$L3%GbU
J|K(Lu0sw`~B8UJ0

diff --git a/tests/data/acpi/x86/q35/DSDT b/tests/data/acpi/x86/q35/DSDT
index b0bbff7686c9a56129bfa3408e62f142cc482713..fb89ae0ac6d4346e33156e9e4d3718698a0a1a8e 100644
GIT binary patch
delta 76
zcmX@=xY&`)CD<iou>u1FqxnWIc1ccuyZB(I_~<5&$x@PWj2e?GB^8($m?tlg)L`;8
go_tEujLn11IXJ{|a*vcA6GOseUn%L$c~aqQ02K=qHUIzs

delta 108
zcmZ4Nc+`>0CD<k8r~(56W5-4=c1cc0$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKGM#)>(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQOb!80A}|c$^ZZW

diff --git a/tests/data/acpi/x86/q35/DSDT.acpierst b/tests/data/acpi/x86/q35/DSDT.acpierst
index f91cbe55fcfeea319babf7c9a0c6a6ccdc3320d1..46fd25400b7c00ee9149ddb64cb5d5bd73f6a82b 100644
GIT binary patch
delta 76
zcmccSxW$pnCD<ioivj}!<MoYP?2?@RcJaYZ@zG5llcgl%7&RtWN-8ihFi&0}slnuH
gJo%KQ8Jh>2b8v{`<Q^$KCWeH`zEaYg^Q1D^07_OB8UO$Q

delta 108
zcmdnuc+HW^CD<k8ngRm@qsB%qc1cc0$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKGM#)>(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQ7V`X09c|Ot^fc4

diff --git a/tests/data/acpi/x86/q35/DSDT.acpihmat b/tests/data/acpi/x86/q35/DSDT.acpihmat
index 0949fb9d67c70dc882e50501ece421114ad8080b..61c5bd52a42242e85090934e8e45bf01642609d6 100644
GIT binary patch
delta 96
zcmez5eZiZ{CD<k8f+_<8<Cl$G?2?>*F7d%m@zG5llcgl%7&RtWN-8ihFi&0}slnu9
zIr)^NBa;W)WL_y#DXGaZ`Ya%|0nVNV0YR?8&H=7|j0If$36mXVL^t<IrEmiPOXnKE

delta 122
zcmccM{mGllCD<k8lPUuPqw7X4c1cbL_xNC^_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKw4Qua(vj1Z!#Oy_kuzF(vZ9Re<ZdYmNrr?4=96ReSwPwYoIMQ!f?R{a8YkOG
WNwY0vE#Tr!m@F?Nx;aNGg&P1RK_K`5

diff --git a/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator b/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator
index 0fa4daa35cf95f93ba8c15f478460fe4e14e6d9e..3aaa2bbdf54a0d0cade14421e84c6ec5a42f96fa 100644
GIT binary patch
delta 76
zcmV-S0JHzxL%Kr>L{mgmx*-4n0ll#b2N?-QP+wC*Ut5AmlNuRb0VtDs86W}x1CyW`
iC;~)9lgb%c21o`&Q&d5duNp1_0AQ1F8XL2b8cPRMBNdqd

delta 125
zcmdnxe8-u~CD<k8jv@mC<Nu9Z?2?=wLGi&(@zG7blcgl%7<DICN-D5B2LuH(GB8b^
zEvdoe=sx+VWF(U-$7BU5Q#13)G5RbZ4FS%c1_42?!C<8eq%ehD{TK_l_!Abg7I5)y
J&Xe+C2LRVvBHRD~

diff --git a/tests/data/acpi/x86/q35/DSDT.applesmc b/tests/data/acpi/x86/q35/DSDT.applesmc
index a5d032b7d96113c9393036b2ba831adb6d584142..944209adeaa5bbb722431161c404cb51b8209993 100644
GIT binary patch
delta 76
zcmezDc+ru|CD<k8q5=a0qxwcJc1ccuyZB(I_~<5&$x@PWj2e?GB^8($m?tlg)L`;8
go_tEujLn11IXJ{|a*vcA6GOseUn%L$c~Y%x062vd-T(jq

delta 108
zcmccU_}P)mCD<k8vjPJHW5q@;c1cc0$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKGM#)>(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQL2Cq0GY8KasU7T

diff --git a/tests/data/acpi/x86/q35/DSDT.bridge b/tests/data/acpi/x86/q35/DSDT.bridge
index 3464f552974672bde25eb15f1c93c309c57ef5cb..d9938dba8fa5d405f7696c0dbdc24f3ae42ec934 100644
GIT binary patch
delta 76
zcmaD9dmxs}CD<k8fF1(_WAH{Uc1ccuyZB(I_~<5&$x@PWj2e?GB^8($m?tlg)L`;8
go_tEujLn11IXJ{|a*vcA6GOseUn%L$c~T`J07!fl8UO$Q

delta 108
zcmX>Q`zV&nCD<k8ksbpB<C2YB?2??0j`6`x@zG7blcgl%7<DICN-D5B2LuH(GB8b^
zEvdoeWjgt&q#2Vd$K=0~refxkWAs@-8Uma>4FZB(gTYEC8%jyDEo3d=;!T*mQATug
IqEx&H0I`T3t^fc4

diff --git a/tests/data/acpi/x86/q35/DSDT.core-count b/tests/data/acpi/x86/q35/DSDT.core-count
index 08f5d5f54bcb61235b98fc85bb814046dd038c13..a24b04cbdbf09383b933a42a2a15182545543a87 100644
GIT binary patch
delta 71
zcmV-N0J#5?W$|PRL{mgmaWVh^0k5$N2N?>DTLE8FLSI{gNRt~GUI8eRdKn-B00Wbu
d87KmZP_xS!vjPH029tmsHIvL78nf&irxpI;78U>i

delta 110
zcmeyEGC7sYCD<iovJnFV<HwC$?2=slv5fJ-PVv!AzLTXT;}~@(S4k?cI|l>>Gcqtu
zo+GKj)E>0?nB-<ACRdKh)iS1H=96ReSwK1hoIMQ!f?R{aYA3Ikk!D-STENAdFxfy}
Kbn|_gNumG_&>%qo

diff --git a/tests/data/acpi/x86/q35/DSDT.core-count2 b/tests/data/acpi/x86/q35/DSDT.core-count2
index d29a7108f82110ce9f9b4e006501215d41c5420a..3a0cb8c581c8cc630a2ec21712b7f8b75fcad1c8 100644
GIT binary patch
delta 100
zcmeC_V0zWg#N`s~67s5<fq{{6BNw|QS6eY#e6Uk|bd$$qX~{T7jmcG#3QP>llNU;A
zFg0gvJ}nu~!{os>Sx3!ON@{Y9J_|^3fU~DTK#*&&bAYQKV*wX`!sJ8^(ames;$s1w
CTO4Nq

delta 126
zcmaFW&eYSv#N`s~62jBMz`*FVk&9iDtD}@HKG-Qfy2*F4v}7Ek?&K;-1$O6vpkPJ@
zrpa?8HJBQ*HXoCW=izkaa1IV}<cwCH?5H6;d6k-kBtyai^T{##EFk>>&YlJVL9W4I
aos*;0q}dj-7I5(<Ot#k$-Q2Af9}57JAR_hv

diff --git a/tests/data/acpi/x86/q35/DSDT.cphp b/tests/data/acpi/x86/q35/DSDT.cphp
index 7fd59bf6702c04a622f05ae356a2ea37312ab403..20955d0aa30120553da35d5a6640055d26255cf9 100644
GIT binary patch
delta 73
zcmV-P0Ji^?Me{@oL{mgmb0Po$0h_T32N?-ZTVGQ`Ut5AmlNuRb0VtDs86W}x1CyW`
fC<0ATlgb%#0!RjvJ{mQXiW(Y|5FHh>zZ%vD0Bsc$

delta 108
zcmezDGS!vKCD<iosuBYO<C~3K?2??0aq+=U@zG7blcgl%7<DICN-D5B2LuH(GB8b^
zEvdoe6*T#%WD%1q$7D+>Q!(?&G5RbZ4FS%c1_42?!C<A6bETx&7P1y_@g__TkP+QH
ISLzx&0Ea9dh5!Hn

diff --git a/tests/data/acpi/x86/q35/DSDT.cxl b/tests/data/acpi/x86/q35/DSDT.cxl
index 613a40b957dab99fd97b465bd89f6afac3a5b047..3c34d4dcab16783abe65f6fa5e64eb69d40795fb 100644
GIT binary patch
delta 76
zcmey9b}Nm`CD<h-%9w$HF?%ByyCkQ-U3{=pd~}n?WGTrwMvcjpk_t==%##;LYB2d4
gPd+7S#^%B1930{}xkpNmi6LRKuaxxWJSjd&07#7#wg3PC

delta 108
zcmcbW_9u<YCD<jT#+ZSDanD9Bc1cc0$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKGM#)>(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQR=4z0JAtBNdN!<

diff --git a/tests/data/acpi/x86/q35/DSDT.dimmpxm b/tests/data/acpi/x86/q35/DSDT.dimmpxm
index 1db0bf454a203006f866e6752d06422ae675cbd3..228374b55bd544116e359f659e546fc66cf8a895 100644
GIT binary patch
delta 91
zcmdn(H`9;HCD<iIQk{W;F>NE4v?QlTKzy)Md~}n?WIf3^Mvck6k_t==%#*iBYB0IE
tPQE7@$>hN{*;2|>QfhLHJ_|@~fU~DTK#*&&bAYQKV*wZc<|R_oc>rS!7_9&R

delta 132
zcmbQ~x7&})CD<jzTAhJ`am7Y1X-Q76p!i^?_~<6z$$FA;jJlJ1B^B761A>AX8JH%o
zm(*Z#cAtDxGLp@e!#Oy_aq>bbJxhj!1?H1u^jSdq0-QY!0)kwF!8#U5VG6tYF&1#~
QCoE(w;NsofBsHA}0HD?-HUIzs

diff --git a/tests/data/acpi/x86/q35/DSDT.ipmibt b/tests/data/acpi/x86/q35/DSDT.ipmibt
index 25f43ae8efb55364a739e6b5e3cb4e71e61862b0..45f911ada5645f158f3d6c0c430ec1d52cadc5d8 100644
GIT binary patch
delta 76
zcmbQ>^v;pXCD<k8odN>`WA;Wac1ccuyZB(I_~<5&$x@PWj2e?GB^8($m?tlg)L`;8
go_tEujLn11IXJ{|a*vcA6GOseUn%L$c~Xnm06Z5J7XSbN

delta 108
zcmaFoIKhd_CD<iIK#_rgarZ_pc1cc0$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKGM#)>(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQL2{>06xVXs{jB1

diff --git a/tests/data/acpi/x86/q35/DSDT.ipmismbus b/tests/data/acpi/x86/q35/DSDT.ipmismbus
index 32bcd25bda9e9d2775790385f8da6a11e9d5cb46..e5d6811bee1233d74236453c49060390d74d4416 100644
GIT binary patch
delta 76
zcmV-S0JHy{Li<4qL{mgm`yc=S0o<_)2N?-ZK3`KpUt5AmlNuRb0VtDs86W}x1CyW`
iC<0A0lgb%321o`&Q&d5dj2bQi0AQ0%8XL228m|Uoloh-H

delta 108
zcmezEIM<2GCD<iIR*`{$QD-9;yCkQhV|=hvd~}oVWGTrwM%~Gkk_zn30YSlx3`~<}
zOKLEAnNB_`X~yKrG5N2gshIiX7=0Fyh5%<zgMc8{V6f83hEmdO3t0=ecoQaXlo8#W
IC^d@>02)FaPyhe`

diff --git a/tests/data/acpi/x86/q35/DSDT.ivrs b/tests/data/acpi/x86/q35/DSDT.ivrs
index f91cbe55fcfeea319babf7c9a0c6a6ccdc3320d1..46fd25400b7c00ee9149ddb64cb5d5bd73f6a82b 100644
GIT binary patch
delta 76
zcmccSxW$pnCD<ioivj}!<MoYP?2?@RcJaYZ@zG5llcgl%7&RtWN-8ihFi&0}slnuH
gJo%KQ8Jh>2b8v{`<Q^$KCWeH`zEaYg^Q1D^07_OB8UO$Q

delta 108
zcmdnuc+HW^CD<k8ngRm@qsB%qc1cc0$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegSKGM#)>(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQ7V`X09c|Ot^fc4

diff --git a/tests/data/acpi/x86/q35/DSDT.memhp b/tests/data/acpi/x86/q35/DSDT.memhp
index be90eb71d8dda8fe54c79ffffe103986ee06ae3a..5ce081187a578ba7145a9ba20d30be36c13b7663 100644
GIT binary patch
delta 76
zcmbQ@^U0gbCD<k8lPUuPqvl2~c1ccG`}km|_~<5&$x@PWj2e?GB^8($m?tlg)L?Qp
gnS4spjLn11IXJ{|a*vcA6GOseUn%L$c~Z-`0W+Tz@c;k-

delta 108
zcmez5J;jI1CD<iIM2&%gF>50iyCkQ(V|=hvd~}oVWGTrwM%~Gkk_zn30YSlx3`~<}
zOKLDVm`y$^X~yKrG5N2gshIiX7=0Fyh5%<zgMc8{V6f83hEmdO3t0=ecoQaXlo8#W
IC^eBA05Cxvg#Z8m

diff --git a/tests/data/acpi/x86/q35/DSDT.mmio64 b/tests/data/acpi/x86/q35/DSDT.mmio64
index 01f276a6aff38a1d4f58640a9e6d120fc9a04b61..bdf36c4d575bfc4eb2eac3f00c9b7b4270f88677 100644
GIT binary patch
delta 76
zcmZ4Q)$7IO66_MftIEK@_;Mo`yCkQpeSEM}d~}n?WGTrwMvcjpk_t==%##;LYA`vQ
gOg<%P#^%B1930{}xkpNmi6LRKuaxxWJgI|R01#LdnE(I)

delta 108
zcmeD6TJOc>66_M9ugbu{sJ)SkU6Rw?F+SKSKDx<wvXo>TqweHNNd<Q2fS_PT2Byig
zB{i5F%qAa|G-Gn*nEY4LRLp#Gj6MrULx8iVK|qjeFj(niLn&#tg{%c!ya|&x%7|`G
Ilv=|D00OujEdT%j

diff --git a/tests/data/acpi/x86/q35/DSDT.multi-bridge b/tests/data/acpi/x86/q35/DSDT.multi-bridge
index 1bd2ee8d2ebd3c9e0ed89a86478691f2e06f2590..1db43a69e4c2affd8bd678bbef4d3c228380288e 100644
GIT binary patch
delta 76
zcmdm$J|msWCD<iohA{&Jqt8Yzc1ccuyZB(I_~<5&$x@PWj2e?GB^8($m?tlg)L`;8
go_tEujLn11IXJ{|a*vcA6GOseUn%L$c~U--04u2!kpKVy

delta 108
zcmbP{zAK%}CD<iomoWna<J^s0?2??0j`6`x@zG7blcgl%7<DICN-D5B2LuH(GB8b^
zEvdoeWjgt&q#2Vd$K=0~refxkWAs@-8Uma>4FZB(gTYEC8%jyDEo3d=;!T*mQATug
IqLjHL0EhJ+B>(^b

diff --git a/tests/data/acpi/x86/q35/DSDT.noacpihp b/tests/data/acpi/x86/q35/DSDT.noacpihp
index 45cc2bcffa42d73db110afd5075556dcfe5d9936..8bc16887e1c963c61aaecf71712a09c0554f6d67 100644
GIT binary patch
delta 75
zcmX@>u-bvkCD<iITY-Ur@zh4HUE-YncJaYZ@zG5llh2CBF=|ZKkx*b_V4fT-p~2*9
fJh@iFjLn11IXJ{|vc04p6GOrzN$Jgsk~-`FEX)(a

delta 125
zcmZ4OaMpp#CD<jzSAl_nQF<fSE^$sr$M|5U_~<6z$!Epm7<DJ>NGPy72LuH(GB8c{
zlh9!DGM!u@VaDXjF?oZ8shRoY7=0Fyh5%<zgMc8{V6f5!QkcT7evAcN{0R$L3%GbU
J|C7*V2LN@gB6R=&

diff --git a/tests/data/acpi/x86/q35/DSDT.nohpet b/tests/data/acpi/x86/q35/DSDT.nohpet
index f110504b9c813aa07802fc17d2869596a2eeca6f..c13e45e3612646cc2e30f00b3b7e53335da816ea 100644
GIT binary patch
delta 76
zcmdn)Fx7#}CD<iIRDpqkkzpfOr39zHU3{=pd~}n?<Q|DQMvcj@B@~z#m?sNKYB2d4
gPqvXXWAk8h4i0gg{7+Jki6LR~eo5)g4<y6c00jRO-2eap

delta 125
zcmbR0u-$>nCD<jzT!DdsF>oVSr39y=V|=hvd~}oV<Q|DQM%~G;B^2151A>AX8JH&X
zN@_59nNBvBG-Gn*n4B+ZYGyt;MxO<wA;8(wARx#!7_4-G6sEANA7cR*f5Jl60xsUo
IdnF^-07yk4(f|Me

diff --git a/tests/data/acpi/x86/q35/DSDT.numamem b/tests/data/acpi/x86/q35/DSDT.numamem
index 6090958f39875f5806e72e23f32cb4b3ae840627..ba6669437e65952f24516ded954b33fe54bdedfb 100644
GIT binary patch
delta 76
zcmX@@xYCi!CD<ior2+#3<HL<y?2??W_VK|^@zG5llcgl%7&RtWN-8ihFi&0}slnuI
gGWnFG8Jh>2b8v{`<Q^$KCWeH`zEaYg^Q2<g06<z4<^TWy

delta 108
zcmZ4Kc-oQ6CD<k8v;qSIqw+>Bc1ccm$M|5U_~<6z$x@PWjJlI6B^B761A>AX8JH%|
zmegQ!Fq?c-(u~QKWAa}~Q!(?&G5RbZ4FS%c1_42?!C<A64W*>n7P1y_@g_{(C?mQ#
IQObi207+UMdH?_b

diff --git a/tests/data/acpi/x86/q35/DSDT.pvpanic-isa b/tests/data/acpi/x86/q35/DSDT.pvpanic-isa
index 7a8e568315a43f1fa98068d8e78995c98064fb91..6ad42873e91c80cef5a42224cb4d31936dad59b4 100644
GIT binary patch
delta 76
zcmZ4G)ZxVC66_Mfp~%3%_;Mo`yCkQ-U3{=pd~}n?WGTrwMvcjpk_t==%##;LYB2d4
gPd+7S#^%B1930{}xkpNmi6LRKuaxxWJgGfw010Fie*gdg

delta 108
zcmeBhTIIy$66_M9rO3d*Xtj}xU6Rw$F+SKSKDx<wvXo>TqweHNNd<Q2fS_PT2Byig
zB{i75OeY_eG-Gn*nEY4LRLp#Gj6MrULx8iVK|qjeFj(niLn&#tg{%c!ya|&x%7|`G
Ilv>UP0Qtck6951J

diff --git a/tests/data/acpi/x86/q35/DSDT.thread-count b/tests/data/acpi/x86/q35/DSDT.thread-count
index 08f5d5f54bcb61235b98fc85bb814046dd038c13..a24b04cbdbf09383b933a42a2a15182545543a87 100644
GIT binary patch
delta 71
zcmV-N0J#5?W$|PRL{mgmaWVh^0k5$N2N?>DTLE8FLSI{gNRt~GUI8eRdKn-B00Wbu
d87KmZP_xS!vjPH029tmsHIvL78nf&irxpI;78U>i

delta 110
zcmeyEGC7sYCD<iovJnFV<HwC$?2=slv5fJ-PVv!AzLTXT;}~@(S4k?cI|l>>Gcqtu
zo+GKj)E>0?nB-<ACRdKh)iS1H=96ReSwK1hoIMQ!f?R{aYA3Ikk!D-STENAdFxfy}
Kbn|_gNumG_&>%qo

diff --git a/tests/data/acpi/x86/q35/DSDT.thread-count2 b/tests/data/acpi/x86/q35/DSDT.thread-count2
index d29a7108f82110ce9f9b4e006501215d41c5420a..3a0cb8c581c8cc630a2ec21712b7f8b75fcad1c8 100644
GIT binary patch
delta 100
zcmeC_V0zWg#N`s~67s5<fq{{6BNw|QS6eY#e6Uk|bd$$qX~{T7jmcG#3QP>llNU;A
zFg0gvJ}nu~!{os>Sx3!ON@{Y9J_|^3fU~DTK#*&&bAYQKV*wX`!sJ8^(ames;$s1w
CTO4Nq

delta 126
zcmaFW&eYSv#N`s~62jBMz`*FVk&9iDtD}@HKG-Qfy2*F4v}7Ek?&K;-1$O6vpkPJ@
zrpa?8HJBQ*HXoCW=izkaa1IV}<cwCH?5H6;d6k-kBtyai^T{##EFk>>&YlJVL9W4I
aos*;0q}dj-7I5(<Ot#k$-Q2Af9}57JAR_hv

diff --git a/tests/data/acpi/x86/q35/DSDT.tis.tpm12 b/tests/data/acpi/x86/q35/DSDT.tis.tpm12
index 29a416f0508655d2bfde01fff4d25ad7f89581d9..e381ce4cbf2b11f56a2d0537db4d21acc97450c9 100644
GIT binary patch
delta 76
zcmZ4N*67CN66_MfsLa5?n7)yVU6Rw^E<V^PKDx<cvXo>TqsHV)Nd+bb=E(~rHJE&j
gC!dluWAk8h4i0gg+#{vO#E>xAS4w(wp43(j0Oqn2?EnA(

delta 108
zcmZp4TkOW=66_M9tjxf`xML$1yCkQhV|=hvd~}oVWGTrwM%~Gkk_zn30YSlx3`~<}
zOKLEAnNB_`X~yKrG5N2gshIiX7=0Fyh5%<zgMc8{V6f83hEmdO3t0=ecoQaXlo8#W
ID7AnC03(eZfdBvi

diff --git a/tests/data/acpi/x86/q35/DSDT.tis.tpm2 b/tests/data/acpi/x86/q35/DSDT.tis.tpm2
index 59288f02c43cf2efc1555599131fde05dbbaa1cd..a09253042ce4a715922027245de8a2ab7449c5b7 100644
GIT binary patch
delta 76
zcmdn%HrtKMCD<iITA6`?QE?*|yCkQ-U3{=pd~}n?WGTrwMvcjpk_t==%##;LYB2d4
gPd+7S#^%B1930{}xkpNmi6LRKuaxxWJgM^>0PFk|4*&oF

delta 108
zcmbR3w%3izCD<jzR+)i;v1lU~yCkQhV|=hvd~}oVWGTrwM%~Gkk_zn30YSlx3`~<}
zOKLEAnNB_`X~yKrG5N2gshIiX7=0Fyh5%<zgMc8{V6f83hEmdO3t0=ecoQaXlo8#W
ID7A|N04diUqW}N^

diff --git a/tests/data/acpi/x86/q35/DSDT.type4-count b/tests/data/acpi/x86/q35/DSDT.type4-count
index eaca76e8e61eb62f75dbdf093e803eea34330deb..edc23198cdb47a981bcbc82bc8e392b815abb554 100644
GIT binary patch
delta 106
zcmdl#k#X)sMlP3Nmyo$03=E97H*&E{a&_)wiVt>*k8bjqEG-$ws4=-pQh|wqdGbO@
z4W_oun@>xgW@Yzaa}Ex1<ec27AU;V+Ookz0fz;#}eHM_u0B28wfFRdk=Kxnf#sV(>
J&CCjWGytMf9?Ad!

delta 135
zcmbO`k#YY-MlP3NmyrD)3=E928@bpexw;Q9#RogZM>qLSmX?fT)SX-<sle_W5ERVF
zz%+S|qy|&-*3HKxPqVVQaySQvI8IW~vt&qEU_LoUp9Q2Zz}eFvAjmZstYd)`rm(9Y
UV*wX`!a~*pF5b-#<@aa+0B74LfB*mh

diff --git a/tests/data/acpi/x86/q35/DSDT.viot b/tests/data/acpi/x86/q35/DSDT.viot
index de0942a13dc65b75e78e66ee8df904b31bf6079a..4c93dfd5c4b362714d3f9aa606a838d4625b3369 100644
GIT binary patch
delta 76
zcmdm1G^L2kCD<iI#FBx5k#i##yCkQ-U3{=pd~}n?WGTrwMvcjpk_t==%##;LYB2d4
gPd+7S#^%B1930{}xkpNmi6LRKuaxxWJgF0M0RLeWUjP6A

delta 108
zcmbPIw5^ECCD<jz%#wkDF=`_hyCkQhV|=hvd~}oVWGTrwM%~Gkk_zn30YSlx3`~<}
zOKLEAnNB_`X~yKrG5N2gshIiX7=0Fyh5%<zgMc8{V6f83hEmdO3t0=ecoQaXlo8#W
ID79G*07YCK^8f$<

diff --git a/tests/data/acpi/x86/q35/DSDT.xapic b/tests/data/acpi/x86/q35/DSDT.xapic
index 9059812b5892ba7ac5c9bd312fd9f45a4f59f105..d4acd851c62c956436a436f9fa6d08fc5f370fa7 100644
GIT binary patch
delta 107
zcmZ26ovCd)6PHV{OGsNc0|VpRja=-KTupD;;)9*yqnkV?OH0NvYD}(@RA6FYp1e>}
zgQ@@F=F^g=dD%VKoP$FgIVU%2h)=fC5R+j@SRgeyMxO<wF~Hf=ARx#!*g3$}kFkJ@
Ke>1bj(qsVVzaPi|

delta 135
zcmZph&a`4W6PHV{OUR0D1_nm`ja=-KTrKa};)9*yqnmsuOH0Nv>Q1hbRA6@w2nuFo
zV46HfQiG}I@#bTar+L|2Ih=z-94Be$Su!LnFrOTw&jQjH;OuD-5ab#R*0DeeQ`psy
Tv4D#|VIgY)7w_hW>PwRWojNEz

-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 06/13] hw/cxl: Check for zero length features in cmd_features_set_feature()
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (4 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 05/13] tests/acpi: update expected blobs Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 07/13] qapi: fix device-sync-config since-version Michael S. Tsirkin
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jonathan Cameron, Fan Ni

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

Zero length data for features doesn't make any sense so exclude that case
early. This fixes the undefined behavior reported by coverity for a zero
length memcpy().

Resolves CID 1564900 and 1564901

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20241108175814.1248278-1-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/cxl/cxl-mailbox-utils.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/cxl/cxl-mailbox-utils.c b/hw/cxl/cxl-mailbox-utils.c
index 2d4d62c454..ce9aa18364 100644
--- a/hw/cxl/cxl-mailbox-utils.c
+++ b/hw/cxl/cxl-mailbox-utils.c
@@ -1288,6 +1288,10 @@ static CXLRetCode cmd_features_set_feature(const struct cxl_cmd *cmd,
     set_feat_info->data_offset = hdr->offset;
     bytes_to_copy = len_in - sizeof(CXLSetFeatureInHeader);
 
+    if (bytes_to_copy == 0) {
+        return CXL_MBOX_INVALID_PAYLOAD_LENGTH;
+    }
+
     if (qemu_uuid_is_equal(&hdr->uuid, &patrol_scrub_uuid)) {
         if (hdr->version != CXL_MEMDEV_PS_SET_FEATURE_VERSION) {
             return CXL_MBOX_UNSUPPORTED;
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 07/13] qapi: fix device-sync-config since-version
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (5 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 06/13] hw/cxl: Check for zero length features in cmd_features_set_feature() Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 08/13] hw/acpi: Fix size of HID in build_append_srat_acpi_device_handle() Michael S. Tsirkin
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Vladimir Sementsov-Ogievskiy, Paolo Bonzini,
	Daniel P. Berrangé, Eduardo Habkost, Eric Blake,
	Markus Armbruster

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Actually it comes in 9.2, not 9.1.

Fixes: 3f98408e2e ("qapi: introduce device-sync-config")
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-Id: <20241108071957.727286-1-vsementsov@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 qapi/qdev.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi/qdev.json b/qapi/qdev.json
index 2a581129c9..25cbcf977b 100644
--- a/qapi/qdev.json
+++ b/qapi/qdev.json
@@ -182,7 +182,7 @@
 #
 # @unstable: The command is experimental.
 #
-# Since: 9.1
+# Since: 9.2
 ##
 { 'command': 'device-sync-config',
   'features': [ 'unstable' ],
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 08/13] hw/acpi: Fix size of HID in build_append_srat_acpi_device_handle()
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (6 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 07/13] qapi: fix device-sync-config since-version Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 09/13] qapi/qom: Change Since entry for AcpiGenericPortProperties to 9.2 Michael S. Tsirkin
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Jonathan Cameron, Daniel P . Berrangé,
	Igor Mammedov, Ani Sinha

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

The size should always be 8 so hard code that. By coincidience the
incorrect use of sizeof(char *) is 8 on 64 bit hosts, but was caught
by CI testing with i686 as the host.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Closes: https://lore.kernel.org/qemu-devel/20241104110025-mutt-send-email-mst@kernel.org/
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20241107123446.902801-2-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 hw/acpi/aml-build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index 6a76626177..72282b173e 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -1960,7 +1960,7 @@ static void build_append_srat_acpi_device_handle(GArray *table_data,
 {
     assert(strlen(hid) == 8);
     /* Device Handle - ACPI */
-    for (int i = 0; i < sizeof(hid); i++) {
+    for (int i = 0; i < 8; i++) {
         build_append_int_noprefix(table_data, hid[i], 1);
     }
     build_append_int_noprefix(table_data, uid, 4);
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 09/13] qapi/qom: Change Since entry for AcpiGenericPortProperties to 9.2
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (7 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 08/13] hw/acpi: Fix size of HID in build_append_srat_acpi_device_handle() Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 10/13] bios-tables-test: Allow for new acpihmat-generic-x test data Michael S. Tsirkin
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Jonathan Cameron, Daniel P . Berrangé,
	Paolo Bonzini, Eduardo Habkost, Eric Blake, Markus Armbruster

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

This feature was only applied during the 9.2 cycle, so reflect
that rather than 9.1.

Reported-by: Daniel P. Berrangé <berrange@redhat.com>
Closes: https://lore.kernel.org/qemu-devel/ZyngEiwmYeZ-DvCy@redhat.com/
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20241107123446.902801-3-Jonathan.Cameron@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
 qapi/qom.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi/qom.json b/qapi/qom.json
index a8beeabf1f..28ce24cd8d 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -877,7 +877,7 @@
 #     complex as there may be interleaving across multiple devices
 #     and shared links in the path.
 #
-# Since: 9.1
+# Since: 9.2
 ##
 { 'struct': 'AcpiGenericPortProperties',
   'data': { 'pci-bus': 'str',
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 10/13] bios-tables-test: Allow for new acpihmat-generic-x test data.
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (8 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 09/13] qapi/qom: Change Since entry for AcpiGenericPortProperties to 9.2 Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 11/13] bios-tables-test: Add complex SRAT / HMAT test for GI GP Michael S. Tsirkin
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jonathan Cameron, Igor Mammedov, Ani Sinha

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

The test to be added exercises many corner cases of the SRAT and HMAT table
generation.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-Id: <20241107123446.902801-4-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-allowed-diff.h     | 5 +++++
 tests/data/acpi/x86/q35/APIC.acpihmat-generic-x | 0
 tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x | 0
 tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x | 0
 tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x | 0
 tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x | 0
 6 files changed, 5 insertions(+)
 create mode 100644 tests/data/acpi/x86/q35/APIC.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x
 create mode 100644 tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..3c0967078f 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,6 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/x86/q35/APIC.acpihmat-generic-x",
+"tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x",
+"tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x",
+"tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x",
+"tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x",
diff --git a/tests/data/acpi/x86/q35/APIC.acpihmat-generic-x b/tests/data/acpi/x86/q35/APIC.acpihmat-generic-x
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x b/tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x b/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x b/tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x b/tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x
new file mode 100644
index 0000000000..e69de29bb2
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 11/13] bios-tables-test: Add complex SRAT / HMAT test for GI GP
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (9 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 10/13] bios-tables-test: Allow for new acpihmat-generic-x test data Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:57 ` [PULL 12/13] bios-tables-test: Add data for complex numa test (GI, GP etc) Michael S. Tsirkin
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jonathan Cameron, Igor Mammedov, Ani Sinha

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: <20241107123446.902801-5-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 | 97 ++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)

diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index e79f3a03df..16d0ffbdf6 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1936,6 +1936,101 @@ 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.arch    = "x86";
+    data.variant = ".acpihmat-generic-x";
+    test_acpi_one(" -machine hmat=on,cxl=on"
+                  " -smp 3,sockets=3"
+                  " -m 128M,maxmem=384M,slots=2"
+                  " -device pcie-root-port,chassis=1,id=pci.1"
+                  " -device pci-testdev,bus=pci.1,"
+                  "multifunction=on,addr=00.0"
+                  " -device pci-testdev,bus=pci.1,addr=00.1"
+                  " -device pci-testdev,bus=pci.1,id=gidev,addr=00.2"
+                  " -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, const char *arch)
 {
@@ -2414,6 +2509,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



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 12/13] bios-tables-test: Add data for complex numa test (GI, GP etc)
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (10 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 11/13] bios-tables-test: Add complex SRAT / HMAT test for GI GP Michael S. Tsirkin
@ 2024-11-27 13:57 ` Michael S. Tsirkin
  2024-11-27 13:58 ` [PULL 13/13] vhost: fail device start if iotlb update fails Michael S. Tsirkin
  2024-11-28 13:40 ` [PULL 00/13] virtio,pc,pci: bug fixes, new test Peter Maydell
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jonathan Cameron, Igor Mammedov, Ani Sinha

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

Given this is a new configuration, there are affects on APIC, CEDT
and DSDT, but the key elements are in SRAT (plus related data in
HMAT).  The configuration has node to exercise many different combinations.

0) CPUs + Memory
1) GI only
2) GP only
3) CPUS only
4) Memory only
5) CPUs + HP memory

GI node, GP Node, Memory only node, hotplug memory
only node, latency and bandwidth such that in Linux Access0
(any initiator) and Access1 (CPU initiators only) given different
answers.  Following cropped to remove details of each entry.

[000h 0000 004h]                   Signature : "SRAT"    [System Resource Affinity Table]
...
[030h 0048 001h]               Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
...
[032h 0050 001h]     Proximity Domain Low(8) : 00
[033h 0051 001h]                     Apic ID : 00
...
[040h 0064 001h]               Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
...
[042h 0066 001h]     Proximity Domain Low(8) : 03
[043h 0067 001h]                     Apic ID : 01
...
[050h 0080 001h]               Subtable Type : 00 [Processor Local APIC/SAPIC Affinity]
...
[052h 0082 001h]     Proximity Domain Low(8) : 05
[053h 0083 001h]                     Apic ID : 02
...
[060h 0096 001h]               Subtable Type : 01 [Memory Affinity]
...
[062h 0098 004h]            Proximity Domain : 00000000
...
[068h 0104 008h]                Base Address : 0000000000000000
[070h 0112 008h]              Address Length : 00000000000A0000
...
[088h 0136 001h]               Subtable Type : 01 [Memory Affinity]
...
[08Ah 0138 004h]            Proximity Domain : 00000000
...
[090h 0144 008h]                Base Address : 0000000000100000
[098h 0152 008h]              Address Length : 0000000003F00000
...
[0B0h 0176 001h]               Subtable Type : 01 [Memory Affinity]
...
[0B2h 0178 004h]            Proximity Domain : 00000004
...
[0B8h 0184 008h]                Base Address : 0000000004000000
[0C0h 0192 008h]              Address Length : 0000000004000000
... some zero length entries follow...

[1A0h 0416 001h]               Subtable Type : 05 [Generic Initiator Affinity]
[1A1h 0417 001h]                      Length : 20

[1A2h 0418 001h]                   Reserved1 : 00
[1A3h 0419 001h]          Device Handle Type : 01
[1A4h 0420 004h]            Proximity Domain : 00000001
[1A8h 0424 010h]               Device Handle : 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00
[1B8h 0440 004h]       Flags (decoded below) : 00000001
                                     Enabled : 1
                  Architectural Transactions : 0
[1BCh 0444 004h]                   Reserved2 : 00000000

[1C0h 0448 001h]               Subtable Type : 06 [Generic Port Affinity]
[1C1h 0449 001h]                      Length : 20

[1C2h 0450 001h]                   Reserved1 : 00
[1C3h 0451 001h]          Device Handle Type : 00
[1C4h 0452 004h]            Proximity Domain : 00000002
[1C8h 0456 010h]               Device Handle : 41 43 50 49 30 30 31 36 40 00 00 00 00 00 00 00
[1D8h 0472 004h]       Flags (decoded below) : 00000001
                                     Enabled : 1
                  Architectural Transactions : 0
[1DCh 0476 004h]                   Reserved2 : 00000000

[1E0h 0480 001h]               Subtable Type : 01 [Memory Affinity]
...
[1E2h 0482 004h]            Proximity Domain : 00000005
...
[1E8h 0488 008h]                Base Address : 0000000100000000
[1F0h 0496 008h]              Address Length : 0000000090000000

Example block from HMAT:
[0F0h 0240 002h]              Structure Type : 0001 [System Locality Latency and Bandwidth Information]
[0F2h 0242 002h]                    Reserved : 0000
[0F4h 0244 004h]                      Length : 00000078
[0F8h 0248 001h]       Flags (decoded below) : 00
                            Memory Hierarchy : 0
                   Use Minimum Transfer Size : 0
                    Non-sequential Transfers : 0
[0F9h 0249 001h]                   Data Type : 03
[0FAh 0250 001h]       Minimum Transfer Size : 00
[0FBh 0251 001h]                   Reserved1 : 00
[0FCh 0252 004h] Initiator Proximity Domains # : 00000004
[100h 0256 004h]  Target Proximity Domains # : 00000006
[104h 0260 004h]                   Reserved2 : 00000000
[108h 0264 008h]             Entry Base Unit : 0000000000000004
[110h 0272 004h] Initiator Proximity Domain List : 00000000
[114h 0276 004h] Initiator Proximity Domain List : 00000001
[118h 0280 004h] Initiator Proximity Domain List : 00000003
[11Ch 0284 004h] Initiator Proximity Domain List : 00000005
[120h 0288 004h] Target Proximity Domain List : 00000000
[124h 0292 004h] Target Proximity Domain List : 00000001
[128h 0296 004h] Target Proximity Domain List : 00000002
[12Ch 0300 004h] Target Proximity Domain List : 00000003
[130h 0304 004h] Target Proximity Domain List : 00000004
[134h 0308 004h] Target Proximity Domain List : 00000005
[138h 0312 002h]                       Entry : 00C8
[13Ah 0314 002h]                       Entry : 0000
[13Ch 0316 002h]                       Entry : 0032
[13Eh 0318 002h]                       Entry : 0000
[140h 0320 002h]                       Entry : 0032
[142h 0322 002h]                       Entry : 0064
[144h 0324 002h]                       Entry : 0019
[146h 0326 002h]                       Entry : 0000
[148h 0328 002h]                       Entry : 0064
[14Ah 0330 002h]                       Entry : 0000
[14Ch 0332 002h]                       Entry : 00C8
[14Eh 0334 002h]                       Entry : 0019
[150h 0336 002h]                       Entry : 0064
[152h 0338 002h]                       Entry : 0000
[154h 0340 002h]                       Entry : 0032
[156h 0342 002h]                       Entry : 0000
[158h 0344 002h]                       Entry : 0032
[15Ah 0346 002h]                       Entry : 0064
[15Ch 0348 002h]                       Entry : 0064
[15Eh 0350 002h]                       Entry : 0000
[160h 0352 002h]                       Entry : 0032
[162h 0354 002h]                       Entry : 0000
[164h 0356 002h]                       Entry : 0032
[166h 0358 002h]                       Entry : 00C8

Note the zeros represent entries where the target node has no
memory.  These could be surpressed but it isn't 'wrong' to provide
them and it is (probably) permissible under ACPI to hotplug memory
into these nodes later.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Message-Id: <20241107123446.902801-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-allowed-diff.h     |   5 -----
 tests/data/acpi/x86/q35/APIC.acpihmat-generic-x | Bin 0 -> 136 bytes
 tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x | Bin 0 -> 68 bytes
 tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x | Bin 0 -> 12565 bytes
 tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x | Bin 0 -> 360 bytes
 tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x | Bin 0 -> 520 bytes
 6 files changed, 5 deletions(-)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index 3c0967078f..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,6 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/x86/q35/APIC.acpihmat-generic-x",
-"tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x",
-"tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x",
-"tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x",
-"tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x",
diff --git a/tests/data/acpi/x86/q35/APIC.acpihmat-generic-x b/tests/data/acpi/x86/q35/APIC.acpihmat-generic-x
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..317ddb3fbed94e4f49a87976fdc7f23b1a6c3fdc 100644
GIT binary patch
literal 136
zcmXxb%Mn0O3`XITcnlXkq!sRl6*D%L%2Ae5RD#JhHu=utPrpp@0J43U<G9+eEz!(O
p0B;wrJ6XY}$fv3+t#8iTuLjWcqk*CTI<LC^D}=wACRJWOATL<W3;_TD

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x b/tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..31c9011663639b4a0f4816f3b2b06398f94682f7 100644
GIT binary patch
literal 68
zcmZ>EbqR4{U|?Xhb@F%i2v%^42yj+VP*7lGU|;~TK{Nw{0)qoc4VVoE6CiAe2mn)-
B2LS*8

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x b/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..497706c9742a9ea5396d6c9c4cc1cc2a4a530339 100644
GIT binary patch
literal 12565
zcmcIqU2GdycD|QC(r`GEM%3uXvTPAf(qyw+hmwD?{n^Ik3`J7nP-6~dD;T33$#yHr
zDKd5JBHF-!L<3nz4{Z~!7wsDzaCiH*`%v_)sDbvOeKSxL4N#y!ANsP7T@>pAMOd8s
zL)}ABz#6;N19j)lIp;gy%$<8??)@C!X-qE>LVsLXx66LEu<6;^Y&J^?A<%~ZW+icp
z1P4x`)THTHf(D0a)^-Y|f@XcoDQuMJU+jcG2*U^83+Yxww!bu=Zf`}8pM={4j2>=B
zx(*F<ZK~-Pnn9~F;n|g()+|>XBmY9zw5H8lajm&gafnqNZLa%v;^-c+otsOYTC%+}
zIi;I{`)`+ivAA&U2R9$&pMU3H|KRAJp0J&p%SZQg&30~Hir^>wB-GD`9rKI!E`0><
z?A%gk>Welz&HGF^6NS+8%-~%RYN>nAT1yrk-yQ2*ZSRq2GEPa@ng4<(@Z#Nn`cMDL
zciqotf99U~d)w`XozbVedaN5p`r(t1kZ#ynXz%HxQ6?E9V<e0oKly-=t!Rs%3|ilI
z>Uo<nAM<Kn&dx0nt!dZ&$whtPd$WWXaLM8Cr@db9??l_&CuY^U2p117TyWsoeuJi;
z8@d)8ns8uyc4Z^$*%c=n9Qei6CQbjNp(ldFG#uE4TyZrU929D9ou*%KH#o2hwGB7x
zRh-RiKnqoSjaYAZc5yWpyaq?TUbF)i(LUWJ5F>aKy1T^sX1?NV4zq$-5&VS0Hna*U
zk6lk^<drTc*@^&!UBJgrKA>c~Gylb-_BLs68@*nyM;>j_tw&q?R3AOQz@0bH)gK5D
zZS&ipc@=wwSVq&U*fiRKBeQjb!u2)npRuv&)f--B?W2QCI+5=6NVT?BB)m<lwY3$J
zF`!?MRcmV{c@VGG*2*L^mN0rfO2B8Oe*|77k{Rdcm|yw$5Il>*HpV<l{Uh*{rZMhW
z6rM4{JS9q;dCCmp%u|}ix#x=TjB`(kl3<=Pg9P)GrU~vTlTUC@iIPM-lZa;$^GtG2
zi86wCjv$^RnCA%QIf{6WBA%m|=P2f>A)XrIsbQWP=9xk~Q;25@^Gso$I^wA#o;v2K
zW1eZmGmUtrG0!ySX&{~k;%Q)>2Ie`2c#a{SW0>a{<~fddjw7DqnCCd=Ie~aiAf6ML
z=LF_yBAzDVX=0ux<~fOYP9mO@nCB$snL#`=h-U`#%wV2Vi02gIIfZ#nVV)M^X(65#
z=4oM`(}?FZ;yI0ZPGg=ki02IAIfHr5V4kyx=Pcqmi+Rpso^y!j9O5~LdCp;;XP9SR
z%$jGIXF*JMXSk<*d<gTcBW&l9=RES9$DZ>XQ+l37o@bHgS?qZhdoCc)1?0JaJr}U&
zIplc`d7i_b=dkB_<|$|2^UPDu@#ndxoa4`PPdUdgBFsgExri|rB_<Tmyi!0*ex+YP
zOMd0JfR_BqaRDv)6$wfS_{h>m33$o;DAB=BRz*s5@RZbI%u|-O81s~-P(ZmUtHe-1
z6_hyhlo`aCr&>U{Df5H^$}?i+KEXU?1_|aVFD?{NC3z^I3eP0snM6FHfGRwpfGRvk
z5YG|B6AGxp6AGxpa}@C$MLeN^Dm<ZpDm*pBQ$swVfGRwpfGRvwh-V7%gaWGYgaWGY
z)Dce|@q_}Z@Pq=Y@Ju6~X~Yu>sKOHpsKV1gJPpJX3aG*p3aG+!4DlR8JfVOpJfVOp
zJjW5wal{h}sKOHpsKRps@ti<Bp@1qpp@1qpO~lhgJfVOpJfVOpJSP#)NyHNhsKOHp
zsKPUYcxDh!D4+^YD4+_@Da3OM@q_}Z@Pq=Y@U#$53-N>ks_=vYs_>jfJf{&)D4+^Y
zD4+_@8N_o2@q_}Z@Pq=Y@SH_FXAw^*pbAeYpbF19#B&bugaWGYgaWGYJi|Pd0$TDb
zY5^_z6}5nt{E94t^T>0aVM<RZpo%9HP{s2s@;r+?p@1r$P(T&W1?0JaJfVOpo=`v)
z&vVH09P)$$s(3;HRXoo#PdUe*XP$D7hXSfxTPUE)wOvG*iwF}6sDcRvlwn%)O|RY{
z9iz=YR=e;)`fLRL<*lj8b-zJ7sZaES9n#fPT|I4Gu3We4Db1_bbCctG`m+&|VoM48
z<Ouroq*t$3qEB}82?DJybOx>JXtlPMmn$*G1YdvAnqJ+XoYAK~8z-rFk`SU3Lehkg
zePT^C{YIX2AqB5~J#S4mor+H$L0dmyJrl5?0Ty<h9nUuXx=)XGL=FHC{Q|u(fKFcl
zy`Z2M7<yp<y>JS8A!xb4ov+0hdC6Umy#l<gz}pPo9)Pz`fwu*`Ge90zz<%j#?<nvN
zgLektom1c)0bd-1PrL$rQGqWq_~HP3@f7%?fL|GePrd^DiUPmF;8zCVS5ARn5%8r!
z_>otDFDdXP245P0FP#Ek67c0g_|aE@FDvk6245b4FP{Qm4q9%a<W~ltdfnvka`G_Q
z<IWc+ai2B99(ikoJ=Y@K;A5;$;&78g!tuVL;Z8i485}M%BpmM>8t%k%Hig4Y4GG8l
zhK4)w+*mlAH6$GG8yfD!b1;p=O%Dmj`-X-)F|KEDxS1j0c;C=)C&uY44mUd_9Ph*7
zOjqN}|3$6r6&rH&Q?ckD9F)C=OAJC@e4QqV;LwEQsT;+bllAIOGizOCl_!FpFoLeF
z?}oY=c8t&4A!&!{Uaw0!<Da*;$oIDl@*n@5?2@iN!AJ0<KK^M6meXH+O%hPYOsiS)
z_<bD9+g>G?%UvaAb(N=B)^EKNm+S3bz39tqVUF0SIAgZAku87tAo}3pA7=00{piDo
z_ix|*hy>L3s%zq*8PoL={mS^tpvFE44!k<7*?(o|MsWBR9OOyX_KG!XS86`B>+TI|
z7guxevqDMSwp~XH4l`gGxBX%@OR~0;Z)7c_S*caDh(Kr1T7B;p+ZeFD4W6W6vy_80
z__j*YddqICydUf6?H%%|oy+BRp-G{+wA)Fyck~#vmv^o5i0wD>so=F+?<7?Izzenm
z2D|-YHG&P2_TUL%7U>gV@aBm#)wOPDxk+IAYCv=_RB<&oG`>}uv3<LyokByiYsH(H
zST7>CBYNk{Vy1nEM&wRJ!-#Bs=^B6D4(Zd|dORXwbbAn!F&^x+U8ghqbg<XSH*Wv1
zlWK42y@=lVVKnS~=k*hp4#q=t`w1kuMILTNG<^1M=gJ8)Hewnp??a*|u1wv%5z+AB
zZP<=0Cis3F1l%UKnGcO_2TQ}rorqPb`46{;UuQREulo(-l<PcvxSWV@yH2z_<l01f
zY_Jzh_Xazid}C;K!Q<b9vCcQqECXf_tqa4OXiYcYm`v*$(FlRpWNW;+?l;mvhV1O_
zX-#j_CBfrr0-g}QC8q|UN&re(fOJzlyg8}_qcWHt4<4^WwB;Df#~M3M2i`gR`NU!@
zoY4=b$E=Bda(b*EFln8=brI&UW-+%+#B>F-0F3;g<tCLG%q@Go0<ulVeC{gYvzUAL
zk3PJ=pWQhzk?~2B&0s_)I+=qRtn9(|A<^}@pp`H3X~!*l%68^)WT)b~**katWEZAI
z&2?&ZJr*2ZRBj#Q1QFwIy->}%^+Gx8)~nE}mb0$6*~|uq-x^|{C)aeh=r^eg&xs39
zfeRa+!Qtyetm7_Bo$h+^M%G>T?W{G$ibyBbhMWjgh;%?*w)L4Gaecd{oQp^pyawlb
zy)S?FX$T%s2mw1&ZI0epc|W8POXb;2$7=I*pcfuWIJzIwFnAM!bgA{5E))SJZ1k5q
zgau5u87DqtGV9RF&$)KpPstRdt>)IRUY@+9=Z?Nfh!Gci#QndoVRIDrN5!8w?Cp~y
zaMZ`$O0CM98Mjg^^X6|<i?a9aYEkyixcN<CJMZQ<%MsiraDqk^0!47UzyTUn2y!2~
zp#i>dz)pjA$9f8VaQ;3VQ`R}jI_ZOc545UquG(=%+t5ukw|;54zeV1s3{-(7P-OHj
zE$g~lsWp$lULSY!o1!^WE!LV5Aj9d1rIFukMvy0*5_bsP`pv7Ct=C;|)1`wqAcD~;
zZ)#}0<*xgU#0jHa7<ADdj5;3Dy5JU9bFmYKZ1{4MpyiIZUM|O<&fLd2DB@ftVI0W!
zdl(e(4kEwAVN8i*n6<i)GdrGyX(JBV!QsyCo;AT{6-a~i2)Ly_9EcJA|KO|zcrwIW
z2+$O7A+DEO+Er$=OL8`Y$ps!s(>}Vz-^*4%v#Xc+<<YNc%|f9D|H_sATMx`^cE!mU
zF{UhmpSb34cplO0M!ia)ZL_vbtSZd<ip<3Le7Mep_on~lzjk*2;mG~l?|gsWeD9zC
z_f+-C;xDN_0qF{)#$+py9oM6DoW!YshV9(Ed~}b=SFV8HW#9viD|Vx9gOKG4g`e)d
zXX9Ab;yhprN?m1BhVOzgg#)Mz@>0kEs)m9*fW0zX?3Hm<gIpw}XeS6ZWw@ynIjFmA
zT-8uOss_29C{zs&Ry9Zzu4<4Oa8-je6{?0jRy9Zzu4<6Wlw8#yO@*pKu2TwCgGAw~
z2AKg@HAqvTYLLkbRf9y~ss@<>S2ajep=yxH3sr+e;i?9i0arChQ=w{*$qQA3MB%Ci
znE_WdNK>I|kjV>GgGAw~2AKg@HAqvTYLLkbRf9y~ss@<>S2ajep=yxH!=?-$U2Ln2
zs~ThmT-6{=g{na&FH{W@g{vB523*x3O@*pKCNESC5{0W8Bu}ntkfuV_Ad?rW28qH|
z4Kf3+YLKQv)gY6HO&NtJS2f5CxT-;#3RQzlUZ@%*3RgAA47jR6nhI5eOkSuOBnnqG
zNS<8PAWem;K_)L$4HAW`8e|4s)gVoUszD|%R1Fe^s~ThmT-6{=g{na&FH{W@g{vB5
z23*x3O@*pKCNESC5{0W8WCmQ-AWem;K_)L$4HAW`8e|4s)gVoUszD|%R1Fe^s~Thm
zT-6{=g{na&FH{W@g{vB523*x3O@*pKCNESC66IG_HOLIOszLG;ss@?7P&G)NT-6{m
z;Hm~`DpU<Jd7)~MC|uPbd2&^QG!?1_$y2BrB+9R<YLFRlRfFUyR1GqDp=yvkxvD{C
zz*P;>RHzzc@<P>65T8ZUdgjR(i5Y~DYvdY%FUWmjt|$2`N-1e?R$cT`@-DGb?6U(l
zYTj)+zH4-HyvG0NfA0SL-+%na*M7A3*G78%PwSmjdyjM{<CJ#B+k3Q|(PA`{h!JYK
z)BKBzOJ_kcx|-JiMkYeYdn}z2eQCTjsP<%xQ2wI)3xklCM*nz>y)yrtX-&n8v`%_3
zE3>~CK`K<O*X#X6ocb$t=6SEz`!jLo#fdMG=kO5=3Rbq}ru=Dau`p=aiIP|365xSv
zQs`Hf)HJwodRqA)&5mS8sJTyq)@s5ldv$)PK}~!7`RUn}A<J_oV?8&X8+2};nBTYs
zXD>A~BMJDP*P8z2W=2csF+IkPuD}`KVgAnXZ3tQyS8m#T^>*xf(cQ@9a?3+d%%quw
zML;vZ%-&<o$`aG@w$gqs*VLMMr%r;_+kWob{J?-AWob=+$st|VSeA`T&<I+UX@5z0
z8id5iK&Z5zTjHT;&@%koGC$B`TEQ<?iMgI&z<Gb8MyzkJ0U5z4BVhyvppuQ?<dcw+
zE~s~RcK7auT9esl*hd7&guxd2SiGg?uQ%TEuP>hUwsWJ_h;`DR>`?M4P~SbR9keF=
zrQ_QWhf!wvE5|*Hu#{V=UytdbZkTq0f0!Kp_B(O7rC<qXDQs|RUj2Fjer))0G?Mk|
z*Nf0zfu9oml(nFBd9C0y<%d^1&PS<Ox1Q6dOEe@Qp|nKrkUNCZ3o!zN|8;kLqwh5_
zg}gL9c>z@8L2J3{HI`)T1Yh={$kx=yO7!FS$8k-&aKIuj+v{%MCrR1Y;Sisf@t1L;
zT`-x?8})|W&n7J<N)|dI5uw@zLLr?Ae<d%*cnmHjbQDBKoGcQ!pnaXY`34MfYtgf7
z4H6MhqQiXzsXG-7M~_=3JOBF^!5Et6d$1~I{Z_M>TOzPB*<Z-#ns%iF%wg#eS^OWl
CwhOfY

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x b/tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0e5765f6ee4c07638c70647ae145e968718b67cd 100644
GIT binary patch
literal 360
zcma)$u?oU46h%)`E5*sdrCT<g^9Qy|7pb6wAJD;1aP;%?S#r}?8U(=$A@?0_a^G+{
z-=7Zr*p2;g3*F<|hY*4T<aIAP0p<Kl%1LivWByzE=Veftt@-_NO)66XwIR*knBIts
t?eaMgjn%}QYk&q{c(?Xe^KMITx#vH<336X#q6H=((dJuwh>OiW@d0Cl4*>uG

literal 0
HcmV?d00001

diff --git a/tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x b/tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b45838adb7d304f8a36c38c90d89f3629ec48353 100644
GIT binary patch
literal 520
zcmWFzatz^MVqjn_cJg=j2v%^42yj+VP*7lGU|;~TK{N=%fdD$6nGsc<l?j>8r~%gr
z1za!&in$1N0#Nx6%rJ$h=CQzpVGJ0JrVgeIKS0=v9}JW_Rs{xV_%bpfyAT#8Yzhnv
iAPGn308ax0Lo)}cBA7g*1}j_}RBQrF03N^$3=9B2oeTj0

literal 0
HcmV?d00001

-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PULL 13/13] vhost: fail device start if iotlb update fails
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (11 preceding siblings ...)
  2024-11-27 13:57 ` [PULL 12/13] bios-tables-test: Add data for complex numa test (GI, GP etc) Michael S. Tsirkin
@ 2024-11-27 13:58 ` Michael S. Tsirkin
  2024-11-28 13:40 ` [PULL 00/13] virtio,pc,pci: bug fixes, new test Peter Maydell
  13 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-11-27 13:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Prasad Pandit, Stefano Garzarella

From: Prasad Pandit <pjp@fedoraproject.org>

While starting a vhost device, updating iotlb entries
via 'vhost_device_iotlb_miss' may return an error.

  qemu-kvm: vhost_device_iotlb_miss:
    700871,700871: Fail to update device iotlb

Fail device start when such an error occurs.

Signed-off-by: Prasad Pandit <pjp@fedoraproject.org>
Message-Id: <20241107113247.46532-1-ppandit@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
---
 hw/virtio/vhost.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 76f9b2aaad..c40f48ac4d 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -2095,11 +2095,22 @@ int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev, bool vrings)
          * vhost-kernel code requires for this.*/
         for (i = 0; i < hdev->nvqs; ++i) {
             struct vhost_virtqueue *vq = hdev->vqs + i;
-            vhost_device_iotlb_miss(hdev, vq->used_phys, true);
+            r = vhost_device_iotlb_miss(hdev, vq->used_phys, true);
+            if (r) {
+                goto fail_iotlb;
+            }
         }
     }
     vhost_start_config_intr(hdev);
     return 0;
+fail_iotlb:
+    if (vhost_dev_has_iommu(hdev) &&
+        hdev->vhost_ops->vhost_set_iotlb_callback) {
+        hdev->vhost_ops->vhost_set_iotlb_callback(hdev, false);
+    }
+    if (hdev->vhost_ops->vhost_dev_start) {
+        hdev->vhost_ops->vhost_dev_start(hdev, false);
+    }
 fail_start:
     if (vrings) {
         vhost_dev_set_vring_enable(hdev, false);
-- 
MST



^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PULL 00/13] virtio,pc,pci: bug fixes, new test
  2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
                   ` (12 preceding siblings ...)
  2024-11-27 13:58 ` [PULL 13/13] vhost: fail device start if iotlb update fails Michael S. Tsirkin
@ 2024-11-28 13:40 ` Peter Maydell
  13 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2024-11-28 13:40 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Wed, 27 Nov 2024 at 13:57, Michael S. Tsirkin <mst@redhat.com> wrote:
>
> The following changes since commit 34754a3a627e1937be7f3daaa0c5e73d91c7d9b5:
>
>   Update version for v9.2.0-rc1 release (2024-11-20 18:27:48 +0000)
>
> are available in the Git repository at:
>
>   https://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
>
> for you to fetch changes up to 571bdc97b83646dfd3746ec56fb2f70bca55b9a2:
>
>   vhost: fail device start if iotlb update fails (2024-11-26 17:18:07 -0500)
>
> ----------------------------------------------------------------
> virtio,pc,pci: bug fixes, new test
>
> Some small bug fixes, notably a fix for a regression
> in cpu hotplug after migration. I also included a
> new test, just to help make sure we don't regress cxl.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/9.2
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-11-28 13:41 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-27 13:57 [PULL 00/13] virtio,pc,pci: bug fixes, new test Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 01/13] vhost_net: fix assertion triggered by batch of host notifiers processing Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 02/13] qtest: allow ACPI DSDT Table changes Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 03/13] Revert "hw/acpi: Update ACPI `_STA` method with QOM vCPU ACPI Hotplug states" Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 04/13] Revert "hw/acpi: Make CPUs ACPI `presence` conditional during vCPU hot-unplug" Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 05/13] tests/acpi: update expected blobs Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 06/13] hw/cxl: Check for zero length features in cmd_features_set_feature() Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 07/13] qapi: fix device-sync-config since-version Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 08/13] hw/acpi: Fix size of HID in build_append_srat_acpi_device_handle() Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 09/13] qapi/qom: Change Since entry for AcpiGenericPortProperties to 9.2 Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 10/13] bios-tables-test: Allow for new acpihmat-generic-x test data Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 11/13] bios-tables-test: Add complex SRAT / HMAT test for GI GP Michael S. Tsirkin
2024-11-27 13:57 ` [PULL 12/13] bios-tables-test: Add data for complex numa test (GI, GP etc) Michael S. Tsirkin
2024-11-27 13:58 ` [PULL 13/13] vhost: fail device start if iotlb update fails Michael S. Tsirkin
2024-11-28 13:40 ` [PULL 00/13] virtio,pc,pci: bug fixes, new test Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.