* Tue May 13 2025 Jon Maloy <jmaloy@redhat.com> - 9.1.0-20
- kvm-virtio-net-disable-USO-for-virt-rhel9.6.patch [RHEL-80313] - kvm-arm-Use-arm_virt_compat_set-to-apply-the-compat.patch [RHEL-80313] - kvm-file-posix-probe-discard-alignment-on-Linux-block-de.patch [RHEL-86032] - kvm-block-io-skip-head-tail-requests-on-EINVAL.patch [RHEL-86032] - kvm-file-posix-Fix-crash-on-discard_granularity-0.patch [RHEL-86032] - Resolves: RHEL-80313 (Unable to migrate VM from RHEL10.0/qemu-kvm-9.6 to RHEL9.6/qemu-kvm-9.6) - Resolves: RHEL-86032 (QEMU sends unaligned discards on 4K devices [RHEL-9.7])
This commit is contained in:
parent
52929cc849
commit
609fe233e6
53
kvm-arm-Use-arm_virt_compat_set-to-apply-the-compat.patch
Normal file
53
kvm-arm-Use-arm_virt_compat_set-to-apply-the-compat.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From 173beb6698538dcffefab36772e107ffb0b4fbbd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shaoqin Huang <shahuang@redhat.com>
|
||||||
|
Date: Mon, 28 Apr 2025 04:34:27 -0400
|
||||||
|
Subject: [PATCH 2/5] arm: Use arm_virt_compat_set() to apply the compat
|
||||||
|
|
||||||
|
RH-Author: Shaoqin Huang <shahuang@redhat.com>
|
||||||
|
RH-MergeRequest: 353: virtio-net: disable USO for virt-rhel9.6
|
||||||
|
RH-Jira: RHEL-80313
|
||||||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
RH-Commit: [2/2] 6e7a158e65296928040e70622b3cee59e45c1c36 (shahuang/qemu-kvm)
|
||||||
|
|
||||||
|
JIRA: https://issues.redhat.com/browse/RHEL-80313
|
||||||
|
Upstream Status: RHEL only
|
||||||
|
|
||||||
|
Since the pauth and uso both should apply for the latest machine type,
|
||||||
|
move them to the arm_virt_compat_set() which applies the compat to all
|
||||||
|
machine types automatically.
|
||||||
|
|
||||||
|
Signed-off-by: Shaoqin Huang <shahuang@redhat.com>
|
||||||
|
---
|
||||||
|
hw/arm/virt.c | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
|
||||||
|
index 896deaa025..2aef94e776 100644
|
||||||
|
--- a/hw/arm/virt.c
|
||||||
|
+++ b/hw/arm/virt.c
|
||||||
|
@@ -127,6 +127,10 @@ static void arm_virt_compat_set(MachineClass *mc)
|
||||||
|
arm_virt_compat_len);
|
||||||
|
compat_props_add(mc->compat_props, arm_rhel_compat,
|
||||||
|
arm_rhel_compat_len);
|
||||||
|
+ compat_props_add(mc->compat_props, arm_rhel9_compat,
|
||||||
|
+ arm_rhel9_compat_len);
|
||||||
|
+ compat_props_add(mc->compat_props, hw_compat_rhel_9,
|
||||||
|
+ hw_compat_rhel_9_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DEFINE_VIRT_MACHINE_IMPL(latest, ...) \
|
||||||
|
@@ -3599,10 +3603,6 @@ DEFINE_VIRT_MACHINE(2, 6)
|
||||||
|
|
||||||
|
static void virt_rhel_machine_9_6_0_options(MachineClass *mc)
|
||||||
|
{
|
||||||
|
- compat_props_add(mc->compat_props, arm_rhel9_compat, arm_rhel9_compat_len);
|
||||||
|
-
|
||||||
|
- /* NB: remember to move this line to the *latest* RHEL 9 machine */
|
||||||
|
- compat_props_add(mc->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
|
||||||
|
}
|
||||||
|
DEFINE_VIRT_MACHINE_AS_LATEST(9, 6, 0)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
74
kvm-block-io-skip-head-tail-requests-on-EINVAL.patch
Normal file
74
kvm-block-io-skip-head-tail-requests-on-EINVAL.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
From e629a362860977161e43ed80bb59d1d05a06b2f2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Date: Thu, 17 Apr 2025 11:05:28 -0400
|
||||||
|
Subject: [PATCH 4/5] block/io: skip head/tail requests on EINVAL
|
||||||
|
|
||||||
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
RH-MergeRequest: 355: file-posix: probe discard alignment on Linux block devices
|
||||||
|
RH-Jira: RHEL-86032
|
||||||
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||||
|
RH-Commit: [2/3] 0028fb11f18e16e2aba9506eabb2383c406d17b5 (stefanha/centos-stream-qemu-kvm)
|
||||||
|
|
||||||
|
When guests send misaligned discard requests, the block layer breaks
|
||||||
|
them up into a misaligned head, an aligned main body, and a misaligned
|
||||||
|
tail.
|
||||||
|
|
||||||
|
The file-posix block driver on Linux returns -EINVAL on misaligned
|
||||||
|
discard requests. This causes bdrv_co_pdiscard() to fail and guests
|
||||||
|
configured with werror=stop will pause.
|
||||||
|
|
||||||
|
Add a special case for misaligned head/tail requests. Simply continue
|
||||||
|
when EINVAL is encountered so that the aligned main body of the request
|
||||||
|
can be completed and the guest is not paused. This is the best we can do
|
||||||
|
when guest discard limits do not match the host discard limits.
|
||||||
|
|
||||||
|
Fixes: https://issues.redhat.com/browse/RHEL-86032
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
|
||||||
|
Message-ID: <20250417150528.76470-3-stefanha@redhat.com>
|
||||||
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
(cherry picked from commit 4733cb0833c4b223f92ec0136980eeb5239ecb87)
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
---
|
||||||
|
block/io.c | 15 ++++++++++-----
|
||||||
|
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/block/io.c b/block/io.c
|
||||||
|
index 301514c880..3e189837a1 100644
|
||||||
|
--- a/block/io.c
|
||||||
|
+++ b/block/io.c
|
||||||
|
@@ -3105,11 +3105,12 @@ int coroutine_fn bdrv_co_pdiscard(BdrvChild *child, int64_t offset,
|
||||||
|
/* Invalidate the cached block-status data range if this discard overlaps */
|
||||||
|
bdrv_bsc_invalidate_range(bs, offset, bytes);
|
||||||
|
|
||||||
|
- /* Discard is advisory, but some devices track and coalesce
|
||||||
|
+ /*
|
||||||
|
+ * Discard is advisory, but some devices track and coalesce
|
||||||
|
* unaligned requests, so we must pass everything down rather than
|
||||||
|
- * round here. Still, most devices will just silently ignore
|
||||||
|
- * unaligned requests (by returning -ENOTSUP), so we must fragment
|
||||||
|
- * the request accordingly. */
|
||||||
|
+ * round here. Still, most devices reject unaligned requests with
|
||||||
|
+ * -EINVAL or -ENOTSUP, so we must fragment the request accordingly.
|
||||||
|
+ */
|
||||||
|
align = MAX(bs->bl.pdiscard_alignment, bs->bl.request_alignment);
|
||||||
|
assert(align % bs->bl.request_alignment == 0);
|
||||||
|
head = offset % align;
|
||||||
|
@@ -3176,7 +3177,11 @@ int coroutine_fn bdrv_co_pdiscard(BdrvChild *child, int64_t offset,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret && ret != -ENOTSUP) {
|
||||||
|
- goto out;
|
||||||
|
+ if (ret == -EINVAL && (offset % align != 0 || num % align != 0)) {
|
||||||
|
+ /* Silently skip rejected unaligned head/tail requests */
|
||||||
|
+ } else {
|
||||||
|
+ goto out; /* bail out */
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += num;
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
46
kvm-file-posix-Fix-crash-on-discard_granularity-0.patch
Normal file
46
kvm-file-posix-Fix-crash-on-discard_granularity-0.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
From 3515c6541f71817727a3a8b18ec5252644b51bc0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Date: Tue, 29 Apr 2025 17:56:54 +0200
|
||||||
|
Subject: [PATCH 5/5] file-posix: Fix crash on discard_granularity == 0
|
||||||
|
|
||||||
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
RH-MergeRequest: 355: file-posix: probe discard alignment on Linux block devices
|
||||||
|
RH-Jira: RHEL-86032
|
||||||
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||||
|
RH-Commit: [3/3] b8139a4c5b19efff1f15c314447a6abb89db0ae7 (stefanha/centos-stream-qemu-kvm)
|
||||||
|
|
||||||
|
Block devices that don't support discard have a discard_granularity of
|
||||||
|
0. Currently, this results in a division by zero when we try to make
|
||||||
|
sure that it's a multiple of request_alignment. Only try to update
|
||||||
|
bs->bl.pdiscard_alignment when we got a non-zero discard_granularity
|
||||||
|
from sysfs.
|
||||||
|
|
||||||
|
Fixes: f605796aae4 ('file-posix: probe discard alignment on Linux block devices')
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||||||
|
Message-ID: <20250429155654.102735-1-kwolf@redhat.com>
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
(cherry picked from commit 71a30d54e6ab1d5c102a8bee2c263414697402ea)
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
---
|
||||||
|
block/file-posix.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/block/file-posix.c b/block/file-posix.c
|
||||||
|
index 3d5b024459..0cb4e922c0 100644
|
||||||
|
--- a/block/file-posix.c
|
||||||
|
+++ b/block/file-posix.c
|
||||||
|
@@ -1565,7 +1565,7 @@ static void raw_refresh_limits(BlockDriverState *bs, Error **errp)
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = hdev_get_pdiscard_alignment(&st, &dalign);
|
||||||
|
- if (ret == 0) {
|
||||||
|
+ if (ret == 0 && dalign != 0) {
|
||||||
|
uint32_t ralign = bs->bl.request_alignment;
|
||||||
|
|
||||||
|
/* Probably never happens, but handle it just in case */
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
131
kvm-file-posix-probe-discard-alignment-on-Linux-block-de.patch
Normal file
131
kvm-file-posix-probe-discard-alignment-on-Linux-block-de.patch
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
From 29ae77d77cabc3582267cb8a7c4fe10d279a21e6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Date: Thu, 17 Apr 2025 11:05:27 -0400
|
||||||
|
Subject: [PATCH 3/5] file-posix: probe discard alignment on Linux block
|
||||||
|
devices
|
||||||
|
|
||||||
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
RH-MergeRequest: 355: file-posix: probe discard alignment on Linux block devices
|
||||||
|
RH-Jira: RHEL-86032
|
||||||
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||||
|
RH-Commit: [1/3] bb3c17b0da6edeb209874e97d4e2c3b1762a1749 (stefanha/centos-stream-qemu-kvm)
|
||||||
|
|
||||||
|
Populate the pdiscard_alignment block limit so the block layer is able
|
||||||
|
align discard requests correctly.
|
||||||
|
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
Message-ID: <20250417150528.76470-2-stefanha@redhat.com>
|
||||||
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
(cherry picked from commit f605796aae42885034400c83ed6a9b07cd6d6481)
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
---
|
||||||
|
block/file-posix.c | 67 +++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
1 file changed, 66 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/block/file-posix.c b/block/file-posix.c
|
||||||
|
index ff928b5e85..3d5b024459 100644
|
||||||
|
--- a/block/file-posix.c
|
||||||
|
+++ b/block/file-posix.c
|
||||||
|
@@ -1268,10 +1268,10 @@ static int get_sysfs_zoned_model(struct stat *st, BlockZoneModel *zoned)
|
||||||
|
}
|
||||||
|
#endif /* defined(CONFIG_BLKZONED) */
|
||||||
|
|
||||||
|
+#ifdef CONFIG_LINUX
|
||||||
|
/*
|
||||||
|
* Get a sysfs attribute value as a long integer.
|
||||||
|
*/
|
||||||
|
-#ifdef CONFIG_LINUX
|
||||||
|
static long get_sysfs_long_val(struct stat *st, const char *attribute)
|
||||||
|
{
|
||||||
|
g_autofree char *str = NULL;
|
||||||
|
@@ -1291,6 +1291,30 @@ static long get_sysfs_long_val(struct stat *st, const char *attribute)
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Get a sysfs attribute value as a uint32_t.
|
||||||
|
+ */
|
||||||
|
+static int get_sysfs_u32_val(struct stat *st, const char *attribute,
|
||||||
|
+ uint32_t *u32)
|
||||||
|
+{
|
||||||
|
+ g_autofree char *str = NULL;
|
||||||
|
+ const char *end;
|
||||||
|
+ unsigned int val;
|
||||||
|
+ int ret;
|
||||||
|
+
|
||||||
|
+ ret = get_sysfs_str_val(st, attribute, &str);
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* The file is ended with '\n', pass 'end' to accept that. */
|
||||||
|
+ ret = qemu_strtoui(str, &end, 10, &val);
|
||||||
|
+ if (ret == 0 && end && *end == '\0') {
|
||||||
|
+ *u32 = val;
|
||||||
|
+ }
|
||||||
|
+ return ret;
|
||||||
|
+}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int hdev_get_max_segments(int fd, struct stat *st)
|
||||||
|
@@ -1310,6 +1334,23 @@ static int hdev_get_max_segments(int fd, struct stat *st)
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * Fills in *dalign with the discard alignment and returns 0 on success,
|
||||||
|
+ * -errno otherwise.
|
||||||
|
+ */
|
||||||
|
+static int hdev_get_pdiscard_alignment(struct stat *st, uint32_t *dalign)
|
||||||
|
+{
|
||||||
|
+#ifdef CONFIG_LINUX
|
||||||
|
+ /*
|
||||||
|
+ * Note that Linux "discard_granularity" is QEMU "discard_alignment". Linux
|
||||||
|
+ * "discard_alignment" is something else.
|
||||||
|
+ */
|
||||||
|
+ return get_sysfs_u32_val(st, "discard_granularity", dalign);
|
||||||
|
+#else
|
||||||
|
+ return -ENOTSUP;
|
||||||
|
+#endif
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#if defined(CONFIG_BLKZONED)
|
||||||
|
/*
|
||||||
|
* If the reset_all flag is true, then the wps of zone whose state is
|
||||||
|
@@ -1519,6 +1560,30 @@ static void raw_refresh_limits(BlockDriverState *bs, Error **errp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (S_ISBLK(st.st_mode)) {
|
||||||
|
+ uint32_t dalign = 0;
|
||||||
|
+ int ret;
|
||||||
|
+
|
||||||
|
+ ret = hdev_get_pdiscard_alignment(&st, &dalign);
|
||||||
|
+ if (ret == 0) {
|
||||||
|
+ uint32_t ralign = bs->bl.request_alignment;
|
||||||
|
+
|
||||||
|
+ /* Probably never happens, but handle it just in case */
|
||||||
|
+ if (dalign < ralign && (ralign % dalign == 0)) {
|
||||||
|
+ dalign = ralign;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* The block layer requires a multiple of request_alignment */
|
||||||
|
+ if (dalign % ralign != 0) {
|
||||||
|
+ error_setg(errp, "Invalid pdiscard_alignment limit %u is not a "
|
||||||
|
+ "multiple of request_alignment %u", dalign, ralign);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ bs->bl.pdiscard_alignment = dalign;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
raw_refresh_zoned_limits(bs, &st, errp);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
135
kvm-virtio-net-disable-USO-for-virt-rhel9.6.patch
Normal file
135
kvm-virtio-net-disable-USO-for-virt-rhel9.6.patch
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
From a7cd7f5b3bd6df30e75532fb19b645c5349f6183 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shaoqin Huang <shahuang@redhat.com>
|
||||||
|
Date: Thu, 24 Apr 2025 04:48:29 -0400
|
||||||
|
Subject: [PATCH 1/5] virtio-net: disable USO for virt-rhel9.6
|
||||||
|
|
||||||
|
RH-Author: Shaoqin Huang <shahuang@redhat.com>
|
||||||
|
RH-MergeRequest: 353: virtio-net: disable USO for virt-rhel9.6
|
||||||
|
RH-Jira: RHEL-80313
|
||||||
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
RH-Commit: [1/2] c7099480e656106219040d45ce7b76b19376227a (shahuang/qemu-kvm)
|
||||||
|
|
||||||
|
JIRA: https://issues.redhat.com/browse/RHEL-80313
|
||||||
|
Upstream Status: RHEL only
|
||||||
|
|
||||||
|
RHEL9 kernels have USO* disabled while RHEL10 has it enabled, this can
|
||||||
|
cause the migration to fail when running a RHEL9 qemu on a RHEL10 kernel
|
||||||
|
and then migrate to a RHEL9 kernel.
|
||||||
|
|
||||||
|
Make sure the virt-rhel9.6 machine type in RHEL9 stay the same
|
||||||
|
independent of the kernel.
|
||||||
|
|
||||||
|
Signed-off-by: Shaoqin Huang <shahuang@redhat.com>
|
||||||
|
---
|
||||||
|
hw/arm/virt.c | 3 +++
|
||||||
|
hw/core/machine.c | 15 +++++++++------
|
||||||
|
hw/i386/pc_piix.c | 1 +
|
||||||
|
hw/i386/pc_q35.c | 3 +++
|
||||||
|
hw/s390x/s390-virtio-ccw.c | 2 ++
|
||||||
|
include/hw/boards.h | 3 +++
|
||||||
|
6 files changed, 21 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
|
||||||
|
index c5270a5abc..896deaa025 100644
|
||||||
|
--- a/hw/arm/virt.c
|
||||||
|
+++ b/hw/arm/virt.c
|
||||||
|
@@ -3600,6 +3600,9 @@ DEFINE_VIRT_MACHINE(2, 6)
|
||||||
|
static void virt_rhel_machine_9_6_0_options(MachineClass *mc)
|
||||||
|
{
|
||||||
|
compat_props_add(mc->compat_props, arm_rhel9_compat, arm_rhel9_compat_len);
|
||||||
|
+
|
||||||
|
+ /* NB: remember to move this line to the *latest* RHEL 9 machine */
|
||||||
|
+ compat_props_add(mc->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
|
||||||
|
}
|
||||||
|
DEFINE_VIRT_MACHINE_AS_LATEST(9, 6, 0)
|
||||||
|
|
||||||
|
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
||||||
|
index add42660f8..37751f6b9b 100644
|
||||||
|
--- a/hw/core/machine.c
|
||||||
|
+++ b/hw/core/machine.c
|
||||||
|
@@ -305,6 +305,15 @@ GlobalProperty hw_compat_2_1[] = {
|
||||||
|
};
|
||||||
|
const size_t hw_compat_2_1_len = G_N_ELEMENTS(hw_compat_2_1);
|
||||||
|
|
||||||
|
+/* Apply this to all RHEL9 boards going backward and forward */
|
||||||
|
+GlobalProperty hw_compat_rhel_9[] = {
|
||||||
|
+ /* supported by userspace, but RHEL 9 *kernels* do not support USO. */
|
||||||
|
+ { TYPE_VIRTIO_NET, "host_uso", "off"},
|
||||||
|
+ { TYPE_VIRTIO_NET, "guest_uso4", "off"},
|
||||||
|
+ { TYPE_VIRTIO_NET, "guest_uso6", "off"},
|
||||||
|
+};
|
||||||
|
+const size_t hw_compat_rhel_9_len = G_N_ELEMENTS(hw_compat_rhel_9);
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* RHEL only: machine types for previous major releases are deprecated
|
||||||
|
*/
|
||||||
|
@@ -341,12 +350,6 @@ GlobalProperty hw_compat_rhel_9_5[] = {
|
||||||
|
const size_t hw_compat_rhel_9_5_len = G_N_ELEMENTS(hw_compat_rhel_9_5);
|
||||||
|
|
||||||
|
GlobalProperty hw_compat_rhel_9_4[] = {
|
||||||
|
- /* hw_compat_rhel_9_4 from hw_compat_8_0 */
|
||||||
|
- { TYPE_VIRTIO_NET, "host_uso", "off"},
|
||||||
|
- /* hw_compat_rhel_9_4 from hw_compat_8_0 */
|
||||||
|
- { TYPE_VIRTIO_NET, "guest_uso4", "off"},
|
||||||
|
- /* hw_compat_rhel_9_4 from hw_compat_8_0 */
|
||||||
|
- { TYPE_VIRTIO_NET, "guest_uso6", "off"},
|
||||||
|
/* hw_compat_rhel_9_4 from hw_compat_8_1 */
|
||||||
|
{ TYPE_PCI_BRIDGE, "x-pci-express-writeable-slt-bug", "true" },
|
||||||
|
/* hw_compat_rhel_9_4 from hw_compat_8_1 */
|
||||||
|
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
|
||||||
|
index 656abb5d39..10764bf596 100644
|
||||||
|
--- a/hw/i386/pc_piix.c
|
||||||
|
+++ b/hw/i386/pc_piix.c
|
||||||
|
@@ -929,6 +929,7 @@ static void pc_i440fx_rhel_machine_7_6_0_options(MachineClass *m)
|
||||||
|
compat_props_add(m->compat_props, pc_rhel_8_0_compat, pc_rhel_8_0_compat_len);
|
||||||
|
compat_props_add(m->compat_props, hw_compat_rhel_7_6, hw_compat_rhel_7_6_len);
|
||||||
|
compat_props_add(m->compat_props, pc_rhel_7_6_compat, pc_rhel_7_6_compat_len);
|
||||||
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_I440FX_MACHINE(7, 6, 0);
|
||||||
|
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
|
||||||
|
index 578f63524f..5bf08be0fb 100644
|
||||||
|
--- a/hw/i386/pc_q35.c
|
||||||
|
+++ b/hw/i386/pc_q35.c
|
||||||
|
@@ -679,6 +679,9 @@ static void pc_q35_rhel_machine_9_6_0_options(MachineClass *m)
|
||||||
|
m->desc = "RHEL-9.6.0 PC (Q35 + ICH9, 2009)";
|
||||||
|
pcmc->smbios_stream_product = "RHEL";
|
||||||
|
pcmc->smbios_stream_version = "9.6.0";
|
||||||
|
+
|
||||||
|
+ /* NB: remember to move this line to the *latest* RHEL 9 machine */
|
||||||
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_Q35_MACHINE_BUGFIX(9, 6, 0);
|
||||||
|
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
|
||||||
|
index 9f4ad01789..312e8f18aa 100644
|
||||||
|
--- a/hw/s390x/s390-virtio-ccw.c
|
||||||
|
+++ b/hw/s390x/s390-virtio-ccw.c
|
||||||
|
@@ -1348,6 +1348,8 @@ static void ccw_rhel_machine_9_6_0_instance_options(MachineState *machine)
|
||||||
|
|
||||||
|
static void ccw_rhel_machine_9_6_0_class_options(MachineClass *mc)
|
||||||
|
{
|
||||||
|
+ /* NB: remember to move this line to the *latest* RHEL 9 machine */
|
||||||
|
+ compat_props_add(mc->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
|
||||||
|
}
|
||||||
|
DEFINE_CCW_MACHINE_AS_LATEST(9, 6, 0);
|
||||||
|
|
||||||
|
diff --git a/include/hw/boards.h b/include/hw/boards.h
|
||||||
|
index fe011b1e86..8f3fa40cf9 100644
|
||||||
|
--- a/include/hw/boards.h
|
||||||
|
+++ b/include/hw/boards.h
|
||||||
|
@@ -803,6 +803,9 @@ extern const size_t hw_compat_2_2_len;
|
||||||
|
extern GlobalProperty hw_compat_2_1[];
|
||||||
|
extern const size_t hw_compat_2_1_len;
|
||||||
|
|
||||||
|
+extern GlobalProperty hw_compat_rhel_9[];
|
||||||
|
+extern const size_t hw_compat_rhel_9_len;
|
||||||
|
+
|
||||||
|
extern GlobalProperty hw_compat_rhel_9_6[];
|
||||||
|
extern const size_t hw_compat_rhel_9_6_len;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
@ -149,7 +149,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch}:%{version} \
|
|||||||
Summary: QEMU is a machine emulator and virtualizer
|
Summary: QEMU is a machine emulator and virtualizer
|
||||||
Name: qemu-kvm
|
Name: qemu-kvm
|
||||||
Version: 9.1.0
|
Version: 9.1.0
|
||||||
Release: 19%{?rcrel}%{?dist}%{?cc_suffix}
|
Release: 20%{?rcrel}%{?dist}%{?cc_suffix}
|
||||||
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
||||||
# Epoch 15 used for RHEL 8
|
# Epoch 15 used for RHEL 8
|
||||||
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
|
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
|
||||||
@ -549,6 +549,16 @@ Patch188: kvm-redhat-Enable-virtio-mem-on-s390x.patch
|
|||||||
Patch189: kvm-target-i386-Fix-conditional-CONFIG_SYNDBG-enablement.patch
|
Patch189: kvm-target-i386-Fix-conditional-CONFIG_SYNDBG-enablement.patch
|
||||||
# For RHEL-7130 - [Hyper-V][RHEL9.2] Nested Hyper-V on KVM: L1 Windows VM with BIOS mode fails to boot up when using '-cpu host,hv_passthrough’ flag
|
# For RHEL-7130 - [Hyper-V][RHEL9.2] Nested Hyper-V on KVM: L1 Windows VM with BIOS mode fails to boot up when using '-cpu host,hv_passthrough’ flag
|
||||||
Patch190: kvm-target-i386-Exclude-hv-syndbg-from-hv-passthrough.patch
|
Patch190: kvm-target-i386-Exclude-hv-syndbg-from-hv-passthrough.patch
|
||||||
|
# For RHEL-80313 - Unable to migrate VM from RHEL10.0/qemu-kvm-9.6 to RHEL9.6/qemu-kvm-9.6
|
||||||
|
Patch191: kvm-virtio-net-disable-USO-for-virt-rhel9.6.patch
|
||||||
|
# For RHEL-80313 - Unable to migrate VM from RHEL10.0/qemu-kvm-9.6 to RHEL9.6/qemu-kvm-9.6
|
||||||
|
Patch192: kvm-arm-Use-arm_virt_compat_set-to-apply-the-compat.patch
|
||||||
|
# For RHEL-86032 - QEMU sends unaligned discards on 4K devices [RHEL-9.7]
|
||||||
|
Patch193: kvm-file-posix-probe-discard-alignment-on-Linux-block-de.patch
|
||||||
|
# For RHEL-86032 - QEMU sends unaligned discards on 4K devices [RHEL-9.7]
|
||||||
|
Patch194: kvm-block-io-skip-head-tail-requests-on-EINVAL.patch
|
||||||
|
# For RHEL-86032 - QEMU sends unaligned discards on 4K devices [RHEL-9.7]
|
||||||
|
Patch195: kvm-file-posix-Fix-crash-on-discard_granularity-0.patch
|
||||||
|
|
||||||
%if %{have_clang}
|
%if %{have_clang}
|
||||||
BuildRequires: clang
|
BuildRequires: clang
|
||||||
@ -1617,6 +1627,17 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 13 2025 Jon Maloy <jmaloy@redhat.com> - 9.1.0-20
|
||||||
|
- kvm-virtio-net-disable-USO-for-virt-rhel9.6.patch [RHEL-80313]
|
||||||
|
- kvm-arm-Use-arm_virt_compat_set-to-apply-the-compat.patch [RHEL-80313]
|
||||||
|
- kvm-file-posix-probe-discard-alignment-on-Linux-block-de.patch [RHEL-86032]
|
||||||
|
- kvm-block-io-skip-head-tail-requests-on-EINVAL.patch [RHEL-86032]
|
||||||
|
- kvm-file-posix-Fix-crash-on-discard_granularity-0.patch [RHEL-86032]
|
||||||
|
- Resolves: RHEL-80313
|
||||||
|
(Unable to migrate VM from RHEL10.0/qemu-kvm-9.6 to RHEL9.6/qemu-kvm-9.6)
|
||||||
|
- Resolves: RHEL-86032
|
||||||
|
(QEMU sends unaligned discards on 4K devices [RHEL-9.7])
|
||||||
|
|
||||||
* Mon Apr 28 2025 Jon Maloy <jmaloy@redhat.com> - 9.1.0-19
|
* Mon Apr 28 2025 Jon Maloy <jmaloy@redhat.com> - 9.1.0-19
|
||||||
- kvm-target-i386-Fix-conditional-CONFIG_SYNDBG-enablement.patch [RHEL-7130]
|
- kvm-target-i386-Fix-conditional-CONFIG_SYNDBG-enablement.patch [RHEL-7130]
|
||||||
- kvm-target-i386-Exclude-hv-syndbg-from-hv-passthrough.patch [RHEL-7130]
|
- kvm-target-i386-Exclude-hv-syndbg-from-hv-passthrough.patch [RHEL-7130]
|
||||||
|
Loading…
Reference in New Issue
Block a user