- kvm-s390x-pci-add-support-for-guests-that-request-direct.patch [RHEL-11430] - kvm-s390x-pci-indicate-QEMU-supports-relaxed-translation.patch [RHEL-11430] - kvm-block-Expand-block-status-mode-from-bool-to-flags.patch [RHEL-82906 RHEL-83015] - kvm-file-posix-gluster-Handle-zero-block-status-hint-bet.patch [RHEL-82906 RHEL-83015] - kvm-block-Let-bdrv_co_is_zero_fast-consolidate-adjacent-.patch [RHEL-82906 RHEL-83015] - kvm-block-Add-new-bdrv_co_is_all_zeroes-function.patch [RHEL-82906 RHEL-83015] - kvm-iotests-Improve-iotest-194-to-mirror-data.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Minor-refactoring.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Pass-full-sync-mode-rather-than-bool-to-inter.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Allow-QMP-override-to-declare-target-already-.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Drop-redundant-zero_target-parameter.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Skip-pre-zeroing-destination-if-it-is-already.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Skip-writing-zeroes-when-target-is-already-ze.patch [RHEL-82906 RHEL-83015] - kvm-iotests-common.rc-add-disk_usage-function.patch [RHEL-82906 RHEL-83015] - kvm-tests-Add-iotest-mirror-sparse-for-recent-patches.patch [RHEL-82906 RHEL-83015] - kvm-mirror-Reduce-I-O-when-destination-is-detect-zeroes-.patch [RHEL-82906 RHEL-83015] - Resolves: RHEL-11430 ([IBM 9.7 FEAT] KVM: Performance Enhanced Refresh PCI Translation - qemu part) - Resolves: RHEL-82906 (--migrate-disks-detect-zeroes doesn't take effect for disk migration [rhel-9.7]) - Resolves: RHEL-83015 (Disk size of target raw image is full allocated when doing mirror with default discard value [rhel-9.7])
73 lines
2.7 KiB
Diff
73 lines
2.7 KiB
Diff
From 13e8ddbd282da692c8199a6cb9ca847334089e29 Mon Sep 17 00:00:00 2001
|
|
From: Christoph Schlameuss <cschlame@redhat.com>
|
|
Date: Thu, 12 Jun 2025 11:48:41 +0200
|
|
Subject: [PATCH 02/16] s390x/pci: indicate QEMU supports relaxed translation
|
|
for passthrough
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Christoph Schlameuss <None>
|
|
RH-MergeRequest: 376: Draft: KVM: Performance Enhanced Refresh PCI Translation
|
|
RH-Jira: RHEL-11430
|
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
|
RH-Commit: [2/2] afd514268347d0b434a60d7c6c09d20b84e5d902 (cschlame/qemu-kvm)
|
|
|
|
JIRA: https://issues.redhat.com/browse/RHEL-11430
|
|
|
|
commit d9b5dfc7122559e5b5959ecf534788b90c3dd102
|
|
Author: Matthew Rosato <mjrosato@linux.ibm.com>
|
|
Date: Wed Feb 26 16:00:13 2025 -0500
|
|
|
|
s390x/pci: indicate QEMU supports relaxed translation for passthrough
|
|
|
|
Specifying this bit in the guest CLP response indicates that the guest
|
|
can optionally choose to skip translation and instead use
|
|
identity-mapped operations.
|
|
|
|
Tested-by: Niklas Schnelle <schnelle@linux.ibm.com>
|
|
Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
|
|
Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
|
|
Message-ID: <20250226210013.238349-3-mjrosato@linux.ibm.com>
|
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
|
|
Signed-off-by: Christoph Schlameuss <cschlame@redhat.com>
|
|
---
|
|
hw/s390x/s390-pci-vfio.c | 5 ++++-
|
|
include/hw/s390x/s390-pci-clp.h | 1 +
|
|
2 files changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c
|
|
index 443e222912..6236ac7f1e 100644
|
|
--- a/hw/s390x/s390-pci-vfio.c
|
|
+++ b/hw/s390x/s390-pci-vfio.c
|
|
@@ -238,8 +238,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev,
|
|
pbdev->pci_group = s390_group_create(pbdev->zpci_fn.pfgid, start_gid);
|
|
|
|
resgrp = &pbdev->pci_group->zpci_group;
|
|
+ if (pbdev->rtr_avail) {
|
|
+ resgrp->fr |= CLP_RSP_QPCIG_MASK_RTR;
|
|
+ }
|
|
if (cap->flags & VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH) {
|
|
- resgrp->fr = 1;
|
|
+ resgrp->fr |= CLP_RSP_QPCIG_MASK_REFRESH;
|
|
}
|
|
resgrp->dasm = cap->dasm;
|
|
resgrp->msia = cap->msi_addr;
|
|
diff --git a/include/hw/s390x/s390-pci-clp.h b/include/hw/s390x/s390-pci-clp.h
|
|
index 03b7f9ba5f..6a635d693b 100644
|
|
--- a/include/hw/s390x/s390-pci-clp.h
|
|
+++ b/include/hw/s390x/s390-pci-clp.h
|
|
@@ -158,6 +158,7 @@ typedef struct ClpRspQueryPciGrp {
|
|
#define CLP_RSP_QPCIG_MASK_NOI 0xfff
|
|
uint16_t i;
|
|
uint8_t version;
|
|
+#define CLP_RSP_QPCIG_MASK_RTR 0x20
|
|
#define CLP_RSP_QPCIG_MASK_FRAME 0x2
|
|
#define CLP_RSP_QPCIG_MASK_REFRESH 0x1
|
|
uint8_t fr;
|
|
--
|
|
2.48.1
|
|
|