Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: ac8fc4ccacd8a77d8d56dc3990bfb221c1f48fcd
      
https://github.com/qemu/qemu/commit/ac8fc4ccacd8a77d8d56dc3990bfb221c1f48fcd
  Author: Yuri Benditovich <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/virtio/virtio.c

  Log Message:
  -----------
  virtio: check for validity of indirect descriptors

virtio processes indirect descriptors even if the respected
feature VIRTIO_RING_F_INDIRECT_DESC was not negotiated.
If qemu is used with reduced set of features to emulate the
hardware device that does not support indirect descriptors,
the will probably trigger problematic flows on the hardware
setup but do not reveal the  mistake on qemu.
Add LOG_GUEST_ERROR for such case. This will issue logs with
'-d guest_errors' in the command line

Signed-off-by: Yuri Benditovich <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Yuri Benditovich <[email protected]>


  Commit: 31753d5a336fbb4e9246397f4b90b6f611f27f22
      
https://github.com/qemu/qemu/commit/31753d5a336fbb4e9246397f4b90b6f611f27f22
  Author: Sairaj Kodilkar <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/i386/amd_iommu.c

  Log Message:
  -----------
  hw/i386/amd_iommu: Fix device setup failure when PT is on.

Commit c1f46999ef506 ("amd_iommu: Add support for pass though mode")
introduces the support for "pt" flag by enabling nodma memory when
"pt=off". This allowed VFIO devices to successfully register notifiers
by using nodma region.

But, This also broke things when guest is booted with the iommu=nopt
because, devices bypass the IOMMU and use untranslated addresses (IOVA) to
perform DMA reads/writes to the nodma memory region, ultimately resulting in
a failure to setup the devices in the guest.

Fix the above issue by always enabling the amdvi_dev_as->iommu memory region.
But this will once again cause VFIO devices to fail while registering the
notifiers with AMD IOMMU memory region.

Fixes: c1f46999ef506 ("amd_iommu: Add support for pass though mode")
Signed-off-by: Sairaj Kodilkar <[email protected]>
Reviewed-by: Vasant Hegde <[email protected]>
Message-Id: <[email protected]>
Fixes: c1f46999ef506 ("amd_iommu: Add support for pass though mode")
Signed-off-by: Sairaj Kodilkar <[email protected]>
Reviewed-by: Vasant Hegde <[email protected]>


  Commit: 0f178860df3489a9d3c19a5f7f024e6aa6c26515
      
https://github.com/qemu/qemu/commit/0f178860df3489a9d3c19a5f7f024e6aa6c26515
  Author: Vasant Hegde <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/i386/amd_iommu.c

  Log Message:
  -----------
  hw/i386/amd_iommu: Fix xtsup when vcpus < 255

If vCPUs > 255 then x86 common code (x86_cpus_init()) call kvm_enable_x2apic().
But if vCPUs <= 255 then the common code won't calls kvm_enable_x2apic().

This is because commit 8c6619f3e692 ("hw/i386/amd_iommu: Simplify non-KVM
checks on XTSup feature") removed the call to kvm_enable_x2apic when xtsup
is "on", which break things when guest is booted with x2apic mode and
there are <= 255 vCPUs.

Fix this by adding back kvm_enable_x2apic() call when xtsup=on.

Fixes: 8c6619f3e692 ("hw/i386/amd_iommu: Simplify non-KVM checks on XTSup 
feature")
Reported-by: Alejandro Jimenez <[email protected]>
Tested-by: Tested-by: Alejandro Jimenez <[email protected]>
Cc: Philippe Mathieu-Daudé <[email protected]>
Cc: Joao Martins <[email protected]>
Signed-off-by: Vasant Hegde <[email protected]>
Signed-off-by: Sairaj Kodilkar <[email protected]>
Message-Id: <[email protected]>
Fixes: 8c6619f3e692 ("hw/i386/amd_iommu: Simplify non-KVM checks on XTSup 
feature")
Reported-by: Alejandro Jimenez <[email protected]>
Tested-by: Tested-by: Alejandro Jimenez <[email protected]>
Cc: Philippe Mathieu-Daudé <[email protected]>
Cc: Joao Martins <[email protected]>
Signed-off-by: Vasant Hegde <[email protected]>
Signed-off-by: Sairaj Kodilkar <[email protected]>


  Commit: a8d178e1492a1a803898501a84829ac517ae2fb0
      
https://github.com/qemu/qemu/commit/a8d178e1492a1a803898501a84829ac517ae2fb0
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pcie.c
    M include/hw/pci/pcie.h
    M include/hw/pci/pcie_regs.h

  Log Message:
  -----------
  pcie: Add helper to declare PASID capability for a pcie device

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 1e82e8a828cf18a8abfeca7295322db91879de04
      
https://github.com/qemu/qemu/commit/1e82e8a828cf18a8abfeca7295322db91879de04
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pcie.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pcie: Helper functions to check if PASID is enabled

pasid_enabled checks whether the capability is
present or not. If so, we read the configuration space to get
the status of the feature (enabled or not).

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 6a3ae6a2440dead9dd8e3f84152dc53a5214c48d
      
https://github.com/qemu/qemu/commit/6a3ae6a2440dead9dd8e3f84152dc53a5214c48d
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pcie.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pcie: Helper function to check if ATS is enabled

ats_enabled checks whether the capability is
present or not. If so, we read the configuration space to get
the status of the feature (enabled or not).

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: dcad6cb2abf4ffc4f911041d0547c4b54c2f92e2
      
https://github.com/qemu/qemu/commit/dcad6cb2abf4ffc4f911041d0547c4b54c2f92e2
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pcie.c
    M include/hw/pci/pcie.h
    M include/hw/pci/pcie_regs.h

  Log Message:
  -----------
  pcie: Add a helper to declare the PRI capability for a pcie device

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 5be8cf79188a2a1c73d16f3a8b458d909ac976f4
      
https://github.com/qemu/qemu/commit/5be8cf79188a2a1c73d16f3a8b458d909ac976f4
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pcie.c
    M include/hw/pci/pcie.h

  Log Message:
  -----------
  pcie: Helper functions to check to check if PRI is enabled

pri_enabled can be used to check whether the capability is present and
enabled on a PCIe device

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 8ff9e1def0ef3388333b6cc639c9f958f97ebe05
      
https://github.com/qemu/qemu/commit/8ff9e1def0ef3388333b6cc639c9f958f97ebe05
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pci.c
    M include/hw/pci/pci_device.h

  Log Message:
  -----------
  pci: Cache the bus mastering status in the device

The cached is_master value is necessary to know if a device is
allowed to issue ATS/PRI requests or not as these operations do not go
through the master_enable memory region.

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 042cbc9aec7caca639dcb1a8a996406a7c572706
      
https://github.com/qemu/qemu/commit/042cbc9aec7caca639dcb1a8a996406a7c572706
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Add an API to get IOMMU's min page size and virtual address width

This kind of information is needed by devices implementing ATS in order
to initialize their translation cache.

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 7e94e45296d68982d448ae57e195efcf8f66649e
      
https://github.com/qemu/qemu/commit/7e94e45296d68982d448ae57e195efcf8f66649e
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M include/system/memory.h

  Log Message:
  -----------
  memory: Store user data pointer in the IOMMU notifiers

This will help developers of ATS-capable devices to track a state.

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: a849ff5d6fa9d263beaecd6421fff8e21d2591c8
      
https://github.com/qemu/qemu/commit/a849ff5d6fa9d263beaecd6421fff8e21d2591c8
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Add a pci-level initialization function for IOMMU notifiers

This is meant to be used by ATS-capable devices.

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: e9b457500adb023229a08ece3a8d7f5866dd360e
      
https://github.com/qemu/qemu/commit/e9b457500adb023229a08ece3a8d7f5866dd360e
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Add a pci-level API for ATS

Devices implementing ATS can send translation requests using
pci_ats_request_translation. The invalidation events are sent
back to the device using the iommu notifier managed with
pci_iommu_register_iotlb_notifier / pci_iommu_unregister_iotlb_notifier.

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Co-authored-by: Ethan Milon <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: f0f37daf8e67c7208641aec5e238197279ca7331
      
https://github.com/qemu/qemu/commit/f0f37daf8e67c7208641aec5e238197279ca7331
  Author: CLEMENT MATHIEU--DRIF <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Add a PCI-level API for PRI

A device can send a PRI request to the IOMMU using pci_pri_request_page.
The PRI response is sent back using the notifier managed with
pci_pri_register_notifier and pci_pri_unregister_notifier.

Signed-off-by: Clement Mathieu--Drif <[email protected]>
Co-authored-by: Ethan Milon <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 75d4680c55498d6cf4f89b31e52d97f90d7fc46e
      
https://github.com/qemu/qemu/commit/75d4680c55498d6cf4f89b31e52d97f90d7fc46e
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M tests/uefi-test-tools/Makefile
    M tests/uefi-test-tools/UefiTestToolsPkg/UefiTestToolsPkg.dsc
    M tests/uefi-test-tools/uefi-test-build.config

  Log Message:
  -----------
  uefi-test-tools:: Add LoongArch64 support

Add support to build bios-tables-test iso image for LoongArch system.

Signed-off-by: Bibo Mao <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>

Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 0265723eba8a612d8a94d190cef988cf8d616862
      
https://github.com/qemu/qemu/commit/0265723eba8a612d8a94d190cef988cf8d616862
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    A tests/data/uefi-boot-images/bios-tables-test.loongarch64.iso.qcow2

  Log Message:
  -----------
  tests/data/uefi-boot-images: Add ISO image for LoongArch system

To test ACPI tables, edk2 needs to be booted with a disk image having
EFI partition. This image is created using UefiTestToolsPkg.

The image is generated with the following command:
  make -f tests/uefi-test-tools/Makefile

Signed-off-by: Bibo Mao <[email protected]>
Acked-by: Gerd Hoffmann <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 82acc8c83f93814bb01669412a0a226c39fa8d77
      
https://github.com/qemu/qemu/commit/82acc8c83f93814bb01669412a0a226c39fa8d77
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M tests/qtest/bios-tables-test.c

  Log Message:
  -----------
  tests/qtest/bios-tables-test: Use MiB macro rather hardcode value

Replace 1024 * 1024 with MiB macro.

Signed-off-by: Bibo Mao <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: adec726cf8f953705b83b46daef8e1b0aafcb7ed
      
https://github.com/qemu/qemu/commit/adec726cf8f953705b83b46daef8e1b0aafcb7ed
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    A tests/data/acpi/loongarch64/virt/APIC
    A tests/data/acpi/loongarch64/virt/DSDT
    A tests/data/acpi/loongarch64/virt/FACP
    A tests/data/acpi/loongarch64/virt/MCFG
    A tests/data/acpi/loongarch64/virt/PPTT
    A tests/data/acpi/loongarch64/virt/SLIT
    A tests/data/acpi/loongarch64/virt/SPCR
    A tests/data/acpi/loongarch64/virt/SRAT
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: Add empty ACPI data files for LoongArch

Add empty acpi table for LoongArch virt machine, it is only empty
file and there is no data in these files.

Signed-off-by: Bibo Mao <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 16736bf01b79ef411dbab75289979e283153ea23
      
https://github.com/qemu/qemu/commit/16736bf01b79ef411dbab75289979e283153ea23
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M tests/qtest/bios-tables-test.c
    M tests/qtest/meson.build

  Log Message:
  -----------
  tests/qtest/bios-tables-test: Add basic testing for LoongArch

Add basic ACPI table test case for LoongArch, including cpu topology,
numa memory, memory hotplug and oem-id test cases.

Signed-off-by: Bibo Mao <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 8e35af507ad97a43a350be4805ade2dea9c2a251
      
https://github.com/qemu/qemu/commit/8e35af507ad97a43a350be4805ade2dea9c2a251
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M tests/data/acpi/rebuild-expected-aml.sh

  Log Message:
  -----------
  rebuild-expected-aml.sh: Add support for LoongArch

Update the list of supported architectures to include LoongArch.

Signed-off-by: Bibo Mao <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 28d0418c7f3d795a5f96be51d899b65f1c589256
      
https://github.com/qemu/qemu/commit/28d0418c7f3d795a5f96be51d899b65f1c589256
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M tests/data/acpi/loongarch64/virt/APIC
    A tests/data/acpi/loongarch64/virt/APIC.topology
    M tests/data/acpi/loongarch64/virt/DSDT
    A tests/data/acpi/loongarch64/virt/DSDT.memhp
    A tests/data/acpi/loongarch64/virt/DSDT.numamem
    A tests/data/acpi/loongarch64/virt/DSDT.topology
    M tests/data/acpi/loongarch64/virt/FACP
    M tests/data/acpi/loongarch64/virt/MCFG
    M tests/data/acpi/loongarch64/virt/PPTT
    A tests/data/acpi/loongarch64/virt/PPTT.topology
    A tests/data/acpi/loongarch64/virt/SLIT.numamem
    M tests/data/acpi/loongarch64/virt/SPCR
    M tests/data/acpi/loongarch64/virt/SRAT
    A tests/data/acpi/loongarch64/virt/SRAT.memhp
    A tests/data/acpi/loongarch64/virt/SRAT.numamem
    A tests/data/acpi/loongarch64/virt/SRAT.topology

  Log Message:
  -----------
  tests/acpi: Fill acpi table data for LoongArch

The acpi table data is filled for LoongArch virt machine with the
following command:
  tests/data/acpi/rebuild-expected-aml.sh

Signed-off-by: Bibo Mao <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: a0b833559ca19cbe0bbd7fa60106b7b6686d7617
      
https://github.com/qemu/qemu/commit/a0b833559ca19cbe0bbd7fa60106b7b6686d7617
  Author: Bibo Mao <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M tests/qtest/bios-tables-test-allowed-diff.h

  Log Message:
  -----------
  tests/acpi: Remove stale allowed tables

Remove stale allowed tables for LoongArch virt machine.

Signed-off-by: Bibo Mao <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 51ee7357e9e6e017fc25837743bef0a18aeafbe6
      
https://github.com/qemu/qemu/commit/51ee7357e9e6e017fc25837743bef0a18aeafbe6
  Author: Huaitong Han <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/pci/pci.c
    M hw/virtio/virtio-pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  vhost: Don't set vring call if guest notifier is unused

The vring call fd is set even when the guest does not use MSI-X (e.g., in the
case of virtio PMD), leading to unnecessary CPU overhead for processing
interrupts.

The commit 96a3d98d2c("vhost: don't set vring call if no vector") optimized the
case where MSI-X is enabled but the queue vector is unset. However, there's an
additional case where the guest uses INTx and the INTx_DISABLED bit in the PCI
config is set, meaning that no interrupt notifier will actually be used.

In such cases, the vring call fd should also be cleared to avoid redundant
interrupt handling.

Fixes: 96a3d98d2c("vhost: don't set vring call if no vector")

Reported-by: Zhiyuan Yuan <[email protected]>
Signed-off-by: Jidong Xia <[email protected]>
Signed-off-by: Huaitong Han <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: ee2136d8f5a1a4c317e39b0f3ca99e2095106ac8
      
https://github.com/qemu/qemu/commit/ee2136d8f5a1a4c317e39b0f3ca99e2095106ac8
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M net/vhost-vdpa.c

  Log Message:
  -----------
  vdpa: check for iova tree initialized at net_client_start

To map the guest memory while it is migrating we need to create the
iova_tree, as long as the destination uses x-svq=on. Checking to not
override it.

The function vhost_vdpa_net_client_stop clear it if the device is
stopped. If the guest starts the device again, the iova tree is
recreated by vhost_vdpa_net_data_start_first or vhost_vdpa_net_cvq_start
if needed, so old behavior is kept.

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: c61f0d0938ff452974f319cc4fcae9975d2f20dd
      
https://github.com/qemu/qemu/commit/c61f0d0938ff452974f319cc4fcae9975d2f20dd
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/virtio/vhost-vdpa.c

  Log Message:
  -----------
  vdpa: reorder vhost_vdpa_set_backend_cap

It will be used directly by vhost_vdpa_init.

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 8f0b6836a0d8dc7d2159d61bc35a42d7c9a9e22a
      
https://github.com/qemu/qemu/commit/8f0b6836a0d8dc7d2159d61bc35a42d7c9a9e22a
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/virtio/vhost-vdpa.c

  Log Message:
  -----------
  vdpa: set backend capabilities at vhost_vdpa_init

The backend does not reset them until the vdpa file descriptor is closed
so there is no harm in doing it only once.

This allows the destination of a live migration to premap memory in
batches, using VHOST_BACKEND_F_IOTLB_BATCH.

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: a849b49e5b769c2458ff91174a907e055a26f785
      
https://github.com/qemu/qemu/commit/a849b49e5b769c2458ff91174a907e055a26f785
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/virtio/vhost-vdpa.c
    M include/hw/virtio/vhost-vdpa.h

  Log Message:
  -----------
  vdpa: add listener_registered

Check if the listener has been registered or not, so it needs to be
registered again at start.

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 0e8b3b44e9dfa8f2b05313b9d19eb1fb622945b8
      
https://github.com/qemu/qemu/commit/0e8b3b44e9dfa8f2b05313b9d19eb1fb622945b8
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M hw/virtio/vhost-vdpa.c

  Log Message:
  -----------
  vdpa: reorder listener assignment

Since commit f6fe3e333f ("vdpa: move memory listener to
vhost_vdpa_shared") this piece of code repeatedly assign
shared->listener members.  This was not a problem as it was not used
until device start.

However next patches move the listener registration to this
vhost_vdpa_init function.  When the listener is registered it is added
to an embedded linked list, so setting its members again will cause
memory corruption to the linked list node.

Do the right thing and only set it in the first vdpa device.

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: fac4a20c49f673686e7f30e0c9bb50af308af292
      
https://github.com/qemu/qemu/commit/fac4a20c49f673686e7f30e0c9bb50af308af292
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-01 (Sun, 01 Jun 2025)

  Changed paths:
    M include/hw/virtio/vhost-vdpa.h
    M net/vhost-vdpa.c

  Log Message:
  -----------
  vdpa: move iova_tree allocation to net_vhost_vdpa_init

As we are moving to keep the mapping through all the vdpa device life
instead of resetting it at VirtIO reset, we need to move all its
dependencies to the initialization too.  In particular devices with
x-svq=on need a valid iova_tree from the beginning.

Simplify the code also consolidating the two creation points: the first
data vq in case of SVQ active and CVQ start in case only CVQ uses it.

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Suggested-by: Si-Wei Liu <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 4f719c764cf94ea47e100ff6a6a1559eae4026c1
      
https://github.com/qemu/qemu/commit/4f719c764cf94ea47e100ff6a6a1559eae4026c1
  Author: Eugenio Pérez <[email protected]>
  Date:   2025-06-02 (Mon, 02 Jun 2025)

  Changed paths:
    M hw/virtio/vhost-vdpa.c

  Log Message:
  -----------
  vdpa: move memory listener register to vhost_vdpa_init

Current memory operations like pinning may take a lot of time at the
destination.  Currently they are done after the source of the migration is
stopped, and before the workload is resumed at the destination.  This is a
period where neigher traffic can flow, nor the VM workload can continue
(downtime).

We can do better as we know the memory layout of the guest RAM at the
destination from the moment that all devices are initializaed.  So
moving that operation allows QEMU to communicate the kernel the maps
while the workload is still running in the source, so Linux can start
mapping them.

As a small drawback, there is a time in the initialization where QEMU
cannot respond to QMP etc.  By some testing, this time is about
0.2seconds.  This may be further reduced (or increased) depending on the
vdpa driver and the platform hardware, and it is dominated by the cost
of memory pinning.

This matches the time that we move out of the called downtime window.
The downtime is measured as the elapsed trace time between the last
vhost_vdpa_suspend on the source and the last vhost_vdpa_set_vring_enable_one
on the destination. In other words, from "guest CPUs freeze" to the
instant the final Rx/Tx queue-pair is able to start moving data.

Using ConnectX-6 Dx (MLX5) NICs in vhost-vDPA mode with 8 queue-pairs,
the series reduces guest-visible downtime during back-to-back live
migrations by more than half:
- 39G VM:   4.72s -> 2.09s (-2.63s, ~56% improvement)
- 128G VM:  14.72s -> 5.83s (-8.89s, ~60% improvement)

Tested-by: Lei Yang <[email protected]>
Reviewed-by: Si-Wei Liu <[email protected]>
Acked-by: Jason Wang <[email protected]>
Signed-off-by: Eugenio Pérez <[email protected]>
Signed-off-by: Jonah Palmer <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 6e672b2a088ad56beb076d8d19ff86502815d6a8
      
https://github.com/qemu/qemu/commit/6e672b2a088ad56beb076d8d19ff86502815d6a8
  Author: Bernhard Beschow <[email protected]>
  Date:   2025-06-02 (Mon, 02 Jun 2025)

  Changed paths:
    M hw/i386/pc_piix.c

  Log Message:
  -----------
  hw/i386/pc_piix: Fix RTC ISA IRQ wiring of isapc machine

Commit 56b1f50e3c10 ("hw/i386/pc: Wire RTC ISA IRQs in south bridges")
attempted to refactor RTC IRQ wiring which was previously done in
pc_basic_device_init() but forgot about the isapc machine. Fix this by
wiring in the code section dedicated exclusively to the isapc machine.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2961
Fixes: 56b1f50e3c10 ("hw/i386/pc: Wire RTC ISA IRQs in south bridges")
cc: qemu-stable
Signed-off-by: Bernhard Beschow <[email protected]>
Reviewed-by: Mark Cave-Ayland <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>


  Commit: 25de0b9aa129b2b014a0595befef05f04511868d
      
https://github.com/qemu/qemu/commit/25de0b9aa129b2b014a0595befef05f04511868d
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-06-02 (Mon, 02 Jun 2025)

  Changed paths:
    M hw/i386/amd_iommu.c
    M hw/i386/pc_piix.c
    M hw/pci/pci.c
    M hw/pci/pcie.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/hw/pci/pci.h
    M include/hw/pci/pci_device.h
    M include/hw/pci/pcie.h
    M include/hw/pci/pcie_regs.h
    M include/hw/virtio/vhost-vdpa.h
    M include/system/memory.h
    M net/vhost-vdpa.c
    A tests/data/acpi/loongarch64/virt/APIC
    A tests/data/acpi/loongarch64/virt/APIC.topology
    A tests/data/acpi/loongarch64/virt/DSDT
    A tests/data/acpi/loongarch64/virt/DSDT.memhp
    A tests/data/acpi/loongarch64/virt/DSDT.numamem
    A tests/data/acpi/loongarch64/virt/DSDT.topology
    A tests/data/acpi/loongarch64/virt/FACP
    A tests/data/acpi/loongarch64/virt/MCFG
    A tests/data/acpi/loongarch64/virt/PPTT
    A tests/data/acpi/loongarch64/virt/PPTT.topology
    A tests/data/acpi/loongarch64/virt/SLIT
    A tests/data/acpi/loongarch64/virt/SLIT.numamem
    A tests/data/acpi/loongarch64/virt/SPCR
    A tests/data/acpi/loongarch64/virt/SRAT
    A tests/data/acpi/loongarch64/virt/SRAT.memhp
    A tests/data/acpi/loongarch64/virt/SRAT.numamem
    A tests/data/acpi/loongarch64/virt/SRAT.topology
    M tests/data/acpi/rebuild-expected-aml.sh
    A tests/data/uefi-boot-images/bios-tables-test.loongarch64.iso.qcow2
    M tests/qtest/bios-tables-test.c
    M tests/qtest/meson.build
    M tests/uefi-test-tools/Makefile
    M tests/uefi-test-tools/UefiTestToolsPkg/UefiTestToolsPkg.dsc
    M tests/uefi-test-tools/uefi-test-build.config

  Log Message:
  -----------
  Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu 
into staging

virtio,pci,pc: features, fixes, tests

vhost will now no longer set a call notifier if unused
loongarch gained acpi tests based on bios-tables-test
some core pci work for SVM support in vtd
vhost vdpa init has been optimized for response time to QMP
A couple more fixes

Signed-off-by: Michael S. Tsirkin <[email protected]>

# -----BEGIN PGP SIGNATURE-----
#
# iQFDBAABCgAtFiEEXQn9CHHI+FuUyooNKB8NuNKNVGkFAmg9Yu4PHG1zdEByZWRo
# YXQuY29tAAoJECgfDbjSjVRpfhMH/RxbwQ3TtHZlKB+oEku7jTBFqvsbMFOjBk5Y
# rVM47WzwyytKiPTnoMkuhZ96xP8ZJBu3vYjQvPe3XezIKugL187B0OGP/z0z4sK6
# BRX7K1/vAMJTiRJM519bsKvgI2kYEmJm9edyML7SlruJvDXyqAWEdRuIzFFsspoq
# o8S4ZIvfw3kN+l4BlVd1FQbWRmdW7JTFUGeXRK4KdC5si4UGs7aG4QZ8ZJ/XTy1+
# e7T4Y38euCivWzxuXUS0Rw/7968mKeUR+YvKSH2t6zbiJIjSwHaalx3PI8PtTX5G
# o273yhq2wlIh05RlxQPKnskU7Cj9IQNX7Gnk8pCtT6VxICXRHW8=
# =Vp2t
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 02 Jun 2025 04:38:06 EDT
# gpg:                using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Michael S. Tsirkin <[email protected]>" [full]
# gpg:                 aka "Michael S. Tsirkin <[email protected]>" [full]
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu: (31 
commits)
  hw/i386/pc_piix: Fix RTC ISA IRQ wiring of isapc machine
  vdpa: move memory listener register to vhost_vdpa_init
  vdpa: move iova_tree allocation to net_vhost_vdpa_init
  vdpa: reorder listener assignment
  vdpa: add listener_registered
  vdpa: set backend capabilities at vhost_vdpa_init
  vdpa: reorder vhost_vdpa_set_backend_cap
  vdpa: check for iova tree initialized at net_client_start
  vhost: Don't set vring call if guest notifier is unused
  tests/acpi: Remove stale allowed tables
  tests/acpi: Fill acpi table data for LoongArch
  rebuild-expected-aml.sh: Add support for LoongArch
  tests/qtest/bios-tables-test: Add basic testing for LoongArch
  tests/acpi: Add empty ACPI data files for LoongArch
  tests/qtest/bios-tables-test: Use MiB macro rather hardcode value
  tests/data/uefi-boot-images: Add ISO image for LoongArch system
  uefi-test-tools:: Add LoongArch64 support
  pci: Add a PCI-level API for PRI
  pci: Add a pci-level API for ATS
  pci: Add a pci-level initialization function for IOMMU notifiers
  ...

Signed-off-by: Stefan Hajnoczi <[email protected]>


Compare: https://github.com/qemu/qemu/compare/3e82ddaa8db2...25de0b9aa129

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications


Reply via email to