import qemu-kvm-6.2.0-20.module+el8.7.0+16689+53d59bc2.1
This commit is contained in:
parent
3571a5f685
commit
f244cd3cfa
@ -1,18 +1,18 @@
|
||||
From aba4d52b3c06aaf5a7553db6dadcb02645e153f1 Mon Sep 17 00:00:00 2001
|
||||
From cd49a32e9c9e33efc51652b68180a07683814b4d Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 11 Jul 2022 18:11:12 -0300
|
||||
Subject: [PATCH 30/34] Add dirty-sync-missed-zero-copy migration stat
|
||||
Subject: [PATCH 4/9] Add dirty-sync-missed-zero-copy migration stat
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [30/34] 95d0255ea03cb7c986dc64645e95e10a5fbe0f9a
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [4/8] 56cce61cf95aafc8dafae7531b43c166084abfec
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
||||
Acked-by: Markus Armbruster <armbru@redhat.com>
|
||||
@ -29,10 +29,10 @@ Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
||||
3 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index 87b4a6c3f9..a3e0ac954c 100644
|
||||
index e100b30f00..952a26c5c2 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -1006,6 +1006,8 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s)
|
||||
@@ -1012,6 +1012,8 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s)
|
||||
info->ram->normal_bytes = ram_counters.normal * page_size;
|
||||
info->ram->mbps = s->mbps;
|
||||
info->ram->dirty_sync_count = ram_counters.dirty_sync_count;
|
||||
@ -83,5 +83,5 @@ index c8ec260ab0..94bc5c69db 100644
|
||||
##
|
||||
# @XBZRLECacheStats:
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -0,0 +1,109 @@
|
||||
From ea5299b5dde7d0b6b2f93cb646e6a24c9f105466 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Wed, 23 Mar 2022 12:33:25 +0100
|
||||
Subject: [PATCH 13/24] KVM: x86: workaround invalid CPUID[0xD,9] info on some
|
||||
AMD processors
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Paul Lai <plai@redhat.com>
|
||||
RH-MergeRequest: 176: Enable KVM AMX support
|
||||
RH-Commit: [13/13] 38f147c911258e84e01336271ebd23a1c24371fc
|
||||
RH-Bugzilla: 1916415
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
Some AMD processors expose the PKRU extended save state even if they do not have
|
||||
the related PKU feature in CPUID. Worse, when they do they report a size of
|
||||
64, whereas the expected size of the PKRU extended save state is 8, therefore
|
||||
the esa->size == eax assertion does not hold.
|
||||
|
||||
The state is already ignored by KVM_GET_SUPPORTED_CPUID because it
|
||||
was not enabled in the host XCR0. However, QEMU kvm_cpu_xsave_init()
|
||||
runs before QEMU invokes arch_prctl() to enable dynamically-enabled
|
||||
save states such as XTILEDATA, and KVM_GET_SUPPORTED_CPUID hides save
|
||||
states that have yet to be enabled. Therefore, kvm_cpu_xsave_init()
|
||||
needs to consult the host CPUID instead of KVM_GET_SUPPORTED_CPUID,
|
||||
and dies with an assertion failure.
|
||||
|
||||
When setting up the ExtSaveArea array to match the host, ignore features that
|
||||
KVM does not report as supported. This will cause QEMU to skip the incorrect
|
||||
CPUID leaf instead of tripping the assertion.
|
||||
|
||||
Closes: https://gitlab.com/qemu-project/qemu/-/issues/916
|
||||
Reported-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Analyzed-by: Yang Zhong <yang.zhong@intel.com>
|
||||
Reported-by: Peter Krempa <pkrempa@redhat.com>
|
||||
Tested-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 58f7db26f21c690cf9a669c314cfd7371506084a)
|
||||
Signed-off-by: Paul Lai <plai@redhat.com>
|
||||
---
|
||||
target/i386/cpu.c | 4 ++--
|
||||
target/i386/cpu.h | 2 ++
|
||||
target/i386/kvm/kvm-cpu.c | 19 ++++++++++++-------
|
||||
3 files changed, 16 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||
index 09e08f7f38..0543b846ff 100644
|
||||
--- a/target/i386/cpu.c
|
||||
+++ b/target/i386/cpu.c
|
||||
@@ -4980,8 +4980,8 @@ CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
|
||||
return cpu_list;
|
||||
}
|
||||
|
||||
-static uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||
- bool migratable_only)
|
||||
+uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||
+ bool migratable_only)
|
||||
{
|
||||
FeatureWordInfo *wi = &feature_word_info[w];
|
||||
uint64_t r = 0;
|
||||
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||
index 8ab2a4042a..006b735fe4 100644
|
||||
--- a/target/i386/cpu.h
|
||||
+++ b/target/i386/cpu.h
|
||||
@@ -604,6 +604,8 @@ typedef enum FeatureWord {
|
||||
} FeatureWord;
|
||||
|
||||
typedef uint64_t FeatureWordArray[FEATURE_WORDS];
|
||||
+uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||
+ bool migratable_only);
|
||||
|
||||
/* cpuid_features bits */
|
||||
#define CPUID_FP87 (1U << 0)
|
||||
diff --git a/target/i386/kvm/kvm-cpu.c b/target/i386/kvm/kvm-cpu.c
|
||||
index bdc967c484..74c1396a93 100644
|
||||
--- a/target/i386/kvm/kvm-cpu.c
|
||||
+++ b/target/i386/kvm/kvm-cpu.c
|
||||
@@ -99,13 +99,18 @@ static void kvm_cpu_xsave_init(void)
|
||||
for (i = XSTATE_SSE_BIT + 1; i < XSAVE_STATE_AREA_COUNT; i++) {
|
||||
ExtSaveArea *esa = &x86_ext_save_areas[i];
|
||||
|
||||
- if (esa->size) {
|
||||
- host_cpuid(0xd, i, &eax, &ebx, &ecx, &edx);
|
||||
- if (eax != 0) {
|
||||
- assert(esa->size == eax);
|
||||
- esa->offset = ebx;
|
||||
- esa->ecx = ecx;
|
||||
- }
|
||||
+ if (!esa->size) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ if ((x86_cpu_get_supported_feature_word(esa->feature, false) & esa->bits)
|
||||
+ != esa->bits) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ host_cpuid(0xd, i, &eax, &ebx, &ecx, &edx);
|
||||
+ if (eax != 0) {
|
||||
+ assert(esa->size == eax);
|
||||
+ esa->offset = ebx;
|
||||
+ esa->ecx = ecx;
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,19 +1,19 @@
|
||||
From dc840cee933cfc1790b7624c88052f6deb43101d Mon Sep 17 00:00:00 2001
|
||||
From 7eeec7c008e947bc3e1fed682791092b408852c6 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 17/34] QIOChannel: Add flags on io_writev and introduce
|
||||
Subject: [PATCH 17/37] QIOChannel: Add flags on io_writev and introduce
|
||||
io_flush callback
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [17/34] 8ebb6301a83816937d7b87709cf906e1a9c16b01
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [17/26] 7bde4e79fd3f76a6cc84d9cacf50420584ddd35c
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Add flags to io_writev and introduce io_flush as optional callback to
|
||||
QIOChannelClass, allowing the implementation of zero copy writes by
|
||||
|
@ -1,18 +1,18 @@
|
||||
From f81698b323294b330a5dfb7b9eabff025596bbde Mon Sep 17 00:00:00 2001
|
||||
From a6c4aed18a027ce8e107fdf9184e9ea43a86f843 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Thu, 4 Aug 2022 04:10:43 -0300
|
||||
Subject: [PATCH 34/34] QIOChannelSocket: Add support for MSG_ZEROCOPY + IPV6
|
||||
Subject: [PATCH 8/9] QIOChannelSocket: Add support for MSG_ZEROCOPY + IPV6
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [34/34] 549d876ec7108bd11d01754bd1b893ba3e79deb9
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [8/8] 6e26ee7c9ebaedb07623313cb0678816867751dd
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
For using MSG_ZEROCOPY, there are two steps:
|
||||
1 - io_writev() the packet, which enqueues the packet for sending, and
|
||||
@ -52,5 +52,5 @@ index cf0d67c51b..6010ad7017 100644
|
||||
"Wrong cmsg in errqueue");
|
||||
return -1;
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 9995a5367d511f8597e4006841853eb9b5888065 Mon Sep 17 00:00:00 2001
|
||||
From 905cc8032fc63619efb3f0a8c9754b7190bcc43a Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 11 Jul 2022 18:11:11 -0300
|
||||
Subject: [PATCH 29/34] QIOChannelSocket: Fix zero-copy flush returning code 1
|
||||
Subject: [PATCH 3/9] QIOChannelSocket: Fix zero-copy flush returning code 1
|
||||
when nothing sent
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [29/34] d383ee721a8b57a4c3b70e1307cbf7db9e22d395
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [3/8] 1ad707702fa26cd4d0fa1870c21f5f26ae93ff97
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
If flush is called when no buffer was sent with MSG_ZEROCOPY, it currently
|
||||
returns 1. This return code should be used only when Linux fails to use
|
||||
@ -61,5 +61,5 @@ index df858da924..cf0d67c51b 100644
|
||||
received = recvmsg(sioc->fd, &msg, MSG_ERRQUEUE);
|
||||
if (received < 0) {
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 9a4ecf0b3cfccd31a1d41716e3a4249a1d53455c Mon Sep 17 00:00:00 2001
|
||||
From c1fd32d93ae42fcf3c1a25f4d56e669f251087d8 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 20 Jun 2022 02:39:43 -0300
|
||||
Subject: [PATCH 25/34] QIOChannelSocket: Fix zero-copy send so socket flush
|
||||
Subject: [PATCH 25/37] QIOChannelSocket: Fix zero-copy send so socket flush
|
||||
works
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [25/34] cf8dc62075bc8b9aa2621315842a2b2458e9cd82
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [25/26] 3ede94f3269e21c3ace073ed1a6f24696315bcbb
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Somewhere between v6 and v7 the of the zero-copy-send patchset a crucial
|
||||
part of the flushing mechanism got missing: incrementing zero_copy_queued.
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 118f6f61c9ca27bb112d1e39367510d2a45a72fb Mon Sep 17 00:00:00 2001
|
||||
From 5fd7af93a06adaddbae719aabbaf912159f4fb28 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:25 -0300
|
||||
Subject: [PATCH 18/34] QIOChannelSocket: Implement io_writev zero copy flag &
|
||||
Subject: [PATCH 18/37] QIOChannelSocket: Implement io_writev zero copy flag &
|
||||
io_flush for CONFIG_LINUX
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [18/34] b7f50e8485dc5e01c69b2070915592b28bdafde6
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [18/26] 6f65c8c879a5df57213b541d58285b65178f8547
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
For CONFIG_LINUX, implement the new zero copy flag and the optional callback
|
||||
io_flush on QIOChannelSocket, but enables it only when MSG_ZEROCOPY
|
||||
|
@ -1,19 +1,19 @@
|
||||
From f1e21f3d46e1481a5cdd2f297831742b5b2d8ecf Mon Sep 17 00:00:00 2001
|
||||
From cbfaf86331c2b2e01a2083303b7554672bf991b7 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 20 Jun 2022 02:39:42 -0300
|
||||
Subject: [PATCH 24/34] QIOChannelSocket: Introduce assert and reduce ifdefs to
|
||||
Subject: [PATCH 24/37] QIOChannelSocket: Introduce assert and reduce ifdefs to
|
||||
improve readability
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [24/34] 0dcd79e1e89c881e56c3ef2e421910176b03d881
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [24/26] b50e2e65307149f247155a7f7a032dc99e57718d
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
During implementation of MSG_ZEROCOPY feature, a lot of #ifdefs were
|
||||
introduced, particularly at qio_channel_socket_writev().
|
||||
|
@ -1,20 +1,20 @@
|
||||
From fb23aa4bc1842bb78e270ee7c4fdd663e45e2317 Mon Sep 17 00:00:00 2001
|
||||
From e0e4f01c6f4fb5881960f72ae4e80951b711131e Mon Sep 17 00:00:00 2001
|
||||
From: Stefano Garzarella <sgarzare@redhat.com>
|
||||
Date: Thu, 24 Mar 2022 16:04:57 +0100
|
||||
Subject: [PATCH 01/11] RHEL: disable "seqpacket" for "vhost-vsock-device" in
|
||||
Subject: [PATCH 1/5] RHEL: disable "seqpacket" for "vhost-vsock-device" in
|
||||
rhel8.6.0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Stefano Garzarella <sgarzare@redhat.com>
|
||||
RH-MergeRequest: 146: RHEL: disable "seqpacket" for "vhost-vsock-device" in rhel8.6.0 [rhel-8.6.0.z]
|
||||
RH-Commit: [1/1] 516ee668b84252528de6f4946298089b153846f1
|
||||
RH-Bugzilla: 2071103
|
||||
RH-Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Eugenio Pérez <eperezma@redhat.com>
|
||||
RH-MergeRequest: 136: RHEL: disable "seqpacket" for "vhost-vsock-device" in rhel8.6.0 [rhel-8.7.0]
|
||||
RH-Commit: [1/1] d82ea09e123679521503689f7d9af1c03dc71bfc
|
||||
RH-Bugzilla: 2068202
|
||||
RH-Acked-by: Jason Wang <None>
|
||||
RH-Acked-by: Eugenio Pérez <None>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
|
||||
vhost-vsock device in RHEL 8 kernels doesn't support seqpacket.
|
||||
To avoid problems when migrating a VM from RHEL 9 host, we need to
|
||||
|
@ -1,21 +1,33 @@
|
||||
From dc2e9ec1e014950c7918e23a3e9b0096b34a4a92 Mon Sep 17 00:00:00 2001
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
Date: Wed, 9 Mar 2022 10:31:53 +0000
|
||||
Subject: [PATCH 1/6] Revert "redhat: Add hw_compat_4_2_extra and apply to
|
||||
From e626dc16d130c724c400b99a93daad0a9abeae59 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Tue, 22 Mar 2022 19:23:36 -0400
|
||||
Subject: [PATCH 01/18] Revert "redhat: Add hw_compat_4_2_extra and apply to
|
||||
upstream machines"
|
||||
|
||||
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 121: x86: Remove upstream compat machines
|
||||
RH-Commit: [1/3] 7a3e416b5a464a2a7892337289443268189baf44
|
||||
RH-Bugzilla: 2061856
|
||||
RH-Acked-by: Stephen Tweedie <None>
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 131: Revert "redhat: Add hw_compat_4_2_extra and apply to upstream machines"
|
||||
RH-Commit: [1/3] 47b7d9e5062f5e215d5ed1a3ecdc1a87ac3fa630 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062613
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/2062613
|
||||
UPSTREAM: no
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=44038000
|
||||
|
||||
commit dc2e9ec1e014950c7918e23a3e9b0096b34a4a92
|
||||
Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Date: Wed Mar 9 10:31:53 2022 +0000
|
||||
|
||||
Revert "redhat: Add hw_compat_4_2_extra and apply to upstream machines"
|
||||
|
||||
This reverts commit 66882f9a3230246409f3918424aca26add5c034a.
|
||||
We no longer need these compat machines it was added for.
|
||||
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
(cherry picked from commit dc2e9ec1e014950c7918e23a3e9b0096b34a4a92)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/i386/pc.c | 12 ------------
|
||||
hw/i386/pc_piix.c | 6 ------
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 27fbe5c920c6680f9dbe994963183ee515f40c12 Mon Sep 17 00:00:00 2001
|
||||
From 96edd15df257f1d1496397a6fac24b4316570d7e Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Thu, 14 Apr 2022 16:45:30 -0400
|
||||
Subject: [PATCH 1/2] Revert redhat: Add some devices for exporting upstream
|
||||
Subject: [PATCH 1/3] Revert redhat: Add some devices for exporting upstream
|
||||
machine types
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 177: Revert redhat: Add some devices for exporting upstream machine types
|
||||
RH-Commit: [1/1] 9e5dd81cc2e2c8f1df76de9f75d815c91c250c69 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2077928
|
||||
RH-MergeRequest: 156: Revert redhat: Add some devices for exporting upstream machine types
|
||||
RH-Commit: [1/1] f25d0da3a181136917ead82f5a5c59efe3fa445a (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2065043
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2077928
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2065043
|
||||
Upstream: no
|
||||
|
||||
Manual revert of commit 70d3924521c9bfd912bcf1a1fc76f49eb377de46, since
|
||||
@ -124,5 +124,5 @@ index 202e032524..9520471be2 100644
|
||||
warn_report("Hpet's intcap not initialized");
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
2.35.1
|
||||
|
||||
|
@ -1,21 +1,33 @@
|
||||
From 597cb6ca1da4a3eea77c1e4928f55203a1d5c70c Mon Sep 17 00:00:00 2001
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
Date: Wed, 9 Mar 2022 10:32:39 +0000
|
||||
Subject: [PATCH 2/6] Revert "redhat: Enable FDC device for upstream machines
|
||||
From 5bf8f1d69fea1225e927fbb3efe549a2a9d47d92 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Tue, 22 Mar 2022 19:23:36 -0400
|
||||
Subject: [PATCH 02/18] Revert "redhat: Enable FDC device for upstream machines
|
||||
too"
|
||||
|
||||
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 121: x86: Remove upstream compat machines
|
||||
RH-Commit: [2/3] 1d4d284babe8fe5b25ccb4ca85daf6f8c6cedcc2
|
||||
RH-Bugzilla: 2061856
|
||||
RH-Acked-by: Stephen Tweedie <None>
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 131: Revert "redhat: Add hw_compat_4_2_extra and apply to upstream machines"
|
||||
RH-Commit: [2/3] 4e3c945e3de9bb9d9a6d24115f0719168c9669fe (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062613
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/2062613
|
||||
UPSTREAM: no
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=44038000
|
||||
|
||||
commit 597cb6ca1da4a3eea77c1e4928f55203a1d5c70c
|
||||
Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Date: Wed Mar 9 10:32:39 2022 +0000
|
||||
|
||||
Revert "redhat: Enable FDC device for upstream machines too"
|
||||
|
||||
This reverts commit c4d1aa8bf21fe98da94a9cff30b7c25bed12c17f.
|
||||
We no longer need these compat machines it was added for.
|
||||
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
(cherry picked from commit 597cb6ca1da4a3eea77c1e4928f55203a1d5c70c)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/block/fdc.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
@ -1,21 +1,32 @@
|
||||
From f3b50d6d4ae0be9e64aafe6a15f5423bab4899e9 Mon Sep 17 00:00:00 2001
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
Date: Wed, 9 Mar 2022 10:34:58 +0000
|
||||
Subject: [PATCH 3/6] Revert "redhat: Expose upstream machines pc-4.2 and
|
||||
From ee3cae3bb349469edcf725a1c5161521e95dcb9f Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Tue, 22 Mar 2022 19:23:36 -0400
|
||||
Subject: [PATCH 03/18] Revert "redhat: Expose upstream machines pc-4.2 and
|
||||
pc-2.11"
|
||||
|
||||
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 121: x86: Remove upstream compat machines
|
||||
RH-Commit: [3/3] 9aef91a363110034776c8d6b3013fc06aec9c674
|
||||
RH-Bugzilla: 2061856
|
||||
RH-Acked-by: Stephen Tweedie <None>
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 131: Revert "redhat: Add hw_compat_4_2_extra and apply to upstream machines"
|
||||
RH-Commit: [3/3] 35cee68034580f81b3aa916921eecd2fdfa7dd15 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062613
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/2062613
|
||||
UPSTREAM: no
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=44038000
|
||||
|
||||
commit f3b50d6d4ae0be9e64aafe6a15f5423bab4899e9
|
||||
Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Date: Wed Mar 9 10:34:58 2022 +0000
|
||||
|
||||
Revert "redhat: Expose upstream machines pc-4.2 and pc-2.11"
|
||||
This reverts commit 618e2424edba499d52cd26cf8363bc2dd85ef149.
|
||||
We no longer need these compat machines.
|
||||
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
(cherry picked from commit f3b50d6d4ae0be9e64aafe6a15f5423bab4899e9)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/i386/pc_piix.c | 37 -------------------------------------
|
||||
1 file changed, 37 deletions(-)
|
||||
|
@ -1,15 +1,22 @@
|
||||
From 5294117078691549e84e26a96a2d647debabf7db Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed, 12 Jan 2022 08:03:31 -0500
|
||||
Subject: [PATCH 09/12] acpi: fix OEM ID/OEM Table ID padding
|
||||
From af082f3499de265d123157d097b5c84981e0aa63 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 15/18] acpi: fix OEM ID/OEM Table ID padding
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [7/10] 3404492ef0094c8d5d2db0c82f1159705f9de7c7
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [7/10] 51ea859cbe12b5a902d529ab589d18757d98f71d (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit 748c030f360a940fe0c9382c8ca1649096c3a80d
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed Jan 12 08:03:31 2022 -0500
|
||||
|
||||
acpi: fix OEM ID/OEM Table ID padding
|
||||
|
||||
Commit [2] broke original '\0' padding of OEM ID and OEM Table ID
|
||||
fields in headers of ACPI tables. While it doesn't have impact on
|
||||
@ -43,8 +50,9 @@ Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Reviewed-by: Ani Sinha <ani@anisinha.ca>
|
||||
Tested-by: Dmitry V. Orekhov dima.orekhov@gmail.com
|
||||
|
||||
(cherry picked from commit 748c030f360a940fe0c9382c8ca1649096c3a80d)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/acpi/aml-build.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
@ -1,18 +1,25 @@
|
||||
From 2596689db79a5710fdfdb1f0d5bfe02557bb30e5 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon, 27 Dec 2021 14:31:17 -0500
|
||||
Subject: [PATCH 03/12] acpi: fix QEMU crash when started with SLIC table
|
||||
From 4e8fb957a349558648d5cddb80a89460bc97439e Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 09/18] acpi: fix QEMU crash when started with SLIC table
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [1/10] da8a19a574ce0c8862c84173434fa186aaddc855
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [1/10] 0c34e80346c33da4f220d9c486b120c35005144e (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit 8cdb99af45365727ac17f45239a9b8c1d5155c6d)
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon Dec 27 14:31:17 2021 -0500
|
||||
|
||||
acpi: fix QEMU crash when started with SLIC table
|
||||
|
||||
if QEMU is started with used provided SLIC table blob,
|
||||
|
||||
@ -60,7 +67,9 @@ Tested-by: Alexander Tsoy <alexander@tsoy.me>
|
||||
Cc: qemu-stable@nongnu.org
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit 8cdb99af45365727ac17f45239a9b8c1d5155c6d)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/acpi/core.c | 4 ++--
|
||||
hw/i386/acpi-build.c | 2 ++
|
||||
|
@ -1,15 +1,24 @@
|
||||
From c655f89956c69dc4bb3c3c74515c6c04bd0195bb Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Tue, 1 Mar 2022 10:11:59 -0500
|
||||
Subject: [PATCH 6/6] acpi: pcihp: pcie: set power on cap on parent slot
|
||||
From c9ceb175667cdeead59384a97a812367ae19c570 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 23 Mar 2022 13:21:40 -0400
|
||||
Subject: [PATCH 06/18] acpi: pcihp: pcie: set power on cap on parent slot
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 125: RHEL-8.6 Fix broken PCIe device after migration
|
||||
RH-Commit: [2/2] effbd75b9d495c88dd4d910b547154849fb1e821
|
||||
RH-Bugzilla: 2054597
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 134: pci: expose TYPE_XIO3130_DOWNSTREAM name
|
||||
RH-Commit: [2/2] d883872647a6e90ec573140b2c171f3f53b600ab (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062610
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/2062610
|
||||
UPSTREAM: merged
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=44038138
|
||||
|
||||
commit 6b0969f1ec825984cd74619f0730be421b0c46fb
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Tue Mar 1 10:11:59 2022 -0500
|
||||
|
||||
acpi: pcihp: pcie: set power on cap on parent slot
|
||||
|
||||
on creation a PCIDevice has power turned on at the end of pci_qdev_realize()
|
||||
however later on if PCIe slot isn't populated with any children
|
||||
@ -46,8 +55,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20220301151200.3507298-3-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit 6b0969f1ec825984cd74619f0730be421b0c46fb)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/acpi/pcihp.c | 12 +++++++++++-
|
||||
hw/pci/pcie.c | 11 +++++++++++
|
||||
|
@ -0,0 +1,63 @@
|
||||
From b21fa5ecd9acf2b91839a2915fb4bb39dac4c803 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Wolf <kwolf@redhat.com>
|
||||
Date: Thu, 3 Feb 2022 15:05:33 +0100
|
||||
Subject: [PATCH 2/5] block: Lock AioContext for drain_end in blockdev-reopen
|
||||
|
||||
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
||||
RH-MergeRequest: 142: block: Lock AioContext for drain_end in blockdev-reopen
|
||||
RH-Commit: [1/2] 98de3b5987f88ea6b4b503f623d6c4475574e037
|
||||
RH-Bugzilla: 2067118
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
|
||||
bdrv_subtree_drained_end() requires the caller to hold the AioContext
|
||||
lock for the drained node. Not doing this for nodes outside of the main
|
||||
AioContext leads to crashes when AIO_WAIT_WHILE() needs to wait and
|
||||
tries to temporarily release the lock.
|
||||
|
||||
Fixes: 3908b7a8994fa5ef7a89aa58cd5a02fc58141592
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2046659
|
||||
Reported-by: Qing Wang <qinwang@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Message-Id: <20220203140534.36522-2-kwolf@redhat.com>
|
||||
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit aba8205be0707b9d108e32254e186ba88107a869)
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
---
|
||||
blockdev.c | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/blockdev.c b/blockdev.c
|
||||
index b35072644e..565f6a81fd 100644
|
||||
--- a/blockdev.c
|
||||
+++ b/blockdev.c
|
||||
@@ -3562,6 +3562,7 @@ void qmp_blockdev_reopen(BlockdevOptionsList *reopen_list, Error **errp)
|
||||
{
|
||||
BlockReopenQueue *queue = NULL;
|
||||
GSList *drained = NULL;
|
||||
+ GSList *p;
|
||||
|
||||
/* Add each one of the BDS that we want to reopen to the queue */
|
||||
for (; reopen_list != NULL; reopen_list = reopen_list->next) {
|
||||
@@ -3611,7 +3612,15 @@ void qmp_blockdev_reopen(BlockdevOptionsList *reopen_list, Error **errp)
|
||||
|
||||
fail:
|
||||
bdrv_reopen_queue_free(queue);
|
||||
- g_slist_free_full(drained, (GDestroyNotify) bdrv_subtree_drained_end);
|
||||
+ for (p = drained; p; p = p->next) {
|
||||
+ BlockDriverState *bs = p->data;
|
||||
+ AioContext *ctx = bdrv_get_aio_context(bs);
|
||||
+
|
||||
+ aio_context_acquire(ctx);
|
||||
+ bdrv_subtree_drained_end(bs);
|
||||
+ aio_context_release(ctx);
|
||||
+ }
|
||||
+ g_slist_free(drained);
|
||||
}
|
||||
|
||||
void qmp_blockdev_del(const char *node_name, Error **errp)
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,78 @@
|
||||
From 6348063b91b2370cc27153fd58fd11a6681631f6 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Wed, 16 Feb 2022 11:53:53 +0100
|
||||
Subject: [PATCH 22/24] block: Make bdrv_refresh_limits() non-recursive
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 189: block: Make bdrv_refresh_limits() non-recursive
|
||||
RH-Commit: [1/3] 1a1fe37f8d8f0344dd8639d6cc9d884d1aff9096
|
||||
RH-Bugzilla: 2072932
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||
|
||||
bdrv_refresh_limits() recurses down to the node's children. That does
|
||||
not seem necessary: When we refresh limits on some node, and then
|
||||
recurse down and were to change one of its children's BlockLimits, then
|
||||
that would mean we noticed the changed limits by pure chance. The fact
|
||||
that we refresh the parent's limits has nothing to do with it, so the
|
||||
reason for the change probably happened before this point in time, and
|
||||
we should have refreshed the limits then.
|
||||
|
||||
Consequently, we should actually propagate block limits changes upwards,
|
||||
not downwards. That is a separate and pre-existing issue, though, and
|
||||
so will not be addressed in this patch.
|
||||
|
||||
The problem with recursing is that bdrv_refresh_limits() is not atomic.
|
||||
It begins with zeroing BDS.bl, and only then sets proper, valid limits.
|
||||
If we do not drain all nodes whose limits are refreshed, then concurrent
|
||||
I/O requests can encounter invalid request_alignment values and crash
|
||||
qemu. Therefore, a recursing bdrv_refresh_limits() requires the whole
|
||||
subtree to be drained, which is currently not ensured by most callers.
|
||||
|
||||
A non-recursive bdrv_refresh_limits() only requires the node in question
|
||||
to not receive I/O requests, and this is done by most callers in some
|
||||
way or another:
|
||||
- bdrv_open_driver() deals with a new node with no parents yet
|
||||
- bdrv_set_file_or_backing_noperm() acts on a drained node
|
||||
- bdrv_reopen_commit() acts only on drained nodes
|
||||
- bdrv_append() should in theory require the node to be drained; in
|
||||
practice most callers just lock the AioContext, which should at least
|
||||
be enough to prevent concurrent I/O requests from accessing invalid
|
||||
limits
|
||||
|
||||
So we can resolve the bug by making bdrv_refresh_limits() non-recursive.
|
||||
|
||||
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1879437
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||||
Message-Id: <20220216105355.30729-2-hreitz@redhat.com>
|
||||
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit 4d378bbd831bdd2f6e6adcd4ea5b77b6effaa627)
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
---
|
||||
block/io.c | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/block/io.c b/block/io.c
|
||||
index 4e4cb556c5..c3e7301613 100644
|
||||
--- a/block/io.c
|
||||
+++ b/block/io.c
|
||||
@@ -189,10 +189,6 @@ void bdrv_refresh_limits(BlockDriverState *bs, Transaction *tran, Error **errp)
|
||||
QLIST_FOREACH(c, &bs->children, next) {
|
||||
if (c->role & (BDRV_CHILD_DATA | BDRV_CHILD_FILTERED | BDRV_CHILD_COW))
|
||||
{
|
||||
- bdrv_refresh_limits(c->bs, tran, errp);
|
||||
- if (*errp) {
|
||||
- return;
|
||||
- }
|
||||
bdrv_merge_limits(&bs->bl, &c->bs->bl);
|
||||
have_limits = true;
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,21 +1,20 @@
|
||||
From 08103b26cb393920410e0a943d35e79bbd9f5ce0 Mon Sep 17 00:00:00 2001
|
||||
From abd84f26e0fe0bc9952d91fbd35fb3a7253cfecf Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@rehat.com>
|
||||
Date: Wed, 13 Apr 2022 20:54:45 -0400
|
||||
Subject: [PATCH 05/11] display/qxl-render: fix race condition in qxl_cursor
|
||||
Subject: [PATCH 1/2] display/qxl-render: fix race condition in qxl_cursor
|
||||
(CVE-2021-4207)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 162: display/qxl-render: fix race condition in qxl_cursor (CVE-2021-4207)
|
||||
RH-Commit: [1/1] 055c5a8345ad434a723b8106ba0a7b85fe117547 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2075683
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
RH-MergeRequest: 152: display/qxl-render: fix race condition in qxl_cursor (CVE-2021-4207)
|
||||
RH-Commit: [1/1] f05b9a956f2e0ca522b5be127beff813d04b5588 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2040738
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: Mauro Matteo Cascella <None>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2075683
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2040738
|
||||
Upstream: Merged
|
||||
CVE: CVE-2021-4207
|
||||
|
||||
|
@ -0,0 +1,97 @@
|
||||
From fe4abbda80eea7f65b6b5cc544a806fb6e064917 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>
|
||||
Date: Thu, 18 Nov 2021 12:57:32 +0100
|
||||
Subject: [PATCH 2/3] hw/block/fdc: Prevent end-of-track overrun
|
||||
(CVE-2021-3507)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 194: hw/block/fdc: Prevent end-of-track overrun (CVE-2021-3507)
|
||||
RH-Commit: [1/2] 31fa0351382b4ca5bd989b09e4d811ae73040673 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 1951521
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
|
||||
Per the 82078 datasheet, if the end-of-track (EOT byte in
|
||||
the FIFO) is more than the number of sectors per side, the
|
||||
command is terminated unsuccessfully:
|
||||
|
||||
* 5.2.5 DATA TRANSFER TERMINATION
|
||||
|
||||
The 82078 supports terminal count explicitly through
|
||||
the TC pin and implicitly through the underrun/over-
|
||||
run and end-of-track (EOT) functions. For full sector
|
||||
transfers, the EOT parameter can define the last
|
||||
sector to be transferred in a single or multisector
|
||||
transfer. If the last sector to be transferred is a par-
|
||||
tial sector, the host can stop transferring the data in
|
||||
mid-sector, and the 82078 will continue to complete
|
||||
the sector as if a hardware TC was received. The
|
||||
only difference between these implicit functions and
|
||||
TC is that they return "abnormal termination" result
|
||||
status. Such status indications can be ignored if they
|
||||
were expected.
|
||||
|
||||
* 6.1.3 READ TRACK
|
||||
|
||||
This command terminates when the EOT specified
|
||||
number of sectors have been read. If the 82078
|
||||
does not find an I D Address Mark on the diskette
|
||||
after the second· occurrence of a pulse on the
|
||||
INDX# pin, then it sets the IC code in Status Regis-
|
||||
ter 0 to "01" (Abnormal termination), sets the MA bit
|
||||
in Status Register 1 to "1", and terminates the com-
|
||||
mand.
|
||||
|
||||
* 6.1.6 VERIFY
|
||||
|
||||
Refer to Table 6-6 and Table 6-7 for information
|
||||
concerning the values of MT and EC versus SC and
|
||||
EOT value.
|
||||
|
||||
* Table 6·6. Result Phase Table
|
||||
|
||||
* Table 6-7. Verify Command Result Phase Table
|
||||
|
||||
Fix by aborting the transfer when EOT > # Sectors Per Side.
|
||||
|
||||
Cc: qemu-stable@nongnu.org
|
||||
Cc: Hervé Poussineau <hpoussin@reactos.org>
|
||||
Fixes: baca51faff0 ("floppy driver: disk geometry auto detect")
|
||||
Reported-by: Alexander Bulekov <alxndr@bu.edu>
|
||||
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/339
|
||||
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
Message-Id: <20211118115733.4038610-2-philmd@redhat.com>
|
||||
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit defac5e2fbddf8423a354ff0454283a2115e1367)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/block/fdc.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
|
||||
index 97fa6de423..755a26c114 100644
|
||||
--- a/hw/block/fdc.c
|
||||
+++ b/hw/block/fdc.c
|
||||
@@ -1531,6 +1531,14 @@ static void fdctrl_start_transfer(FDCtrl *fdctrl, int direction)
|
||||
int tmp;
|
||||
fdctrl->data_len = 128 << (fdctrl->fifo[5] > 7 ? 7 : fdctrl->fifo[5]);
|
||||
tmp = (fdctrl->fifo[6] - ks + 1);
|
||||
+ if (tmp < 0) {
|
||||
+ FLOPPY_DPRINTF("invalid EOT: %d\n", tmp);
|
||||
+ fdctrl_stop_transfer(fdctrl, FD_SR0_ABNTERM, FD_SR1_MA, 0x00);
|
||||
+ fdctrl->fifo[3] = kt;
|
||||
+ fdctrl->fifo[4] = kh;
|
||||
+ fdctrl->fifo[5] = ks;
|
||||
+ return;
|
||||
+ }
|
||||
if (fdctrl->fifo[0] & 0x80)
|
||||
tmp += fdctrl->fifo[6];
|
||||
fdctrl->data_len *= tmp;
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,21 +1,20 @@
|
||||
From ef311c8ca284d11dc812a1004de52125fc9eb194 Mon Sep 17 00:00:00 2001
|
||||
From 2db3d0de1be018f14cb91fdd4a368996b09d8bec Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 13 Apr 2022 14:51:06 -0400
|
||||
Subject: [PATCH 02/11] hw/intc/arm_gicv3: Check for !MEMTX_OK instead of
|
||||
Subject: [PATCH 1/3] hw/intc/arm_gicv3: Check for !MEMTX_OK instead of
|
||||
MEMTX_ERROR
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 158: hw/intc/arm_gicv3: Check for !MEMTX_OK instead of MEMTX_ERROR
|
||||
RH-Commit: [1/3] ebfd87ea3a2de51c6961569861d5f4fba25890cc (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2075686
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-MergeRequest: 151: hw/intc/arm_gicv3: Check for !MEMTX_OK instead of MEMTX_ERROR
|
||||
RH-Commit: [1/3] 561c9c2b1249f07d33013040b1c495ed1fbf825b (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 1999236
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2075686
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1999236
|
||||
Upstream: Merged
|
||||
CVE: CVE-2021-3750
|
||||
|
||||
|
@ -1,21 +1,26 @@
|
||||
From 6f84eb3889a7035c07eeb2d337d2c3b06a6777f0 Mon Sep 17 00:00:00 2001
|
||||
From: Laurent Vivier <lvivier@redhat.com>
|
||||
Date: Fri, 11 Feb 2022 18:02:59 +0100
|
||||
Subject: [PATCH 4/6] hw/virtio: vdpa: Fix leak of host-notifier memory-region
|
||||
From f0115d856f46e65e3b62896f84fe1902a958bf79 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Tue, 22 Mar 2022 19:23:36 -0400
|
||||
Subject: [PATCH 04/18] hw/virtio: vdpa: Fix leak of host-notifier
|
||||
memory-region
|
||||
|
||||
RH-Author: Laurent Vivier <lvivier@redhat.com>
|
||||
RH-MergeRequest: 122: hw/virtio: vdpa: Fix leak of host-notifier memory-region
|
||||
RH-Commit: [1/1] cd8719f57b2eb398cce108e191c7155a112f4fc8
|
||||
RH-Bugzilla: 2027208
|
||||
RH-Acked-by: Jason Wang <None>
|
||||
RH-Acked-by: Cindy Lu <None>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 132: hw/virtio: vdpa: Fix leak of host-notifier memory-region
|
||||
RH-Commit: [1/1] b3cec35d185e3b9844a458f5c51c5d5ef7e3d8f1 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2060843
|
||||
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/2027208
|
||||
BRANCH: rhel-8.6.0
|
||||
UPSTREAM: Merged
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=43682903
|
||||
BZ: https://bugzilla.redhat.com/2060843
|
||||
UPSTREAM: no
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=44038138
|
||||
|
||||
commit 98f7607ecda00dea3cbb2ed7b4427c96846efb83
|
||||
Author: Laurent Vivier <lvivier@redhat.com>
|
||||
Date: Fri Feb 11 18:02:59 2022 +0100
|
||||
|
||||
hw/virtio: vdpa: Fix leak of host-notifier memory-region
|
||||
|
||||
If call virtio_queue_set_host_notifier_mr fails, should free
|
||||
host-notifier memory-region.
|
||||
@ -37,8 +42,9 @@ Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit 98f7607ecda00dea3cbb2ed7b4427c96846efb83)
|
||||
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/virtio/vhost-vdpa.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
@ -1,21 +1,19 @@
|
||||
From f2578175ee0e0b0a7a99118e5fdf23ec0ad29ff4 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Wed, 16 Mar 2022 09:48:04 +0100
|
||||
Subject: [PATCH 02/12] i386: Add Icelake-Server-v6 CPU model with 5-level EPT
|
||||
From ccaa1135bd1aa90c94f0e8b5417bd2a420134e6c Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 08/18] i386: Add Icelake-Server-v6 CPU model with 5-level EPT
|
||||
support
|
||||
|
||||
RH-Author: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-MergeRequest: 127: i386: Add Icelake-Server-v6 CPU model with 5-level EPT support
|
||||
RH-Commit: [2/2] 72eaf5608490f5b1fb94b6decb95d4092c57dd85
|
||||
RH-Bugzilla: 2056986
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 139: vmxcap: Add 5-level EPT bit
|
||||
RH-Commit: [2/2] e913746b2df9cbd0308014ab5cc72577458857fa (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2065207
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2056986
|
||||
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=43862707
|
||||
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=2065207
|
||||
UPSTREAM: Merged
|
||||
|
||||
commit 12cab535db6440af41ed8dfefe908a594321b6ce
|
||||
commit: 12cab535db6440af41ed8dfefe908a594321b6ce
|
||||
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Mon Feb 21 15:53:15 2022 +0100
|
||||
|
||||
@ -31,7 +29,8 @@ Date: Mon Feb 21 15:53:15 2022 +0100
|
||||
Message-Id: <20220221145316.576138-1-vkuznets@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
(cherry picked from commit 12cab535db6440af41ed8dfefe908a594321b6ce)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
target/i386/cpu.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
@ -0,0 +1,68 @@
|
||||
From 1bd939d374ec2e994ff47c84e16fa3bc1323a0fd Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Thu, 18 Aug 2022 17:01:13 +0200
|
||||
Subject: [PATCH 2/2] i386: do kvm_put_msr_feature_control() first thing when
|
||||
vCPU is reset
|
||||
|
||||
RH-Author: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-MergeRequest: 216: i386: fix 'system_reset' when the VM is in VMX root operation
|
||||
RH-Bugzilla: 2116743
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Commit: [2/2] f838a57f74487eb394794de00006d5d2b9e84344
|
||||
|
||||
kvm_put_sregs2() fails to reset 'locked' CR4/CR0 bits upon vCPU reset when
|
||||
it is in VMX root operation. Do kvm_put_msr_feature_control() before
|
||||
kvm_put_sregs2() to (possibly) kick vCPU out of VMX root operation. It also
|
||||
seems logical to do kvm_put_msr_feature_control() before
|
||||
kvm_put_nested_state() and not after it, especially when 'real' nested
|
||||
state is set.
|
||||
|
||||
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Message-Id: <20220818150113.479917-3-vkuznets@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 45ed68a1a3a19754ade954d75a3c9d13ff560e5c)
|
||||
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
---
|
||||
target/i386/kvm/kvm.c | 17 ++++++++++++-----
|
||||
1 file changed, 12 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
|
||||
index 81d729dc40..a06221d3e5 100644
|
||||
--- a/target/i386/kvm/kvm.c
|
||||
+++ b/target/i386/kvm/kvm.c
|
||||
@@ -4255,6 +4255,18 @@ int kvm_arch_put_registers(CPUState *cpu, int level)
|
||||
|
||||
assert(cpu_is_stopped(cpu) || qemu_cpu_is_self(cpu));
|
||||
|
||||
+ /*
|
||||
+ * Put MSR_IA32_FEATURE_CONTROL first, this ensures the VM gets out of VMX
|
||||
+ * root operation upon vCPU reset. kvm_put_msr_feature_control() should also
|
||||
+ * preceed kvm_put_nested_state() when 'real' nested state is set.
|
||||
+ */
|
||||
+ if (level >= KVM_PUT_RESET_STATE) {
|
||||
+ ret = kvm_put_msr_feature_control(x86_cpu);
|
||||
+ if (ret < 0) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* must be before kvm_put_nested_state so that EFER.SVME is set */
|
||||
ret = kvm_put_sregs(x86_cpu);
|
||||
if (ret < 0) {
|
||||
@@ -4266,11 +4278,6 @@ int kvm_arch_put_registers(CPUState *cpu, int level)
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
-
|
||||
- ret = kvm_put_msr_feature_control(x86_cpu);
|
||||
- if (ret < 0) {
|
||||
- return ret;
|
||||
- }
|
||||
}
|
||||
|
||||
if (level == KVM_PUT_FULL_STATE) {
|
||||
--
|
||||
2.31.1
|
||||
|
95
SOURCES/kvm-i386-reset-KVM-nested-state-upon-CPU-reset.patch
Normal file
95
SOURCES/kvm-i386-reset-KVM-nested-state-upon-CPU-reset.patch
Normal file
@ -0,0 +1,95 @@
|
||||
From 4ad00e318f8afbee0e455cfbb6bc693c808d87f3 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Thu, 18 Aug 2022 17:01:12 +0200
|
||||
Subject: [PATCH 1/2] i386: reset KVM nested state upon CPU reset
|
||||
|
||||
RH-Author: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-MergeRequest: 216: i386: fix 'system_reset' when the VM is in VMX root operation
|
||||
RH-Bugzilla: 2116743
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Commit: [1/2] 20d2dabeda74b8cd5135228980a2414e66dc64f3
|
||||
|
||||
Make sure env->nested_state is cleaned up when a vCPU is reset, it may
|
||||
be stale after an incoming migration, kvm_arch_put_registers() may
|
||||
end up failing or putting vCPU in a weird state.
|
||||
|
||||
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
|
||||
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Message-Id: <20220818150113.479917-2-vkuznets@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 3cafdb67504a34a0305260f0c86a73d5a3fb000b)
|
||||
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
---
|
||||
target/i386/kvm/kvm.c | 37 +++++++++++++++++++++++++++----------
|
||||
1 file changed, 27 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
|
||||
index bd439e56ad..81d729dc40 100644
|
||||
--- a/target/i386/kvm/kvm.c
|
||||
+++ b/target/i386/kvm/kvm.c
|
||||
@@ -1615,6 +1615,30 @@ static void kvm_init_xsave(CPUX86State *env)
|
||||
env->xsave_buf_len);
|
||||
}
|
||||
|
||||
+static void kvm_init_nested_state(CPUX86State *env)
|
||||
+{
|
||||
+ struct kvm_vmx_nested_state_hdr *vmx_hdr;
|
||||
+ uint32_t size;
|
||||
+
|
||||
+ if (!env->nested_state) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ size = env->nested_state->size;
|
||||
+
|
||||
+ memset(env->nested_state, 0, size);
|
||||
+ env->nested_state->size = size;
|
||||
+
|
||||
+ if (cpu_has_vmx(env)) {
|
||||
+ env->nested_state->format = KVM_STATE_NESTED_FORMAT_VMX;
|
||||
+ vmx_hdr = &env->nested_state->hdr.vmx;
|
||||
+ vmx_hdr->vmxon_pa = -1ull;
|
||||
+ vmx_hdr->vmcs12_pa = -1ull;
|
||||
+ } else if (cpu_has_svm(env)) {
|
||||
+ env->nested_state->format = KVM_STATE_NESTED_FORMAT_SVM;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
int kvm_arch_init_vcpu(CPUState *cs)
|
||||
{
|
||||
struct {
|
||||
@@ -2042,19 +2066,10 @@ int kvm_arch_init_vcpu(CPUState *cs)
|
||||
assert(max_nested_state_len >= offsetof(struct kvm_nested_state, data));
|
||||
|
||||
if (cpu_has_vmx(env) || cpu_has_svm(env)) {
|
||||
- struct kvm_vmx_nested_state_hdr *vmx_hdr;
|
||||
-
|
||||
env->nested_state = g_malloc0(max_nested_state_len);
|
||||
env->nested_state->size = max_nested_state_len;
|
||||
|
||||
- if (cpu_has_vmx(env)) {
|
||||
- env->nested_state->format = KVM_STATE_NESTED_FORMAT_VMX;
|
||||
- vmx_hdr = &env->nested_state->hdr.vmx;
|
||||
- vmx_hdr->vmxon_pa = -1ull;
|
||||
- vmx_hdr->vmcs12_pa = -1ull;
|
||||
- } else {
|
||||
- env->nested_state->format = KVM_STATE_NESTED_FORMAT_SVM;
|
||||
- }
|
||||
+ kvm_init_nested_state(env);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2117,6 +2132,8 @@ void kvm_arch_reset_vcpu(X86CPU *cpu)
|
||||
/* enabled by default */
|
||||
env->poll_control_msr = 1;
|
||||
|
||||
+ kvm_init_nested_state(env);
|
||||
+
|
||||
sev_es_set_reset_vector(CPU(cpu));
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,92 @@
|
||||
From eaade87072e903cf550dfdb8ed1480dddc6bb0e3 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Thu, 20 Jan 2022 15:22:59 +0100
|
||||
Subject: [PATCH 21/24] ide: Increment BB in-flight counter for TRIM BH
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 188: ide: Increment BB in-flight counter for TRIM BH
|
||||
RH-Commit: [1/1] 1e702e735ff63f2b8b69c20cac1b309dd085cd62
|
||||
RH-Bugzilla: 2029980
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
When we still have an AIOCB registered for DMA operations, we try to
|
||||
settle the respective operation by draining the BlockBackend associated
|
||||
with the IDE device.
|
||||
|
||||
However, this assumes that every DMA operation is associated with an
|
||||
increment of the BlockBackend’s in-flight counter (e.g. through some
|
||||
ongoing I/O operation), so that draining the BB until its in-flight
|
||||
counter reaches 0 will settle all DMA operations. That is not the case:
|
||||
For TRIM, the guest can issue a zero-length operation that will not
|
||||
result in any I/O operation forwarded to the BlockBackend, and also not
|
||||
increment the in-flight counter in any other way. In such a case,
|
||||
blk_drain() will be a no-op if no other operations are in flight.
|
||||
|
||||
It is clear that if blk_drain() is a no-op, the value of
|
||||
s->bus->dma->aiocb will not change between checking it in the `if`
|
||||
condition and asserting that it is NULL after blk_drain().
|
||||
|
||||
The particular problem is that ide_issue_trim() creates a BH
|
||||
(ide_trim_bh_cb()) to settle the TRIM request: iocb->common.cb() is
|
||||
ide_dma_cb(), which will either create a new request, or find the
|
||||
transfer to be done and call ide_set_inactive(), which clears
|
||||
s->bus->dma->aiocb. Therefore, the blk_drain() must wait for
|
||||
ide_trim_bh_cb() to run, which currently it will not always do.
|
||||
|
||||
To fix this issue, we increment the BlockBackend's in-flight counter
|
||||
when the TRIM operation begins (in ide_issue_trim(), when the
|
||||
ide_trim_bh_cb() BH is created) and decrement it when ide_trim_bh_cb()
|
||||
is done.
|
||||
|
||||
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=2029980
|
||||
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Message-Id: <20220120142259.120189-1-hreitz@redhat.com>
|
||||
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Reviewed-by: John Snow <jsnow@redhat.com>
|
||||
Tested-by: John Snow <jsnow@redhat.com>
|
||||
(cherry picked from commit 7e5cdb345f77d76cb4877fe6230c4e17a7d0d0ca)
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
---
|
||||
hw/ide/core.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/hw/ide/core.c b/hw/ide/core.c
|
||||
index e28f8aad61..15138225be 100644
|
||||
--- a/hw/ide/core.c
|
||||
+++ b/hw/ide/core.c
|
||||
@@ -433,12 +433,16 @@ static const AIOCBInfo trim_aiocb_info = {
|
||||
static void ide_trim_bh_cb(void *opaque)
|
||||
{
|
||||
TrimAIOCB *iocb = opaque;
|
||||
+ BlockBackend *blk = iocb->s->blk;
|
||||
|
||||
iocb->common.cb(iocb->common.opaque, iocb->ret);
|
||||
|
||||
qemu_bh_delete(iocb->bh);
|
||||
iocb->bh = NULL;
|
||||
qemu_aio_unref(iocb);
|
||||
+
|
||||
+ /* Paired with an increment in ide_issue_trim() */
|
||||
+ blk_dec_in_flight(blk);
|
||||
}
|
||||
|
||||
static void ide_issue_trim_cb(void *opaque, int ret)
|
||||
@@ -508,6 +512,9 @@ BlockAIOCB *ide_issue_trim(
|
||||
IDEState *s = opaque;
|
||||
TrimAIOCB *iocb;
|
||||
|
||||
+ /* Paired with a decrement in ide_trim_bh_cb() */
|
||||
+ blk_inc_in_flight(s->blk);
|
||||
+
|
||||
iocb = blk_aio_get(&trim_aiocb_info, s->blk, cb, cb_opaque);
|
||||
iocb->s = s;
|
||||
iocb->bh = qemu_bh_new(ide_trim_bh_cb, iocb);
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,15 +1,15 @@
|
||||
From f663b951b87735bee6b5a4d75b726f609e557f8c Mon Sep 17 00:00:00 2001
|
||||
From 676e19198916d7631ba1367646dd08dc72079f88 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Thu, 21 Apr 2022 16:24:35 +0200
|
||||
Subject: [PATCH 11/11] iotests/108: Fix when missing user_allow_other
|
||||
Subject: [PATCH 6/6] iotests/108: Fix when missing user_allow_other
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 173: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [4/4] cea00f9cb38639d4c51fab13c20311d1737d5ca3
|
||||
RH-Bugzilla: 2072242
|
||||
RH-MergeRequest: 171: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [4/4] 36b70b5378ae7c8084b9e847706f00003abe9c11
|
||||
RH-Bugzilla: 1519071
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
FUSE exports' allow-other option defaults to "auto", which means that it
|
||||
will try passing allow_other as a mount option, and fall back to not
|
||||
|
@ -1,15 +1,15 @@
|
||||
From a5cc7f98669fbde7290fc363cb61dc7bd41718f3 Mon Sep 17 00:00:00 2001
|
||||
From d638552d76db0db9e2b6ae90a35f0b451b0cbaf8 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Tue, 5 Apr 2022 15:46:51 +0200
|
||||
Subject: [PATCH 09/11] iotests/108: Test new refcount rebuild algorithm
|
||||
Subject: [PATCH 4/6] iotests/108: Test new refcount rebuild algorithm
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 173: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [2/4] db808dcc1c5ee9fd901c0800b3fac1348fab246f
|
||||
RH-Bugzilla: 2072242
|
||||
RH-MergeRequest: 171: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [2/4] 2aa8c383f0c88c414f10ade8bd2e8af07c35f35b
|
||||
RH-Bugzilla: 1519071
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
One clear problem with how qcow2's refcount structure rebuild algorithm
|
||||
used to be before "qcow2: Improve refcount structure rebuilding" was
|
||||
|
99
SOURCES/kvm-iotests-Allow-using-QMP-with-the-QSD.patch
Normal file
99
SOURCES/kvm-iotests-Allow-using-QMP-with-the-QSD.patch
Normal file
@ -0,0 +1,99 @@
|
||||
From 12f596b66d577eb92f154fadf734d058dd0756d6 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Wed, 16 Feb 2022 11:53:54 +0100
|
||||
Subject: [PATCH 23/24] iotests: Allow using QMP with the QSD
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 189: block: Make bdrv_refresh_limits() non-recursive
|
||||
RH-Commit: [2/3] 55bee4690a2e02d3be9f2bd68f2d244d0a36743b
|
||||
RH-Bugzilla: 2072932
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||
|
||||
Add a parameter to optionally open a QMP connection when creating a
|
||||
QemuStorageDaemon instance.
|
||||
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Message-Id: <20220216105355.30729-3-hreitz@redhat.com>
|
||||
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||||
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit ec88eed8d14088b36a3495710368b8d1a3c33420)
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
---
|
||||
tests/qemu-iotests/iotests.py | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
|
||||
index a51b5ce8cd..2ef493755c 100644
|
||||
--- a/tests/qemu-iotests/iotests.py
|
||||
+++ b/tests/qemu-iotests/iotests.py
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
from qemu.machine import qtest
|
||||
from qemu.qmp import QMPMessage
|
||||
+from qemu.aqmp.legacy import QEMUMonitorProtocol
|
||||
|
||||
# Use this logger for logging messages directly from the iotests module
|
||||
logger = logging.getLogger('qemu.iotests')
|
||||
@@ -315,14 +316,30 @@ def cmd(self, cmd):
|
||||
|
||||
|
||||
class QemuStorageDaemon:
|
||||
- def __init__(self, *args: str, instance_id: str = 'a'):
|
||||
+ _qmp: Optional[QEMUMonitorProtocol] = None
|
||||
+ _qmpsock: Optional[str] = None
|
||||
+ # Python < 3.8 would complain if this type were not a string literal
|
||||
+ # (importing `annotations` from `__future__` would work; but not on <= 3.6)
|
||||
+ _p: 'Optional[subprocess.Popen[bytes]]' = None
|
||||
+
|
||||
+ def __init__(self, *args: str, instance_id: str = 'a', qmp: bool = False):
|
||||
assert '--pidfile' not in args
|
||||
self.pidfile = os.path.join(test_dir, f'qsd-{instance_id}-pid')
|
||||
all_args = [qsd_prog] + list(args) + ['--pidfile', self.pidfile]
|
||||
|
||||
+ if qmp:
|
||||
+ self._qmpsock = os.path.join(sock_dir, f'qsd-{instance_id}.sock')
|
||||
+ all_args += ['--chardev',
|
||||
+ f'socket,id=qmp-sock,path={self._qmpsock}',
|
||||
+ '--monitor', 'qmp-sock']
|
||||
+
|
||||
+ self._qmp = QEMUMonitorProtocol(self._qmpsock, server=True)
|
||||
+
|
||||
# Cannot use with here, we want the subprocess to stay around
|
||||
# pylint: disable=consider-using-with
|
||||
self._p = subprocess.Popen(all_args)
|
||||
+ if self._qmp is not None:
|
||||
+ self._qmp.accept()
|
||||
while not os.path.exists(self.pidfile):
|
||||
if self._p.poll() is not None:
|
||||
cmd = ' '.join(all_args)
|
||||
@@ -337,11 +354,24 @@ def __init__(self, *args: str, instance_id: str = 'a'):
|
||||
|
||||
assert self._pid == self._p.pid
|
||||
|
||||
+ def qmp(self, cmd: str, args: Optional[Dict[str, object]] = None) \
|
||||
+ -> QMPMessage:
|
||||
+ assert self._qmp is not None
|
||||
+ return self._qmp.cmd(cmd, args)
|
||||
+
|
||||
def stop(self, kill_signal=15):
|
||||
self._p.send_signal(kill_signal)
|
||||
self._p.wait()
|
||||
self._p = None
|
||||
|
||||
+ if self._qmp:
|
||||
+ self._qmp.close()
|
||||
+
|
||||
+ if self._qmpsock is not None:
|
||||
+ try:
|
||||
+ os.remove(self._qmpsock)
|
||||
+ except OSError:
|
||||
+ pass
|
||||
try:
|
||||
os.remove(self.pidfile)
|
||||
except OSError:
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,106 @@
|
||||
From ea4d8424fb2053b1cbb9538190b2b06351054125 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Wolf <kwolf@redhat.com>
|
||||
Date: Thu, 3 Feb 2022 15:05:34 +0100
|
||||
Subject: [PATCH 3/5] iotests: Test blockdev-reopen with iothreads and
|
||||
throttling
|
||||
|
||||
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
||||
RH-MergeRequest: 142: block: Lock AioContext for drain_end in blockdev-reopen
|
||||
RH-Commit: [2/2] 91d365864c391ca7db7db13260913fb61987b833
|
||||
RH-Bugzilla: 2067118
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
|
||||
The 'throttle' block driver implements .bdrv_co_drain_end, so
|
||||
blockdev-reopen will have to wait for it to complete in the polling
|
||||
loop at the end of qmp_blockdev_reopen(). This makes AIO_WAIT_WHILE()
|
||||
release the AioContext lock, which causes a crash if the lock hasn't
|
||||
correctly been taken.
|
||||
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
Message-Id: <20220203140534.36522-3-kwolf@redhat.com>
|
||||
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit ee810602376125ca0e0afd6b7c715e13740978ea)
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
---
|
||||
tests/qemu-iotests/245 | 36 +++++++++++++++++++++++++++++++++---
|
||||
tests/qemu-iotests/245.out | 4 ++--
|
||||
2 files changed, 35 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245
|
||||
index 24ac43f70e..8cbed7821b 100755
|
||||
--- a/tests/qemu-iotests/245
|
||||
+++ b/tests/qemu-iotests/245
|
||||
@@ -1138,12 +1138,13 @@ class TestBlockdevReopen(iotests.QMPTestCase):
|
||||
self.assertEqual(self.get_node('hd1'), None)
|
||||
self.assert_qmp(self.get_node('hd2'), 'ro', True)
|
||||
|
||||
- def run_test_iothreads(self, iothread_a, iothread_b, errmsg = None):
|
||||
- opts = hd_opts(0)
|
||||
+ def run_test_iothreads(self, iothread_a, iothread_b, errmsg = None,
|
||||
+ opts_a = None, opts_b = None):
|
||||
+ opts = opts_a or hd_opts(0)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
- opts2 = hd_opts(2)
|
||||
+ opts2 = opts_b or hd_opts(2)
|
||||
result = self.vm.qmp('blockdev-add', conv_keys = False, **opts2)
|
||||
self.assert_qmp(result, 'return', {})
|
||||
|
||||
@@ -1194,6 +1195,35 @@ class TestBlockdevReopen(iotests.QMPTestCase):
|
||||
def test_iothreads_switch_overlay(self):
|
||||
self.run_test_iothreads('', 'iothread0')
|
||||
|
||||
+ def test_iothreads_with_throttling(self):
|
||||
+ # Create a throttle-group object
|
||||
+ opts = { 'qom-type': 'throttle-group', 'id': 'group0',
|
||||
+ 'limits': { 'iops-total': 1000 } }
|
||||
+ result = self.vm.qmp('object-add', conv_keys = False, **opts)
|
||||
+ self.assert_qmp(result, 'return', {})
|
||||
+
|
||||
+ # Options with a throttle filter between format and protocol
|
||||
+ opts = [
|
||||
+ {
|
||||
+ 'driver': iotests.imgfmt,
|
||||
+ 'node-name': f'hd{idx}',
|
||||
+ 'file' : {
|
||||
+ 'node-name': f'hd{idx}-throttle',
|
||||
+ 'driver': 'throttle',
|
||||
+ 'throttle-group': 'group0',
|
||||
+ 'file': {
|
||||
+ 'driver': 'file',
|
||||
+ 'node-name': f'hd{idx}-file',
|
||||
+ 'filename': hd_path[idx],
|
||||
+ },
|
||||
+ },
|
||||
+ }
|
||||
+ for idx in (0, 2)
|
||||
+ ]
|
||||
+
|
||||
+ self.run_test_iothreads('iothread0', 'iothread0', None,
|
||||
+ opts[0], opts[1])
|
||||
+
|
||||
if __name__ == '__main__':
|
||||
iotests.activate_logging()
|
||||
iotests.main(supported_fmts=["qcow2"],
|
||||
diff --git a/tests/qemu-iotests/245.out b/tests/qemu-iotests/245.out
|
||||
index 4eced19294..a4e04a3266 100644
|
||||
--- a/tests/qemu-iotests/245.out
|
||||
+++ b/tests/qemu-iotests/245.out
|
||||
@@ -17,8 +17,8 @@ read 1/1 bytes at offset 262152
|
||||
read 1/1 bytes at offset 262160
|
||||
1 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||
|
||||
-...............
|
||||
+................
|
||||
----------------------------------------------------------------------
|
||||
-Ran 25 tests
|
||||
+Ran 26 tests
|
||||
|
||||
OK
|
||||
--
|
||||
2.27.0
|
||||
|
153
SOURCES/kvm-iotests-graph-changes-while-io-New-test.patch
Normal file
153
SOURCES/kvm-iotests-graph-changes-while-io-New-test.patch
Normal file
@ -0,0 +1,153 @@
|
||||
From 27042ff7aca4366c50e8ed66b47487d46774d16a Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Wed, 16 Feb 2022 11:53:55 +0100
|
||||
Subject: [PATCH 24/24] iotests/graph-changes-while-io: New test
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 189: block: Make bdrv_refresh_limits() non-recursive
|
||||
RH-Commit: [3/3] b9dffe09bef6cf9b2f0aad69b327ea1df92e847a
|
||||
RH-Bugzilla: 2072932
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||
|
||||
Test the following scenario:
|
||||
1. Some block node (null-co) attached to a user (here: NBD server) that
|
||||
performs I/O and keeps the node in an I/O thread
|
||||
2. Repeatedly run blockdev-add/blockdev-del to add/remove an overlay
|
||||
to/from that node
|
||||
|
||||
Each blockdev-add triggers bdrv_refresh_limits(), and because
|
||||
blockdev-add runs in the main thread, it does not stop the I/O requests.
|
||||
I/O can thus happen while the limits are refreshed, and when such a
|
||||
request sees a temporarily invalid block limit (e.g. alignment is 0),
|
||||
this may easily crash qemu (or the storage daemon in this case).
|
||||
|
||||
The block layer needs to ensure that I/O requests to a node are paused
|
||||
while that node's BlockLimits are refreshed.
|
||||
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
Reviewed-by: Eric Blake <eblake@redhat.com>
|
||||
Message-Id: <20220216105355.30729-4-hreitz@redhat.com>
|
||||
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit 971bea8089531af56b1bbd9ce62e756bdf006711)
|
||||
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
|
||||
---
|
||||
.../qemu-iotests/tests/graph-changes-while-io | 91 +++++++++++++++++++
|
||||
.../tests/graph-changes-while-io.out | 5 +
|
||||
2 files changed, 96 insertions(+)
|
||||
create mode 100755 tests/qemu-iotests/tests/graph-changes-while-io
|
||||
create mode 100644 tests/qemu-iotests/tests/graph-changes-while-io.out
|
||||
|
||||
diff --git a/tests/qemu-iotests/tests/graph-changes-while-io b/tests/qemu-iotests/tests/graph-changes-while-io
|
||||
new file mode 100755
|
||||
index 0000000000..567e8cf21e
|
||||
--- /dev/null
|
||||
+++ b/tests/qemu-iotests/tests/graph-changes-while-io
|
||||
@@ -0,0 +1,91 @@
|
||||
+#!/usr/bin/env python3
|
||||
+# group: rw
|
||||
+#
|
||||
+# Test graph changes while I/O is happening
|
||||
+#
|
||||
+# Copyright (C) 2022 Red Hat, Inc.
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+#
|
||||
+
|
||||
+import os
|
||||
+from threading import Thread
|
||||
+import iotests
|
||||
+from iotests import imgfmt, qemu_img, qemu_img_create, QMPTestCase, \
|
||||
+ QemuStorageDaemon
|
||||
+
|
||||
+
|
||||
+top = os.path.join(iotests.test_dir, 'top.img')
|
||||
+nbd_sock = os.path.join(iotests.sock_dir, 'nbd.sock')
|
||||
+
|
||||
+
|
||||
+def do_qemu_img_bench() -> None:
|
||||
+ """
|
||||
+ Do some I/O requests on `nbd_sock`.
|
||||
+ """
|
||||
+ assert qemu_img('bench', '-f', 'raw', '-c', '2000000',
|
||||
+ f'nbd+unix:///node0?socket={nbd_sock}') == 0
|
||||
+
|
||||
+
|
||||
+class TestGraphChangesWhileIO(QMPTestCase):
|
||||
+ def setUp(self) -> None:
|
||||
+ # Create an overlay that can be added at runtime on top of the
|
||||
+ # null-co block node that will receive I/O
|
||||
+ assert qemu_img_create('-f', imgfmt, '-F', 'raw', '-b', 'null-co://',
|
||||
+ top) == 0
|
||||
+
|
||||
+ # QSD instance with a null-co block node in an I/O thread,
|
||||
+ # exported over NBD (on `nbd_sock`, export name "node0")
|
||||
+ self.qsd = QemuStorageDaemon(
|
||||
+ '--object', 'iothread,id=iothread0',
|
||||
+ '--blockdev', 'null-co,node-name=node0,read-zeroes=true',
|
||||
+ '--nbd-server', f'addr.type=unix,addr.path={nbd_sock}',
|
||||
+ '--export', 'nbd,id=exp0,node-name=node0,iothread=iothread0,' +
|
||||
+ 'fixed-iothread=true,writable=true',
|
||||
+ qmp=True
|
||||
+ )
|
||||
+
|
||||
+ def tearDown(self) -> None:
|
||||
+ self.qsd.stop()
|
||||
+
|
||||
+ def test_blockdev_add_while_io(self) -> None:
|
||||
+ # Run qemu-img bench in the background
|
||||
+ bench_thr = Thread(target=do_qemu_img_bench)
|
||||
+ bench_thr.start()
|
||||
+
|
||||
+ # While qemu-img bench is running, repeatedly add and remove an
|
||||
+ # overlay to/from node0
|
||||
+ while bench_thr.is_alive():
|
||||
+ result = self.qsd.qmp('blockdev-add', {
|
||||
+ 'driver': imgfmt,
|
||||
+ 'node-name': 'overlay',
|
||||
+ 'backing': 'node0',
|
||||
+ 'file': {
|
||||
+ 'driver': 'file',
|
||||
+ 'filename': top
|
||||
+ }
|
||||
+ })
|
||||
+ self.assert_qmp(result, 'return', {})
|
||||
+
|
||||
+ result = self.qsd.qmp('blockdev-del', {
|
||||
+ 'node-name': 'overlay'
|
||||
+ })
|
||||
+ self.assert_qmp(result, 'return', {})
|
||||
+
|
||||
+ bench_thr.join()
|
||||
+
|
||||
+if __name__ == '__main__':
|
||||
+ # Format must support raw backing files
|
||||
+ iotests.main(supported_fmts=['qcow', 'qcow2', 'qed'],
|
||||
+ supported_protocols=['file'])
|
||||
diff --git a/tests/qemu-iotests/tests/graph-changes-while-io.out b/tests/qemu-iotests/tests/graph-changes-while-io.out
|
||||
new file mode 100644
|
||||
index 0000000000..ae1213e6f8
|
||||
--- /dev/null
|
||||
+++ b/tests/qemu-iotests/tests/graph-changes-while-io.out
|
||||
@@ -0,0 +1,5 @@
|
||||
+.
|
||||
+----------------------------------------------------------------------
|
||||
+Ran 1 tests
|
||||
+
|
||||
+OK
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,15 +1,15 @@
|
||||
From 286d9e4512a3b7ab6e2a1ce6b4a872e5defb0ffe Mon Sep 17 00:00:00 2001
|
||||
From 99d33621440fd30e0da2974dafb0cd372334305a Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 9 Jun 2022 17:47:12 +0100
|
||||
Subject: [PATCH 2/2] linux-aio: explain why max batch is checked in
|
||||
laio_io_unplug()
|
||||
|
||||
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-MergeRequest: 209: linux-aio: fix unbalanced plugged counter in laio_io_unplug()
|
||||
RH-Commit: [2/2] c6194a9929e7e3807c5402b5364ab9dc2edf420c
|
||||
RH-Bugzilla: 2109570
|
||||
RH-MergeRequest: 199: linux-aio: fix unbalanced plugged counter in laio_io_unplug()
|
||||
RH-Commit: [2/2] 8617870ed70e3a57269f06eeb242d0fab79a66fb
|
||||
RH-Bugzilla: 2105410
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
|
||||
It may not be obvious why laio_io_unplug() checks max batch. I discussed
|
||||
|
@ -1,15 +1,15 @@
|
||||
From ad1844e7e2294fa71bc07f9d1da6d10150ba9607 Mon Sep 17 00:00:00 2001
|
||||
From 0fbb0c87628bef2cb4d1b7748d67020dde50cdef Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
Date: Thu, 9 Jun 2022 17:47:11 +0100
|
||||
Subject: [PATCH 1/2] linux-aio: fix unbalanced plugged counter in
|
||||
laio_io_unplug()
|
||||
|
||||
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-MergeRequest: 209: linux-aio: fix unbalanced plugged counter in laio_io_unplug()
|
||||
RH-Commit: [1/2] 3a73bdb8237cf99c5264a6e1caac632494412953
|
||||
RH-Bugzilla: 2109570
|
||||
RH-MergeRequest: 199: linux-aio: fix unbalanced plugged counter in laio_io_unplug()
|
||||
RH-Commit: [1/2] f518df755090289905898a36922992288688e338
|
||||
RH-Bugzilla: 2105410
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
||||
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
|
||||
Every laio_io_plug() call has a matching laio_io_unplug() call. There is
|
||||
|
1227
SOURCES/kvm-linux-headers-Update-headers-to-v5.17-rc1.patch
Normal file
1227
SOURCES/kvm-linux-headers-Update-headers-to-v5.17-rc1.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,58 @@
|
||||
From aa6181d87e2b4ef1a70be002881908d2df5548a9 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Tue, 22 Feb 2022 17:58:11 +0100
|
||||
Subject: [PATCH 04/24] linux-headers: include missing changes from 5.17
|
||||
|
||||
RH-Author: Paul Lai <plai@redhat.com>
|
||||
RH-MergeRequest: 176: Enable KVM AMX support
|
||||
RH-Commit: [4/13] 2ed7cbc07e63d85cda916ef44d1e82b1fba7fdf4
|
||||
RH-Bugzilla: 1916415
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 1ea5208febcc068449b63282d72bb719ab67a466)
|
||||
Signed-off-by: Paul Lai <plai@redhat.com>
|
||||
---
|
||||
linux-headers/asm-x86/kvm.h | 3 +++
|
||||
linux-headers/linux/kvm.h | 4 ++++
|
||||
2 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h
|
||||
index 2da3316bb5..bf6e96011d 100644
|
||||
--- a/linux-headers/asm-x86/kvm.h
|
||||
+++ b/linux-headers/asm-x86/kvm.h
|
||||
@@ -452,6 +452,9 @@ struct kvm_sync_regs {
|
||||
|
||||
#define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
|
||||
|
||||
+/* attributes for system fd (group 0) */
|
||||
+#define KVM_X86_XCOMP_GUEST_SUPP 0
|
||||
+
|
||||
struct kvm_vmx_nested_state_data {
|
||||
__u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
|
||||
__u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
|
||||
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
|
||||
index 00af3bc333..d232feaae9 100644
|
||||
--- a/linux-headers/linux/kvm.h
|
||||
+++ b/linux-headers/linux/kvm.h
|
||||
@@ -1133,6 +1133,7 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
|
||||
#define KVM_CAP_VM_GPA_BITS 207
|
||||
#define KVM_CAP_XSAVE2 208
|
||||
+#define KVM_CAP_SYS_ATTRIBUTES 209
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -2047,4 +2048,7 @@ struct kvm_stats_desc {
|
||||
|
||||
#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
|
||||
|
||||
+/* Available with KVM_CAP_XSAVE2 */
|
||||
+#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
|
||||
+
|
||||
#endif /* __LINUX_KVM_H */
|
||||
--
|
||||
2.35.3
|
||||
|
725
SOURCES/kvm-linux-headers-update-to-5.16-rc1.patch
Normal file
725
SOURCES/kvm-linux-headers-update-to-5.16-rc1.patch
Normal file
@ -0,0 +1,725 @@
|
||||
From 64808db4a14867ad774b5e7535972a886e20a156 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Thu, 11 Nov 2021 12:06:01 +0100
|
||||
Subject: [PATCH 02/24] linux-headers: update to 5.16-rc1
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Paul Lai <plai@redhat.com>
|
||||
RH-MergeRequest: 176: Enable KVM AMX support
|
||||
RH-Commit: [2/13] 4af2f4942db029b81890e3862793fb54b62791cc
|
||||
RH-Bugzilla: 1916415
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
|
||||
Message-Id: <20211111110604.207376-3-pbonzini@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 43709a0ca3b09e952bde3f38112f1d7fbf7c65b1)
|
||||
Signed-off-by: Paul Lai <plai@redhat.com>
|
||||
---
|
||||
include/standard-headers/drm/drm_fourcc.h | 121 +++++++++++++++++-
|
||||
include/standard-headers/linux/ethtool.h | 31 +++++
|
||||
include/standard-headers/linux/fuse.h | 10 +-
|
||||
include/standard-headers/linux/pci_regs.h | 6 +
|
||||
include/standard-headers/linux/virtio_gpu.h | 18 ++-
|
||||
include/standard-headers/linux/virtio_ids.h | 24 ++++
|
||||
include/standard-headers/linux/virtio_vsock.h | 3 +-
|
||||
linux-headers/asm-arm64/unistd.h | 1 +
|
||||
linux-headers/asm-generic/unistd.h | 22 +++-
|
||||
linux-headers/asm-mips/unistd_n32.h | 1 +
|
||||
linux-headers/asm-mips/unistd_n64.h | 1 +
|
||||
linux-headers/asm-mips/unistd_o32.h | 1 +
|
||||
linux-headers/asm-powerpc/unistd_32.h | 1 +
|
||||
linux-headers/asm-powerpc/unistd_64.h | 1 +
|
||||
linux-headers/asm-s390/unistd_32.h | 1 +
|
||||
linux-headers/asm-s390/unistd_64.h | 1 +
|
||||
linux-headers/asm-x86/kvm.h | 5 +
|
||||
linux-headers/asm-x86/unistd_32.h | 3 +
|
||||
linux-headers/asm-x86/unistd_64.h | 3 +
|
||||
linux-headers/asm-x86/unistd_x32.h | 3 +
|
||||
linux-headers/linux/kvm.h | 40 +++++-
|
||||
21 files changed, 276 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/include/standard-headers/drm/drm_fourcc.h b/include/standard-headers/drm/drm_fourcc.h
|
||||
index 352b51fd0a..2c025cb4fe 100644
|
||||
--- a/include/standard-headers/drm/drm_fourcc.h
|
||||
+++ b/include/standard-headers/drm/drm_fourcc.h
|
||||
@@ -103,6 +103,12 @@ extern "C" {
|
||||
/* 8 bpp Red */
|
||||
#define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
|
||||
|
||||
+/* 10 bpp Red */
|
||||
+#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */
|
||||
+
|
||||
+/* 12 bpp Red */
|
||||
+#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ') /* [15:0] x:R 4:12 little endian */
|
||||
+
|
||||
/* 16 bpp Red */
|
||||
#define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
|
||||
|
||||
@@ -372,6 +378,12 @@ extern "C" {
|
||||
|
||||
#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
|
||||
|
||||
+#define fourcc_mod_get_vendor(modifier) \
|
||||
+ (((modifier) >> 56) & 0xff)
|
||||
+
|
||||
+#define fourcc_mod_is_vendor(modifier, vendor) \
|
||||
+ (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor)
|
||||
+
|
||||
#define fourcc_mod_code(vendor, val) \
|
||||
((((uint64_t)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
|
||||
|
||||
@@ -899,9 +911,9 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
|
||||
|
||||
/*
|
||||
* The top 4 bits (out of the 56 bits alloted for specifying vendor specific
|
||||
- * modifiers) denote the category for modifiers. Currently we have only two
|
||||
- * categories of modifiers ie AFBC and MISC. We can have a maximum of sixteen
|
||||
- * different categories.
|
||||
+ * modifiers) denote the category for modifiers. Currently we have three
|
||||
+ * categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of
|
||||
+ * sixteen different categories.
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \
|
||||
fourcc_mod_code(ARM, ((uint64_t)(__type) << 52) | ((__val) & 0x000fffffffffffffULL))
|
||||
@@ -1016,6 +1028,109 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
|
||||
*/
|
||||
#define AFBC_FORMAT_MOD_USM (1ULL << 12)
|
||||
|
||||
+/*
|
||||
+ * Arm Fixed-Rate Compression (AFRC) modifiers
|
||||
+ *
|
||||
+ * AFRC is a proprietary fixed rate image compression protocol and format,
|
||||
+ * designed to provide guaranteed bandwidth and memory footprint
|
||||
+ * reductions in graphics and media use-cases.
|
||||
+ *
|
||||
+ * AFRC buffers consist of one or more planes, with the same components
|
||||
+ * and meaning as an uncompressed buffer using the same pixel format.
|
||||
+ *
|
||||
+ * Within each plane, the pixel/luma/chroma values are grouped into
|
||||
+ * "coding unit" blocks which are individually compressed to a
|
||||
+ * fixed size (in bytes). All coding units within a given plane of a buffer
|
||||
+ * store the same number of values, and have the same compressed size.
|
||||
+ *
|
||||
+ * The coding unit size is configurable, allowing different rates of compression.
|
||||
+ *
|
||||
+ * The start of each AFRC buffer plane must be aligned to an alignment granule which
|
||||
+ * depends on the coding unit size.
|
||||
+ *
|
||||
+ * Coding Unit Size Plane Alignment
|
||||
+ * ---------------- ---------------
|
||||
+ * 16 bytes 1024 bytes
|
||||
+ * 24 bytes 512 bytes
|
||||
+ * 32 bytes 2048 bytes
|
||||
+ *
|
||||
+ * Coding units are grouped into paging tiles. AFRC buffer dimensions must be aligned
|
||||
+ * to a multiple of the paging tile dimensions.
|
||||
+ * The dimensions of each paging tile depend on whether the buffer is optimised for
|
||||
+ * scanline (SCAN layout) or rotated (ROT layout) access.
|
||||
+ *
|
||||
+ * Layout Paging Tile Width Paging Tile Height
|
||||
+ * ------ ----------------- ------------------
|
||||
+ * SCAN 16 coding units 4 coding units
|
||||
+ * ROT 8 coding units 8 coding units
|
||||
+ *
|
||||
+ * The dimensions of each coding unit depend on the number of components
|
||||
+ * in the compressed plane and whether the buffer is optimised for
|
||||
+ * scanline (SCAN layout) or rotated (ROT layout) access.
|
||||
+ *
|
||||
+ * Number of Components in Plane Layout Coding Unit Width Coding Unit Height
|
||||
+ * ----------------------------- --------- ----------------- ------------------
|
||||
+ * 1 SCAN 16 samples 4 samples
|
||||
+ * Example: 16x4 luma samples in a 'Y' plane
|
||||
+ * 16x4 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
|
||||
+ * ----------------------------- --------- ----------------- ------------------
|
||||
+ * 1 ROT 8 samples 8 samples
|
||||
+ * Example: 8x8 luma samples in a 'Y' plane
|
||||
+ * 8x8 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
|
||||
+ * ----------------------------- --------- ----------------- ------------------
|
||||
+ * 2 DONT CARE 8 samples 4 samples
|
||||
+ * Example: 8x4 chroma pairs in the 'UV' plane of a semi-planar YUV buffer
|
||||
+ * ----------------------------- --------- ----------------- ------------------
|
||||
+ * 3 DONT CARE 4 samples 4 samples
|
||||
+ * Example: 4x4 pixels in an RGB buffer without alpha
|
||||
+ * ----------------------------- --------- ----------------- ------------------
|
||||
+ * 4 DONT CARE 4 samples 4 samples
|
||||
+ * Example: 4x4 pixels in an RGB buffer with alpha
|
||||
+ */
|
||||
+
|
||||
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
|
||||
+
|
||||
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) \
|
||||
+ DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
|
||||
+
|
||||
+/*
|
||||
+ * AFRC coding unit size modifier.
|
||||
+ *
|
||||
+ * Indicates the number of bytes used to store each compressed coding unit for
|
||||
+ * one or more planes in an AFRC encoded buffer. The coding unit size for chrominance
|
||||
+ * is the same for both Cb and Cr, which may be stored in separate planes.
|
||||
+ *
|
||||
+ * AFRC_FORMAT_MOD_CU_SIZE_P0 indicates the number of bytes used to store
|
||||
+ * each compressed coding unit in the first plane of the buffer. For RGBA buffers
|
||||
+ * this is the only plane, while for semi-planar and fully-planar YUV buffers,
|
||||
+ * this corresponds to the luma plane.
|
||||
+ *
|
||||
+ * AFRC_FORMAT_MOD_CU_SIZE_P12 indicates the number of bytes used to store
|
||||
+ * each compressed coding unit in the second and third planes in the buffer.
|
||||
+ * For semi-planar and fully-planar YUV buffers, this corresponds to the chroma plane(s).
|
||||
+ *
|
||||
+ * For single-plane buffers, AFRC_FORMAT_MOD_CU_SIZE_P0 must be specified
|
||||
+ * and AFRC_FORMAT_MOD_CU_SIZE_P12 must be zero.
|
||||
+ * For semi-planar and fully-planar buffers, both AFRC_FORMAT_MOD_CU_SIZE_P0 and
|
||||
+ * AFRC_FORMAT_MOD_CU_SIZE_P12 must be specified.
|
||||
+ */
|
||||
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
|
||||
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
|
||||
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
|
||||
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
|
||||
+
|
||||
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
|
||||
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
|
||||
+
|
||||
+/*
|
||||
+ * AFRC scanline memory layout.
|
||||
+ *
|
||||
+ * Indicates if the buffer uses the scanline-optimised layout
|
||||
+ * for an AFRC encoded buffer, otherwise, it uses the rotation-optimised layout.
|
||||
+ * The memory layout is the same for all planes.
|
||||
+ */
|
||||
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
|
||||
+
|
||||
/*
|
||||
* Arm 16x16 Block U-Interleaved modifier
|
||||
*
|
||||
diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-headers/linux/ethtool.h
|
||||
index 053d3fafdf..688eb8dc39 100644
|
||||
--- a/include/standard-headers/linux/ethtool.h
|
||||
+++ b/include/standard-headers/linux/ethtool.h
|
||||
@@ -603,6 +603,7 @@ enum ethtool_link_ext_state {
|
||||
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
|
||||
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
|
||||
ETHTOOL_LINK_EXT_STATE_OVERHEAT,
|
||||
+ ETHTOOL_LINK_EXT_STATE_MODULE,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */
|
||||
@@ -639,6 +640,8 @@ enum ethtool_link_ext_substate_link_logical_mismatch {
|
||||
enum ethtool_link_ext_substate_bad_signal_integrity {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
|
||||
+ ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
|
||||
+ ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */
|
||||
@@ -647,6 +650,11 @@ enum ethtool_link_ext_substate_cable_issue {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
|
||||
};
|
||||
|
||||
+/* More information in addition to ETHTOOL_LINK_EXT_STATE_MODULE. */
|
||||
+enum ethtool_link_ext_substate_module {
|
||||
+ ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
|
||||
+};
|
||||
+
|
||||
#define ETH_GSTRING_LEN 32
|
||||
|
||||
/**
|
||||
@@ -704,6 +712,29 @@ enum ethtool_stringset {
|
||||
ETH_SS_COUNT
|
||||
};
|
||||
|
||||
+/**
|
||||
+ * enum ethtool_module_power_mode_policy - plug-in module power mode policy
|
||||
+ * @ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH: Module is always in high power mode.
|
||||
+ * @ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO: Module is transitioned by the host
|
||||
+ * to high power mode when the first port using it is put administratively
|
||||
+ * up and to low power mode when the last port using it is put
|
||||
+ * administratively down.
|
||||
+ */
|
||||
+enum ethtool_module_power_mode_policy {
|
||||
+ ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
|
||||
+ ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ * enum ethtool_module_power_mode - plug-in module power mode
|
||||
+ * @ETHTOOL_MODULE_POWER_MODE_LOW: Module is in low power mode.
|
||||
+ * @ETHTOOL_MODULE_POWER_MODE_HIGH: Module is in high power mode.
|
||||
+ */
|
||||
+enum ethtool_module_power_mode {
|
||||
+ ETHTOOL_MODULE_POWER_MODE_LOW = 1,
|
||||
+ ETHTOOL_MODULE_POWER_MODE_HIGH,
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* struct ethtool_gstrings - string set for data tagging
|
||||
* @cmd: Command number = %ETHTOOL_GSTRINGS
|
||||
diff --git a/include/standard-headers/linux/fuse.h b/include/standard-headers/linux/fuse.h
|
||||
index cce105bfba..23ea31708b 100644
|
||||
--- a/include/standard-headers/linux/fuse.h
|
||||
+++ b/include/standard-headers/linux/fuse.h
|
||||
@@ -181,6 +181,9 @@
|
||||
* - add FUSE_OPEN_KILL_SUIDGID
|
||||
* - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT
|
||||
* - add FUSE_SETXATTR_ACL_KILL_SGID
|
||||
+ *
|
||||
+ * 7.34
|
||||
+ * - add FUSE_SYNCFS
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_FUSE_H
|
||||
@@ -212,7 +215,7 @@
|
||||
#define FUSE_KERNEL_VERSION 7
|
||||
|
||||
/** Minor version number of this interface */
|
||||
-#define FUSE_KERNEL_MINOR_VERSION 33
|
||||
+#define FUSE_KERNEL_MINOR_VERSION 34
|
||||
|
||||
/** The node ID of the root inode */
|
||||
#define FUSE_ROOT_ID 1
|
||||
@@ -505,6 +508,7 @@ enum fuse_opcode {
|
||||
FUSE_COPY_FILE_RANGE = 47,
|
||||
FUSE_SETUPMAPPING = 48,
|
||||
FUSE_REMOVEMAPPING = 49,
|
||||
+ FUSE_SYNCFS = 50,
|
||||
|
||||
/* CUSE specific operations */
|
||||
CUSE_INIT = 4096,
|
||||
@@ -967,4 +971,8 @@ struct fuse_removemapping_one {
|
||||
#define FUSE_REMOVEMAPPING_MAX_ENTRY \
|
||||
(PAGE_SIZE / sizeof(struct fuse_removemapping_one))
|
||||
|
||||
+struct fuse_syncfs_in {
|
||||
+ uint64_t padding;
|
||||
+};
|
||||
+
|
||||
#endif /* _LINUX_FUSE_H */
|
||||
diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h
|
||||
index e709ae8235..ff6ccbc6ef 100644
|
||||
--- a/include/standard-headers/linux/pci_regs.h
|
||||
+++ b/include/standard-headers/linux/pci_regs.h
|
||||
@@ -504,6 +504,12 @@
|
||||
#define PCI_EXP_DEVCTL_URRE 0x0008 /* Unsupported Request Reporting En. */
|
||||
#define PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */
|
||||
#define PCI_EXP_DEVCTL_PAYLOAD 0x00e0 /* Max_Payload_Size */
|
||||
+#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000 /* 128 Bytes */
|
||||
+#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020 /* 256 Bytes */
|
||||
+#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040 /* 512 Bytes */
|
||||
+#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060 /* 1024 Bytes */
|
||||
+#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080 /* 2048 Bytes */
|
||||
+#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0 /* 4096 Bytes */
|
||||
#define PCI_EXP_DEVCTL_EXT_TAG 0x0100 /* Extended Tag Field Enable */
|
||||
#define PCI_EXP_DEVCTL_PHANTOM 0x0200 /* Phantom Functions Enable */
|
||||
#define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */
|
||||
diff --git a/include/standard-headers/linux/virtio_gpu.h b/include/standard-headers/linux/virtio_gpu.h
|
||||
index 1357e4774e..2da48d3d4c 100644
|
||||
--- a/include/standard-headers/linux/virtio_gpu.h
|
||||
+++ b/include/standard-headers/linux/virtio_gpu.h
|
||||
@@ -59,6 +59,11 @@
|
||||
* VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB
|
||||
*/
|
||||
#define VIRTIO_GPU_F_RESOURCE_BLOB 3
|
||||
+/*
|
||||
+ * VIRTIO_GPU_CMD_CREATE_CONTEXT with
|
||||
+ * context_init and multiple timelines
|
||||
+ */
|
||||
+#define VIRTIO_GPU_F_CONTEXT_INIT 4
|
||||
|
||||
enum virtio_gpu_ctrl_type {
|
||||
VIRTIO_GPU_UNDEFINED = 0,
|
||||
@@ -122,14 +127,20 @@ enum virtio_gpu_shm_id {
|
||||
VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
|
||||
};
|
||||
|
||||
-#define VIRTIO_GPU_FLAG_FENCE (1 << 0)
|
||||
+#define VIRTIO_GPU_FLAG_FENCE (1 << 0)
|
||||
+/*
|
||||
+ * If the following flag is set, then ring_idx contains the index
|
||||
+ * of the command ring that needs to used when creating the fence
|
||||
+ */
|
||||
+#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
|
||||
|
||||
struct virtio_gpu_ctrl_hdr {
|
||||
uint32_t type;
|
||||
uint32_t flags;
|
||||
uint64_t fence_id;
|
||||
uint32_t ctx_id;
|
||||
- uint32_t padding;
|
||||
+ uint8_t ring_idx;
|
||||
+ uint8_t padding[3];
|
||||
};
|
||||
|
||||
/* data passed in the cursor vq */
|
||||
@@ -269,10 +280,11 @@ struct virtio_gpu_resource_create_3d {
|
||||
};
|
||||
|
||||
/* VIRTIO_GPU_CMD_CTX_CREATE */
|
||||
+#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
|
||||
struct virtio_gpu_ctx_create {
|
||||
struct virtio_gpu_ctrl_hdr hdr;
|
||||
uint32_t nlen;
|
||||
- uint32_t padding;
|
||||
+ uint32_t context_init;
|
||||
char debug_name[64];
|
||||
};
|
||||
|
||||
diff --git a/include/standard-headers/linux/virtio_ids.h b/include/standard-headers/linux/virtio_ids.h
|
||||
index 4fe842c3a3..80d76b75bc 100644
|
||||
--- a/include/standard-headers/linux/virtio_ids.h
|
||||
+++ b/include/standard-headers/linux/virtio_ids.h
|
||||
@@ -54,7 +54,31 @@
|
||||
#define VIRTIO_ID_SOUND 25 /* virtio sound */
|
||||
#define VIRTIO_ID_FS 26 /* virtio filesystem */
|
||||
#define VIRTIO_ID_PMEM 27 /* virtio pmem */
|
||||
+#define VIRTIO_ID_RPMB 28 /* virtio rpmb */
|
||||
#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
|
||||
+#define VIRTIO_ID_VIDEO_ENCODER 30 /* virtio video encoder */
|
||||
+#define VIRTIO_ID_VIDEO_DECODER 31 /* virtio video decoder */
|
||||
+#define VIRTIO_ID_SCMI 32 /* virtio SCMI */
|
||||
+#define VIRTIO_ID_NITRO_SEC_MOD 33 /* virtio nitro secure module*/
|
||||
+#define VIRTIO_ID_I2C_ADAPTER 34 /* virtio i2c adapter */
|
||||
+#define VIRTIO_ID_WATCHDOG 35 /* virtio watchdog */
|
||||
+#define VIRTIO_ID_CAN 36 /* virtio can */
|
||||
+#define VIRTIO_ID_DMABUF 37 /* virtio dmabuf */
|
||||
+#define VIRTIO_ID_PARAM_SERV 38 /* virtio parameter server */
|
||||
+#define VIRTIO_ID_AUDIO_POLICY 39 /* virtio audio policy */
|
||||
#define VIRTIO_ID_BT 40 /* virtio bluetooth */
|
||||
+#define VIRTIO_ID_GPIO 41 /* virtio gpio */
|
||||
+
|
||||
+/*
|
||||
+ * Virtio Transitional IDs
|
||||
+ */
|
||||
+
|
||||
+#define VIRTIO_TRANS_ID_NET 1000 /* transitional virtio net */
|
||||
+#define VIRTIO_TRANS_ID_BLOCK 1001 /* transitional virtio block */
|
||||
+#define VIRTIO_TRANS_ID_BALLOON 1002 /* transitional virtio balloon */
|
||||
+#define VIRTIO_TRANS_ID_CONSOLE 1003 /* transitional virtio console */
|
||||
+#define VIRTIO_TRANS_ID_SCSI 1004 /* transitional virtio SCSI */
|
||||
+#define VIRTIO_TRANS_ID_RNG 1005 /* transitional virtio rng */
|
||||
+#define VIRTIO_TRANS_ID_9P 1009 /* transitional virtio 9p console */
|
||||
|
||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||
diff --git a/include/standard-headers/linux/virtio_vsock.h b/include/standard-headers/linux/virtio_vsock.h
|
||||
index 3a23488e42..467e751b17 100644
|
||||
--- a/include/standard-headers/linux/virtio_vsock.h
|
||||
+++ b/include/standard-headers/linux/virtio_vsock.h
|
||||
@@ -97,7 +97,8 @@ enum virtio_vsock_shutdown {
|
||||
|
||||
/* VIRTIO_VSOCK_OP_RW flags values */
|
||||
enum virtio_vsock_rw {
|
||||
- VIRTIO_VSOCK_SEQ_EOR = 1,
|
||||
+ VIRTIO_VSOCK_SEQ_EOM = 1,
|
||||
+ VIRTIO_VSOCK_SEQ_EOR = 2,
|
||||
};
|
||||
|
||||
#endif /* _LINUX_VIRTIO_VSOCK_H */
|
||||
diff --git a/linux-headers/asm-arm64/unistd.h b/linux-headers/asm-arm64/unistd.h
|
||||
index f83a70e07d..ce2ee8f1e3 100644
|
||||
--- a/linux-headers/asm-arm64/unistd.h
|
||||
+++ b/linux-headers/asm-arm64/unistd.h
|
||||
@@ -20,5 +20,6 @@
|
||||
#define __ARCH_WANT_SET_GET_RLIMIT
|
||||
#define __ARCH_WANT_TIME32_SYSCALLS
|
||||
#define __ARCH_WANT_SYS_CLONE3
|
||||
+#define __ARCH_WANT_MEMFD_SECRET
|
||||
|
||||
#include <asm-generic/unistd.h>
|
||||
diff --git a/linux-headers/asm-generic/unistd.h b/linux-headers/asm-generic/unistd.h
|
||||
index f211961ce1..4557a8b608 100644
|
||||
--- a/linux-headers/asm-generic/unistd.h
|
||||
+++ b/linux-headers/asm-generic/unistd.h
|
||||
@@ -673,15 +673,15 @@ __SYSCALL(__NR_madvise, sys_madvise)
|
||||
#define __NR_remap_file_pages 234
|
||||
__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
|
||||
#define __NR_mbind 235
|
||||
-__SC_COMP(__NR_mbind, sys_mbind, compat_sys_mbind)
|
||||
+__SYSCALL(__NR_mbind, sys_mbind)
|
||||
#define __NR_get_mempolicy 236
|
||||
-__SC_COMP(__NR_get_mempolicy, sys_get_mempolicy, compat_sys_get_mempolicy)
|
||||
+__SYSCALL(__NR_get_mempolicy, sys_get_mempolicy)
|
||||
#define __NR_set_mempolicy 237
|
||||
-__SC_COMP(__NR_set_mempolicy, sys_set_mempolicy, compat_sys_set_mempolicy)
|
||||
+__SYSCALL(__NR_set_mempolicy, sys_set_mempolicy)
|
||||
#define __NR_migrate_pages 238
|
||||
-__SC_COMP(__NR_migrate_pages, sys_migrate_pages, compat_sys_migrate_pages)
|
||||
+__SYSCALL(__NR_migrate_pages, sys_migrate_pages)
|
||||
#define __NR_move_pages 239
|
||||
-__SC_COMP(__NR_move_pages, sys_move_pages, compat_sys_move_pages)
|
||||
+__SYSCALL(__NR_move_pages, sys_move_pages)
|
||||
#endif
|
||||
|
||||
#define __NR_rt_tgsigqueueinfo 240
|
||||
@@ -873,8 +873,18 @@ __SYSCALL(__NR_landlock_add_rule, sys_landlock_add_rule)
|
||||
#define __NR_landlock_restrict_self 446
|
||||
__SYSCALL(__NR_landlock_restrict_self, sys_landlock_restrict_self)
|
||||
|
||||
+#ifdef __ARCH_WANT_MEMFD_SECRET
|
||||
+#define __NR_memfd_secret 447
|
||||
+__SYSCALL(__NR_memfd_secret, sys_memfd_secret)
|
||||
+#endif
|
||||
+#define __NR_process_mrelease 448
|
||||
+__SYSCALL(__NR_process_mrelease, sys_process_mrelease)
|
||||
+
|
||||
+#define __NR_futex_waitv 449
|
||||
+__SYSCALL(__NR_futex_waitv, sys_futex_waitv)
|
||||
+
|
||||
#undef __NR_syscalls
|
||||
-#define __NR_syscalls 447
|
||||
+#define __NR_syscalls 450
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
diff --git a/linux-headers/asm-mips/unistd_n32.h b/linux-headers/asm-mips/unistd_n32.h
|
||||
index 09cd297698..4b3e7ad1ec 100644
|
||||
--- a/linux-headers/asm-mips/unistd_n32.h
|
||||
+++ b/linux-headers/asm-mips/unistd_n32.h
|
||||
@@ -376,5 +376,6 @@
|
||||
#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
||||
#define __NR_landlock_add_rule (__NR_Linux + 445)
|
||||
#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
||||
+#define __NR_process_mrelease (__NR_Linux + 448)
|
||||
|
||||
#endif /* _ASM_UNISTD_N32_H */
|
||||
diff --git a/linux-headers/asm-mips/unistd_n64.h b/linux-headers/asm-mips/unistd_n64.h
|
||||
index 780e0cead6..488d9298d9 100644
|
||||
--- a/linux-headers/asm-mips/unistd_n64.h
|
||||
+++ b/linux-headers/asm-mips/unistd_n64.h
|
||||
@@ -352,5 +352,6 @@
|
||||
#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
||||
#define __NR_landlock_add_rule (__NR_Linux + 445)
|
||||
#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
||||
+#define __NR_process_mrelease (__NR_Linux + 448)
|
||||
|
||||
#endif /* _ASM_UNISTD_N64_H */
|
||||
diff --git a/linux-headers/asm-mips/unistd_o32.h b/linux-headers/asm-mips/unistd_o32.h
|
||||
index 06a2b3b55e..f47399870a 100644
|
||||
--- a/linux-headers/asm-mips/unistd_o32.h
|
||||
+++ b/linux-headers/asm-mips/unistd_o32.h
|
||||
@@ -422,5 +422,6 @@
|
||||
#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
||||
#define __NR_landlock_add_rule (__NR_Linux + 445)
|
||||
#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
||||
+#define __NR_process_mrelease (__NR_Linux + 448)
|
||||
|
||||
#endif /* _ASM_UNISTD_O32_H */
|
||||
diff --git a/linux-headers/asm-powerpc/unistd_32.h b/linux-headers/asm-powerpc/unistd_32.h
|
||||
index cd5a8a41b2..11d54696dc 100644
|
||||
--- a/linux-headers/asm-powerpc/unistd_32.h
|
||||
+++ b/linux-headers/asm-powerpc/unistd_32.h
|
||||
@@ -429,6 +429,7 @@
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
+#define __NR_process_mrelease 448
|
||||
|
||||
|
||||
#endif /* _ASM_UNISTD_32_H */
|
||||
diff --git a/linux-headers/asm-powerpc/unistd_64.h b/linux-headers/asm-powerpc/unistd_64.h
|
||||
index 8458effa8d..cf740bab13 100644
|
||||
--- a/linux-headers/asm-powerpc/unistd_64.h
|
||||
+++ b/linux-headers/asm-powerpc/unistd_64.h
|
||||
@@ -401,6 +401,7 @@
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
+#define __NR_process_mrelease 448
|
||||
|
||||
|
||||
#endif /* _ASM_UNISTD_64_H */
|
||||
diff --git a/linux-headers/asm-s390/unistd_32.h b/linux-headers/asm-s390/unistd_32.h
|
||||
index 0c3cd299e4..8f97d98128 100644
|
||||
--- a/linux-headers/asm-s390/unistd_32.h
|
||||
+++ b/linux-headers/asm-s390/unistd_32.h
|
||||
@@ -419,5 +419,6 @@
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
+#define __NR_process_mrelease 448
|
||||
|
||||
#endif /* _ASM_S390_UNISTD_32_H */
|
||||
diff --git a/linux-headers/asm-s390/unistd_64.h b/linux-headers/asm-s390/unistd_64.h
|
||||
index 8dfc08b5e6..021ffc30e6 100644
|
||||
--- a/linux-headers/asm-s390/unistd_64.h
|
||||
+++ b/linux-headers/asm-s390/unistd_64.h
|
||||
@@ -367,5 +367,6 @@
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
+#define __NR_process_mrelease 448
|
||||
|
||||
#endif /* _ASM_S390_UNISTD_64_H */
|
||||
diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h
|
||||
index a6c327f8ad..5a776a08f7 100644
|
||||
--- a/linux-headers/asm-x86/kvm.h
|
||||
+++ b/linux-headers/asm-x86/kvm.h
|
||||
@@ -295,6 +295,7 @@ struct kvm_debug_exit_arch {
|
||||
#define KVM_GUESTDBG_USE_HW_BP 0x00020000
|
||||
#define KVM_GUESTDBG_INJECT_DB 0x00040000
|
||||
#define KVM_GUESTDBG_INJECT_BP 0x00080000
|
||||
+#define KVM_GUESTDBG_BLOCKIRQ 0x00100000
|
||||
|
||||
/* for KVM_SET_GUEST_DEBUG */
|
||||
struct kvm_guest_debug_arch {
|
||||
@@ -503,4 +504,8 @@ struct kvm_pmu_event_filter {
|
||||
#define KVM_PMU_EVENT_ALLOW 0
|
||||
#define KVM_PMU_EVENT_DENY 1
|
||||
|
||||
+/* for KVM_{GET,SET,HAS}_DEVICE_ATTR */
|
||||
+#define KVM_VCPU_TSC_CTRL 0 /* control group for the timestamp counter (TSC) */
|
||||
+#define KVM_VCPU_TSC_OFFSET 0 /* attribute for the TSC offset */
|
||||
+
|
||||
#endif /* _ASM_X86_KVM_H */
|
||||
diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h
|
||||
index 66e96c0c68..9c9ffe312b 100644
|
||||
--- a/linux-headers/asm-x86/unistd_32.h
|
||||
+++ b/linux-headers/asm-x86/unistd_32.h
|
||||
@@ -437,6 +437,9 @@
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
+#define __NR_memfd_secret 447
|
||||
+#define __NR_process_mrelease 448
|
||||
+#define __NR_futex_waitv 449
|
||||
|
||||
|
||||
#endif /* _ASM_UNISTD_32_H */
|
||||
diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h
|
||||
index b8ff6f14ee..084f1eef9c 100644
|
||||
--- a/linux-headers/asm-x86/unistd_64.h
|
||||
+++ b/linux-headers/asm-x86/unistd_64.h
|
||||
@@ -359,6 +359,9 @@
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
+#define __NR_memfd_secret 447
|
||||
+#define __NR_process_mrelease 448
|
||||
+#define __NR_futex_waitv 449
|
||||
|
||||
|
||||
#endif /* _ASM_UNISTD_64_H */
|
||||
diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
|
||||
index 06a1097c15..a2441affc2 100644
|
||||
--- a/linux-headers/asm-x86/unistd_x32.h
|
||||
+++ b/linux-headers/asm-x86/unistd_x32.h
|
||||
@@ -312,6 +312,9 @@
|
||||
#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
|
||||
#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
|
||||
#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
|
||||
+#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
|
||||
+#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
|
||||
+#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
|
||||
#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
|
||||
#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
|
||||
#define __NR_ioctl (__X32_SYSCALL_BIT + 514)
|
||||
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
|
||||
index bcaf66cc4d..02c5e7b7bb 100644
|
||||
--- a/linux-headers/linux/kvm.h
|
||||
+++ b/linux-headers/linux/kvm.h
|
||||
@@ -269,6 +269,7 @@ struct kvm_xen_exit {
|
||||
#define KVM_EXIT_AP_RESET_HOLD 32
|
||||
#define KVM_EXIT_X86_BUS_LOCK 33
|
||||
#define KVM_EXIT_XEN 34
|
||||
+#define KVM_EXIT_RISCV_SBI 35
|
||||
|
||||
/* For KVM_EXIT_INTERNAL_ERROR */
|
||||
/* Emulate instruction failed. */
|
||||
@@ -397,13 +398,23 @@ struct kvm_run {
|
||||
* "ndata" is correct, that new fields are enumerated in "flags",
|
||||
* and that each flag enumerates fields that are 64-bit aligned
|
||||
* and sized (so that ndata+internal.data[] is valid/accurate).
|
||||
+ *
|
||||
+ * Space beyond the defined fields may be used to store arbitrary
|
||||
+ * debug information relating to the emulation failure. It is
|
||||
+ * accounted for in "ndata" but the format is unspecified and is
|
||||
+ * not represented in "flags". Any such information is *not* ABI!
|
||||
*/
|
||||
struct {
|
||||
__u32 suberror;
|
||||
__u32 ndata;
|
||||
__u64 flags;
|
||||
- __u8 insn_size;
|
||||
- __u8 insn_bytes[15];
|
||||
+ union {
|
||||
+ struct {
|
||||
+ __u8 insn_size;
|
||||
+ __u8 insn_bytes[15];
|
||||
+ };
|
||||
+ };
|
||||
+ /* Arbitrary debug data may follow. */
|
||||
} emulation_failure;
|
||||
/* KVM_EXIT_OSI */
|
||||
struct {
|
||||
@@ -469,6 +480,13 @@ struct kvm_run {
|
||||
} msr;
|
||||
/* KVM_EXIT_XEN */
|
||||
struct kvm_xen_exit xen;
|
||||
+ /* KVM_EXIT_RISCV_SBI */
|
||||
+ struct {
|
||||
+ unsigned long extension_id;
|
||||
+ unsigned long function_id;
|
||||
+ unsigned long args[6];
|
||||
+ unsigned long ret[2];
|
||||
+ } riscv_sbi;
|
||||
/* Fix the size of the union. */
|
||||
char padding[256];
|
||||
};
|
||||
@@ -1223,11 +1241,16 @@ struct kvm_irqfd {
|
||||
|
||||
/* Do not use 1, KVM_CHECK_EXTENSION returned it before we had flags. */
|
||||
#define KVM_CLOCK_TSC_STABLE 2
|
||||
+#define KVM_CLOCK_REALTIME (1 << 2)
|
||||
+#define KVM_CLOCK_HOST_TSC (1 << 3)
|
||||
|
||||
struct kvm_clock_data {
|
||||
__u64 clock;
|
||||
__u32 flags;
|
||||
- __u32 pad[9];
|
||||
+ __u32 pad0;
|
||||
+ __u64 realtime;
|
||||
+ __u64 host_tsc;
|
||||
+ __u32 pad[4];
|
||||
};
|
||||
|
||||
/* For KVM_CAP_SW_TLB */
|
||||
@@ -1965,7 +1988,9 @@ struct kvm_stats_header {
|
||||
#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
|
||||
#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
|
||||
#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
|
||||
-#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_PEAK
|
||||
+#define KVM_STATS_TYPE_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT)
|
||||
+#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT)
|
||||
+#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST
|
||||
|
||||
#define KVM_STATS_UNIT_SHIFT 4
|
||||
#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
|
||||
@@ -1988,8 +2013,9 @@ struct kvm_stats_header {
|
||||
* @size: The number of data items for this stats.
|
||||
* Every data item is of type __u64.
|
||||
* @offset: The offset of the stats to the start of stat structure in
|
||||
- * struture kvm or kvm_vcpu.
|
||||
- * @unused: Unused field for future usage. Always 0 for now.
|
||||
+ * structure kvm or kvm_vcpu.
|
||||
+ * @bucket_size: A parameter value used for histogram stats. It is only used
|
||||
+ * for linear histogram stats, specifying the size of the bucket;
|
||||
* @name: The name string for the stats. Its size is indicated by the
|
||||
* &kvm_stats_header->name_size.
|
||||
*/
|
||||
@@ -1998,7 +2024,7 @@ struct kvm_stats_desc {
|
||||
__s16 exponent;
|
||||
__u16 size;
|
||||
__u32 offset;
|
||||
- __u32 unused;
|
||||
+ __u32 bucket_size;
|
||||
char name[];
|
||||
};
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,18 +1,18 @@
|
||||
From c7ff8b8916f28928185bbe937a5701e1770ab5f4 Mon Sep 17 00:00:00 2001
|
||||
From a7c6bc008fe006f005d5c15d3f883572ad5defc5 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:25 -0300
|
||||
Subject: [PATCH 20/34] migration: Add migrate_use_tls() helper
|
||||
Subject: [PATCH 20/37] migration: Add migrate_use_tls() helper
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [20/34] 41a1ec2f4ef5c873ed80cf055bb5a582e2273495
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [20/26] 02afc2e60f1abbf6db45d83e54a18b66dad52426
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
A lot of places check parameters.tls_creds in order to evaluate if TLS is
|
||||
in use, and sometimes call migrate_get_current() just for that test.
|
||||
|
@ -0,0 +1,102 @@
|
||||
From 02eab793d82cd3c82d31f1e1f34d16fcc30caf0e Mon Sep 17 00:00:00 2001
|
||||
From: Peter Xu <peterx@redhat.com>
|
||||
Date: Tue, 1 Mar 2022 16:39:14 +0800
|
||||
Subject: [PATCH 27/37] migration: Add migration_incoming_transport_cleanup()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Peter Xu <peterx@redhat.com>
|
||||
RH-MergeRequest: 195: migration: Allow migrate-recover to run multiple times
|
||||
RH-Commit: [1/2] 57b2a9a165ee7cb2d01519bd54eb8dc4185815e0
|
||||
RH-Bugzilla: 2097652
|
||||
RH-Acked-by: Leonardo Brás <leobras@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
|
||||
Add a helper to cleanup the transport listener.
|
||||
|
||||
When do it, we should also null-ify the cleanup hook and the data, then it's
|
||||
even safe to call it multiple times.
|
||||
|
||||
Move the socket_address_list cleanup altogether, because that's a mirror of the
|
||||
listener channels and only for the purpose of query-migrate. Hence when
|
||||
someone wants to cleanup the listener transport, it should also want to cleanup
|
||||
the socket list too, always.
|
||||
|
||||
No functional change intended.
|
||||
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||||
Message-Id: <20220301083925.33483-15-peterx@redhat.com>
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
(cherry picked from commit e031149c78489413038e934eec9f54ac699cf322)
|
||||
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||||
---
|
||||
migration/migration.c | 22 ++++++++++++++--------
|
||||
migration/migration.h | 1 +
|
||||
2 files changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index c8aa55d2fe..b787a36789 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -263,6 +263,19 @@ MigrationIncomingState *migration_incoming_get_current(void)
|
||||
return current_incoming;
|
||||
}
|
||||
|
||||
+void migration_incoming_transport_cleanup(MigrationIncomingState *mis)
|
||||
+{
|
||||
+ if (mis->socket_address_list) {
|
||||
+ qapi_free_SocketAddressList(mis->socket_address_list);
|
||||
+ mis->socket_address_list = NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (mis->transport_cleanup) {
|
||||
+ mis->transport_cleanup(mis->transport_data);
|
||||
+ mis->transport_data = mis->transport_cleanup = NULL;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void migration_incoming_state_destroy(void)
|
||||
{
|
||||
struct MigrationIncomingState *mis = migration_incoming_get_current();
|
||||
@@ -283,10 +296,8 @@ void migration_incoming_state_destroy(void)
|
||||
g_array_free(mis->postcopy_remote_fds, TRUE);
|
||||
mis->postcopy_remote_fds = NULL;
|
||||
}
|
||||
- if (mis->transport_cleanup) {
|
||||
- mis->transport_cleanup(mis->transport_data);
|
||||
- }
|
||||
|
||||
+ migration_incoming_transport_cleanup(mis);
|
||||
qemu_event_reset(&mis->main_thread_load_event);
|
||||
|
||||
if (mis->page_requested) {
|
||||
@@ -294,11 +305,6 @@ void migration_incoming_state_destroy(void)
|
||||
mis->page_requested = NULL;
|
||||
}
|
||||
|
||||
- if (mis->socket_address_list) {
|
||||
- qapi_free_SocketAddressList(mis->socket_address_list);
|
||||
- mis->socket_address_list = NULL;
|
||||
- }
|
||||
-
|
||||
yank_unregister_instance(MIGRATION_YANK_INSTANCE);
|
||||
}
|
||||
|
||||
diff --git a/migration/migration.h b/migration/migration.h
|
||||
index 9396b7e90a..243898e3be 100644
|
||||
--- a/migration/migration.h
|
||||
+++ b/migration/migration.h
|
||||
@@ -130,6 +130,7 @@ struct MigrationIncomingState {
|
||||
|
||||
MigrationIncomingState *migration_incoming_get_current(void);
|
||||
void migration_incoming_state_destroy(void);
|
||||
+void migration_incoming_transport_cleanup(MigrationIncomingState *mis);
|
||||
/*
|
||||
* Functions to work with blocktime context
|
||||
*/
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,19 +1,19 @@
|
||||
From c71da4b1c1c4cf089f74394ffc596d0fd0235800 Mon Sep 17 00:00:00 2001
|
||||
From 2a84bf822cae38f67458043cd379a22e0fd22485 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:25 -0300
|
||||
Subject: [PATCH 19/34] migration: Add zero-copy-send parameter for QMP/HMP for
|
||||
Subject: [PATCH 19/37] migration: Add zero-copy-send parameter for QMP/HMP for
|
||||
Linux
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [19/34] 96e64f4beb41ffc6cf34341114666598d3d53aeb
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [19/26] 44ec703088cad75fd6e504958527e81d3261c9df
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Add property that allows zero-copy migration of memory pages
|
||||
on the sending side, and also includes a helper function
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 4fead335ef5aca7c70296c082b0abc872e053d30 Mon Sep 17 00:00:00 2001
|
||||
From b21f18afceba8231c78d29e66f58516e12c28d22 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 10/34] migration: All this fields are unsigned
|
||||
Subject: [PATCH 10/37] migration: All this fields are unsigned
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [10/34] 59e3378a852a31a9942d1dd8255a9c08e442f53b
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [10/26] 2c3ee27aae334db3b283ab7ef580f58e396e569d
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
So printing it as %d is wrong. Notice that for the channel id, that
|
||||
is an uint8_t, but I changed it anyways for consistency.
|
||||
|
@ -0,0 +1,98 @@
|
||||
From f5be3d8a5944679c1239b974e0f910f1afe4f532 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Xu <peterx@redhat.com>
|
||||
Date: Thu, 31 Mar 2022 11:08:45 -0400
|
||||
Subject: [PATCH 28/37] migration: Allow migrate-recover to run multiple times
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Peter Xu <peterx@redhat.com>
|
||||
RH-MergeRequest: 195: migration: Allow migrate-recover to run multiple times
|
||||
RH-Commit: [2/2] a2e6b02007a06c9c7f5237289095811c7d7ca1f1
|
||||
RH-Bugzilla: 2097652
|
||||
RH-Acked-by: Leonardo Brás <leobras@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
|
||||
Previously migration didn't have an easy way to cleanup the listening
|
||||
transport, migrate recovery only allows to execute once. That's done with a
|
||||
trick flag in postcopy_recover_triggered.
|
||||
|
||||
Now the facility is already there.
|
||||
|
||||
Drop postcopy_recover_triggered and instead allows a new migrate-recover to
|
||||
release the previous listener transport.
|
||||
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||||
Message-Id: <20220331150857.74406-8-peterx@redhat.com>
|
||||
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
(cherry picked from commit 08401c0426bc1a5ce4609afd1cda5dd39abbf9fa)
|
||||
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||||
---
|
||||
migration/migration.c | 13 ++-----------
|
||||
migration/migration.h | 1 -
|
||||
migration/savevm.c | 3 ---
|
||||
3 files changed, 2 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index b787a36789..616c3ff32e 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -2158,11 +2158,8 @@ void qmp_migrate_recover(const char *uri, Error **errp)
|
||||
return;
|
||||
}
|
||||
|
||||
- if (qatomic_cmpxchg(&mis->postcopy_recover_triggered,
|
||||
- false, true) == true) {
|
||||
- error_setg(errp, "Migrate recovery is triggered already");
|
||||
- return;
|
||||
- }
|
||||
+ /* If there's an existing transport, release it */
|
||||
+ migration_incoming_transport_cleanup(mis);
|
||||
|
||||
/*
|
||||
* Note that this call will never start a real migration; it will
|
||||
@@ -2170,12 +2167,6 @@ void qmp_migrate_recover(const char *uri, Error **errp)
|
||||
* to continue using that newly established channel.
|
||||
*/
|
||||
qemu_start_incoming_migration(uri, errp);
|
||||
-
|
||||
- /* Safe to dereference with the assert above */
|
||||
- if (*errp) {
|
||||
- /* Reset the flag so user could still retry */
|
||||
- qatomic_set(&mis->postcopy_recover_triggered, false);
|
||||
- }
|
||||
}
|
||||
|
||||
void qmp_migrate_pause(Error **errp)
|
||||
diff --git a/migration/migration.h b/migration/migration.h
|
||||
index 243898e3be..0ae2133326 100644
|
||||
--- a/migration/migration.h
|
||||
+++ b/migration/migration.h
|
||||
@@ -103,7 +103,6 @@ struct MigrationIncomingState {
|
||||
struct PostcopyBlocktimeContext *blocktime_ctx;
|
||||
|
||||
/* notify PAUSED postcopy incoming migrations to try to continue */
|
||||
- bool postcopy_recover_triggered;
|
||||
QemuSemaphore postcopy_pause_sem_dst;
|
||||
QemuSemaphore postcopy_pause_sem_fault;
|
||||
|
||||
diff --git a/migration/savevm.c b/migration/savevm.c
|
||||
index 0bef031acb..b8382aaa64 100644
|
||||
--- a/migration/savevm.c
|
||||
+++ b/migration/savevm.c
|
||||
@@ -2568,9 +2568,6 @@ static bool postcopy_pause_incoming(MigrationIncomingState *mis)
|
||||
|
||||
assert(migrate_postcopy_ram());
|
||||
|
||||
- /* Clear the triggered bit to allow one recovery */
|
||||
- mis->postcopy_recover_triggered = false;
|
||||
-
|
||||
/*
|
||||
* Unregister yank with either from/to src would work, since ioc behind it
|
||||
* is the same
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,19 +1,19 @@
|
||||
From cfcde3507dd742c0e17cdfe3ac3bf076cc131a84 Mon Sep 17 00:00:00 2001
|
||||
From 097f72427f4f5da4fdcdbeee52aea0c1f67d54dc Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Tue, 19 Jul 2022 09:23:45 -0300
|
||||
Subject: [PATCH 32/34] migration: Avoid false-positive on non-supported
|
||||
Subject: [PATCH 6/9] migration: Avoid false-positive on non-supported
|
||||
scenarios for zero-copy-send
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [32/34] 409d9f974c5d69cdb4df8ef44f45c6cb25638144
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [6/8] f23195f3ab4f6eba0463f38e5971ccaccdac2cfd
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Migration with zero-copy-send currently has it's limitations, as it can't
|
||||
be used with TLS nor any kind of compression. In such scenarios, it should
|
||||
@ -56,10 +56,10 @@ Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
||||
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index a3e0ac954c..b1fe50a749 100644
|
||||
index 952a26c5c2..35b3197eff 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -1254,7 +1254,9 @@ static bool migrate_caps_check(bool *cap_list,
|
||||
@@ -1260,7 +1260,9 @@ static bool migrate_caps_check(bool *cap_list,
|
||||
#ifdef CONFIG_LINUX
|
||||
if (cap_list[MIGRATION_CAPABILITY_ZERO_COPY_SEND] &&
|
||||
(!cap_list[MIGRATION_CAPABILITY_MULTIFD] ||
|
||||
@ -70,7 +70,7 @@ index a3e0ac954c..b1fe50a749 100644
|
||||
migrate_use_tls())) {
|
||||
error_setg(errp,
|
||||
"Zero copy only available for non-compressed non-TLS multifd migration");
|
||||
@@ -1491,6 +1493,17 @@ static bool migrate_params_check(MigrationParameters *params, Error **errp)
|
||||
@@ -1497,6 +1499,17 @@ static bool migrate_params_check(MigrationParameters *params, Error **errp)
|
||||
error_prepend(errp, "Invalid mapping given for block-bitmap-mapping: ");
|
||||
return false;
|
||||
}
|
||||
@ -89,5 +89,5 @@ index a3e0ac954c..b1fe50a749 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From a1853831de58b56278ef02964fd8c86ed19c2007 Mon Sep 17 00:00:00 2001
|
||||
From 70108ff9ffe77062116e47670c0e0c2396529f88 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 20 Jun 2022 02:39:45 -0300
|
||||
Subject: [PATCH 26/34] migration: Change zero_copy_send from migration
|
||||
Subject: [PATCH 26/37] migration: Change zero_copy_send from migration
|
||||
parameter to migration capability
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [26/34] 249c0aaac45b33db0ba2f6d2010d61947d4e96f9
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [26/26] ea61e6cbdbe47611bd22d18988e1c4c4e8357cc3
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
When originally implemented, zero_copy_send was designed as a Migration
|
||||
paramenter.
|
||||
|
@ -1,18 +1,18 @@
|
||||
From be7a79cd5eb65f9835593f353220a3fe4fa7f30c Mon Sep 17 00:00:00 2001
|
||||
From 030b54f5a2b2c8976370c962e9847af4746ac2c2 Mon Sep 17 00:00:00 2001
|
||||
From: David Edmondson <david.edmondson@oracle.com>
|
||||
Date: Tue, 21 Dec 2021 09:34:40 +0000
|
||||
Subject: [PATCH 27/34] migration: Introduce ram_transferred_add()
|
||||
Subject: [PATCH 1/9] migration: Introduce ram_transferred_add()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [27/34] fdc6eea0f4cf5ace0a71d981218ce150e98654ff
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [1/8] a6545760b0de13d533f6164be0545a6720bb42c7
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Replace direct manipulation of ram_counters.transferred with a
|
||||
function.
|
||||
@ -118,5 +118,5 @@ index 3e208efca7..3e82c4ff46 100644
|
||||
ret = qemu_file_get_error(f);
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 2bde4dfec804afa72a3b18e41798612256fe1722 Mon Sep 17 00:00:00 2001
|
||||
From 6a9a5a2809cbbe2982df156722b88efeec998e3d Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:22 -0300
|
||||
Subject: [PATCH 01/34] migration: Never call twice qemu_target_page_size()
|
||||
Subject: [PATCH 01/37] migration: Never call twice qemu_target_page_size()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [1/34] 0c99a1b9648103cfba65e724578e922ab05cce78
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [1/26] 809ca84dec80bafc1959df8c9e57f482ee752a97
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 849a82a35629d480cdfa451310b77edd5ee00aa4 Mon Sep 17 00:00:00 2001
|
||||
From 82637509cc9197ad9d1e1b286a608bf0da04b7b3 Mon Sep 17 00:00:00 2001
|
||||
From: David Edmondson <david.edmondson@oracle.com>
|
||||
Date: Tue, 21 Dec 2021 09:34:41 +0000
|
||||
Subject: [PATCH 28/34] migration: Tally pre-copy, downtime and post-copy bytes
|
||||
Subject: [PATCH 2/9] migration: Tally pre-copy, downtime and post-copy bytes
|
||||
independently
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [28/34] a6e61ae2f016d020b2456be6087aeb7d4b9f9387
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [2/8] 7d1bf37a3d93da88da6525d70fc1fce1abb92b83
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Provide information on the number of bytes copied in the pre-copy,
|
||||
downtime and post-copy phases of migration.
|
||||
@ -32,10 +32,10 @@ Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
||||
4 files changed, 34 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index c8aa55d2fe..87b4a6c3f9 100644
|
||||
index 616c3ff32e..e100b30f00 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -1010,6 +1010,9 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s)
|
||||
@@ -1016,6 +1016,9 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s)
|
||||
info->ram->page_size = page_size;
|
||||
info->ram->multifd_bytes = ram_counters.multifd_bytes;
|
||||
info->ram->pages_per_second = s->pages_per_second;
|
||||
@ -118,5 +118,5 @@ index fe70a0c4b2..c8ec260ab0 100644
|
||||
##
|
||||
# @XBZRLECacheStats:
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From d40f63360fc8677ac2ac3a679bab4c1e3dbe334f Mon Sep 17 00:00:00 2001
|
||||
From 8aecb49fdd771c5819fccc9e750b2e9cd4e94b58 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 25 Jul 2022 22:02:35 -0300
|
||||
Subject: [PATCH 33/34] migration: add remaining params->has_* = true in
|
||||
Subject: [PATCH 7/9] migration: add remaining params->has_* = true in
|
||||
migration_instance_init()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [33/34] cc70a134ae27296e8a07dffd4dfccf1a329f27f1
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [7/8] fb622e5b88e14eb859d4903d9c088ba6ca63fc81
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Some of params->has_* = true are missing in migration_instance_init, this
|
||||
causes migrate_params_check() to skip some tests, allowing some
|
||||
@ -36,10 +36,10 @@ Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index b1fe50a749..02f962ead0 100644
|
||||
index 35b3197eff..51e6726dac 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -4337,6 +4337,7 @@ static void migration_instance_init(Object *obj)
|
||||
@@ -4334,6 +4334,7 @@ static void migration_instance_init(Object *obj)
|
||||
/* Set has_* up only for parameter checks */
|
||||
params->has_compress_level = true;
|
||||
params->has_compress_threads = true;
|
||||
@ -47,7 +47,7 @@ index b1fe50a749..02f962ead0 100644
|
||||
params->has_decompress_threads = true;
|
||||
params->has_throttle_trigger_threshold = true;
|
||||
params->has_cpu_throttle_initial = true;
|
||||
@@ -4357,6 +4358,9 @@ static void migration_instance_init(Object *obj)
|
||||
@@ -4354,6 +4355,9 @@ static void migration_instance_init(Object *obj)
|
||||
params->has_announce_max = true;
|
||||
params->has_announce_rounds = true;
|
||||
params->has_announce_step = true;
|
||||
@ -58,5 +58,5 @@ index b1fe50a749..02f962ead0 100644
|
||||
qemu_sem_init(&ms->postcopy_pause_sem, 0);
|
||||
qemu_sem_init(&ms->postcopy_pause_rp_sem, 0);
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From e7497ea1a0fa4d4a10fb76f3a274df29e487a277 Mon Sep 17 00:00:00 2001
|
||||
From 2516a21205e67078cb735e9fd47ba50156c166b7 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Mon, 11 Jul 2022 18:11:13 -0300
|
||||
Subject: [PATCH 31/34] migration/multifd: Report to user when zerocopy not
|
||||
Subject: [PATCH 5/9] migration/multifd: Report to user when zerocopy not
|
||||
working
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [31/34] 5aa1b4e6cfc23dd8474844ef8ffa9eb996355e20
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-MergeRequest: 201: Zero-copy-send fixes + improvements
|
||||
RH-Commit: [5/8] 0b2e23b7f8ae72936e11369cd44ba474ef3b9e8c
|
||||
RH-Bugzilla: 2110203
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Some errors, like the lack of Scatter-Gather support by the network
|
||||
interface(NETIF_F_SG) may cause sendmsg(...,MSG_ZEROCOPY) to fail on using
|
||||
@ -79,5 +79,5 @@ index c515396a9a..69c3ccb26a 100644
|
||||
+
|
||||
#endif
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,22 +1,23 @@
|
||||
From a5a03cd1ffc772c9d2bbf8e97e971b0cb8daa617 Mon Sep 17 00:00:00 2001
|
||||
From 3b567f762cbd8d4ffaf717b0baba9cf9fe9614c2 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 03/34] multifd: Add missing documention
|
||||
Subject: [PATCH 03/37] multifd: Add missing documentation
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [3/34] 3f73bc1414f80a3611c7a807671a04ddb16ec7da
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [3/26] 924fca4305ebd8669955d456fc1c515f509e6026
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
(cherry picked from commit 18ede636bc29fd8bda628fe3e5c593f8c1b734f4)
|
||||
(fixed typo in commit message)
|
||||
Signed-off-by: Leonardo Bras <leobras@redhat.com>
|
||||
---
|
||||
migration/multifd-zlib.c | 2 ++
|
@ -1,18 +1,18 @@
|
||||
From ff3315e41f6e33e2ef7d764e064be60b3b7670e4 Mon Sep 17 00:00:00 2001
|
||||
From 8c1edb1889ff44506f35fa185d6569b0dd9d7260 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 07/34] multifd: Fill offset and block for reception
|
||||
Subject: [PATCH 07/37] multifd: Fill offset and block for reception
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [7/34] e1c460e910a7de2bbe21221b4c54da0bbc09b4c0
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [7/26] 51a9e6b76af956d63fc735172211d9bf6f0f6f80
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
We were using the iov directly, but we will need this info on the
|
||||
following patch.
|
||||
|
@ -1,19 +1,19 @@
|
||||
From fb4bec0c863fb397078ab6086e95d5401be04ef2 Mon Sep 17 00:00:00 2001
|
||||
From 7a7e2191f1ac4114380248cbd3c6ab7425250747 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:25 -0300
|
||||
Subject: [PATCH 23/34] multifd: Implement zero copy write in multifd migration
|
||||
Subject: [PATCH 23/37] multifd: Implement zero copy write in multifd migration
|
||||
(multifd-zero-copy)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [23/34] ef7e8d02dde6570dc8cdf232f7ea03c997ee2e40
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [23/26] 904ce3909cfef62dd84cc7d3c6a3482e7e6f28e9
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Implement zero copy send on nocomp_send_write(), by making use of QIOChannel
|
||||
writev + flags & flush interface.
|
||||
|
@ -1,18 +1,18 @@
|
||||
From e74b927853e84b44f8047718020593939ad125ec Mon Sep 17 00:00:00 2001
|
||||
From 75cd92cb7cff055f46163e64d66ba3f685f9ac04 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 09/34] multifd: Make zlib compression method not use iovs
|
||||
Subject: [PATCH 09/37] multifd: Make zlib compression method not use iovs
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [9/34] 37d70e2163ed982e2d8343c4ec1061fc59677688
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [9/26] d33dd62b833d50fee989a195aebcc8d5e7d43181
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 9cc84ed4e52807912598f3cdef3ad08e9166cdea Mon Sep 17 00:00:00 2001
|
||||
From 1cdab9cadef1ed84ec34651a1edbffa36c1e67d0 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 12/34] multifd: Make zlib use iov's
|
||||
Subject: [PATCH 12/37] multifd: Make zlib use iov's
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [12/34] 7cca02fb1706db0b1336d43ef4b1b6a16acf21a1
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [12/26] 58630452e14802e71a9eadb17cfe4964ebf8e091
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
@ -1,18 +1,18 @@
|
||||
From dc083c2407de0a668573e549b8357f451554e376 Mon Sep 17 00:00:00 2001
|
||||
From ab6262bd4829e3bd6437fe32737209df2af2d141 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 08/34] multifd: Make zstd compression method not use iovs
|
||||
Subject: [PATCH 08/37] multifd: Make zstd compression method not use iovs
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [8/34] 953059f89f3b79f4c515c16877052522c3104753
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [8/26] 010579fa73b5a4c6fd631dc9fbaf6f974974bc99
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
@ -1,18 +1,18 @@
|
||||
From a451644d96f572f5845d3ee523e54486da55d9ae Mon Sep 17 00:00:00 2001
|
||||
From bac5ce0b4d3552d6056045f201b4e50dd6204b31 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 13/34] multifd: Make zstd use iov's
|
||||
Subject: [PATCH 13/37] multifd: Make zstd use iov's
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [13/34] 37929ac695c7bdfe6e2f798d4f5e43a5e7525acb
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [13/26] 4d7036fb32efdf088d23737b9710e6ad1a4654aa
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
@ -1,18 +1,18 @@
|
||||
From faae5f3dd29a25607f34466b9cd11d17ff6a0db6 Mon Sep 17 00:00:00 2001
|
||||
From 1181a9cbcaf37a82aa7bf117ef209f554b8c4a71 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 11/34] multifd: Move iov from pages to params
|
||||
Subject: [PATCH 11/37] multifd: Move iov from pages to params
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [11/34] 382f1d5db714944bd12f264db9ad0e37ddb2cfeb
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [11/26] 24dff3ef68cf3327811242193502319ed3e3940a
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
This will allow us to reduce the number of system calls on the next patch.
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From e93de1066dde56befa50d1466955c7b7432604d1 Mon Sep 17 00:00:00 2001
|
||||
From 2952487c7e5ed14796fbffae0b964a35790d6850 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 14/34] multifd: Remove send_write() method
|
||||
Subject: [PATCH 14/37] multifd: Remove send_write() method
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [14/34] 483abd10c7cf11f27599ebcfb0586eb91b6519c1
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [14/26] 5fa59ffa09099fbc6da84e9a192ca71af52cc98f
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Everything use now iov's.
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 030004b805604114aeaf8b9344b496332f433f71 Mon Sep 17 00:00:00 2001
|
||||
From 003ef20d11b33a7139fae6fbcf170188a07afc43 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:22 -0300
|
||||
Subject: [PATCH 02/34] multifd: Rename used field to num
|
||||
Subject: [PATCH 02/37] multifd: Rename used field to num
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [2/34] 5e411060b289cdabdf66c0774a55e109c0ef2906
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [2/26] 952283197ef89be4d61c7690bb6c3194e5c67217
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
We will need to split it later in zero_num (number of zero pages) and
|
||||
normal_num (number of normal pages). This name is better.
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 8a1b74503b17a1f48283eeec547579aad5bdb8f9 Mon Sep 17 00:00:00 2001
|
||||
From 33a38fef5e889b45571228bde519746fd90d8877 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:25 -0300
|
||||
Subject: [PATCH 22/34] multifd: Send header packet without flags if
|
||||
Subject: [PATCH 22/37] multifd: Send header packet without flags if
|
||||
zero-copy-send is enabled
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [22/34] f8ea6e11134afe5291b6f404dc9b59557fbf1030
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [22/26] 9abfee42b72f11911cf128519826d09cbd2f5bc3
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Since d48c3a0445 ("multifd: Use a single writev on the send side"),
|
||||
sending the header packet and the memory pages happens in the same
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 8814fdd9eba7a69c2b5f7df8a8db49d7c2ac8378 Mon Sep 17 00:00:00 2001
|
||||
From 56cd14fc23c58707b9184da11f36d777bba6ce78 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 04/34] multifd: The variable is only used inside the loop
|
||||
Subject: [PATCH 04/37] multifd: The variable is only used inside the loop
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [4/34] ea2b915fa5e795d88edaa3e0cf39a9f2c3cc2050
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [4/26] 45d8bbde75ebbef6329c41ddb56db4526739f94f
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
@ -1,18 +1,18 @@
|
||||
From ef864989dbe480e952bb3c5ea3cd9dfcf97bd455 Mon Sep 17 00:00:00 2001
|
||||
From 4051de396e02ea2c1911c842426318bcd97f93c7 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 15/34] multifd: Use a single writev on the send side
|
||||
Subject: [PATCH 15/37] multifd: Use a single writev on the send side
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [15/34] 3e421f67a5f69231280ed748318c0317da31ae95
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [15/26] c37063c813fc0ba695072117f272360e5c413803
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Until now, we wrote the packet header with write(), and the rest of the
|
||||
pages with writev(). Just increase the size of the iovec and do a
|
||||
|
@ -1,18 +1,18 @@
|
||||
From c70c97cd59fd22de0957ea1c0a655fb5ef270f1e Mon Sep 17 00:00:00 2001
|
||||
From 3b57c876e1eaca34fb5bd9067553de945013d4be Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:24 -0300
|
||||
Subject: [PATCH 16/34] multifd: Use normal pages array on the send side
|
||||
Subject: [PATCH 16/37] multifd: Use normal pages array on the send side
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [16/34] 24f4ea3248f6ce883d57344600c8adbf51bd7d8c
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [16/26] 1c48806474daf48fe93920ac361311af95c6a6f3
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
We are only sending normal pages through multifd channels.
|
||||
Later on this series, we are going to also send zero pages.
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 9d8968ae10e1724198c493646e2bdcd55f205e5e Mon Sep 17 00:00:00 2001
|
||||
From fce933410a5068220a5f29011a6d1a647e357a62 Mon Sep 17 00:00:00 2001
|
||||
From: Leonardo Bras <leobras@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:25 -0300
|
||||
Subject: [PATCH 21/34] multifd: multifd_send_sync_main now returns negative on
|
||||
Subject: [PATCH 21/37] multifd: multifd_send_sync_main now returns negative on
|
||||
error
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [21/34] bef7acbe751fc4871a9ece72ab58b195658d6328
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [21/26] b4e4f3663576aa87f3b2f66f1d38bad4f50bd4ac
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
Even though multifd_send_sync_main() currently emits error_reports, it's
|
||||
callers don't really check it before continuing.
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 46c902b006cbf52341804e85f9246bdc8afc8611 Mon Sep 17 00:00:00 2001
|
||||
From 5f53448092c944857a2b89138f22c5ab335d8250 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 05/34] multifd: remove used parameter from send_prepare()
|
||||
Subject: [PATCH 05/37] multifd: remove used parameter from send_prepare()
|
||||
method
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [5/34] b4f1c9540bddd137756cab4bde4ba5d8eac09ab9
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [5/26] ad6360d19d65e8c332dcdc3d3234478639e03db8
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
It is already there as p->pages->num.
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 75ef79011b75d1024dc50a999d03ab90570e6533 Mon Sep 17 00:00:00 2001
|
||||
From 8cdedf86dc193673ea24516e7b44f8b4da5dd713 Mon Sep 17 00:00:00 2001
|
||||
From: Juan Quintela <quintela@redhat.com>
|
||||
Date: Wed, 18 May 2022 02:52:23 -0300
|
||||
Subject: [PATCH 06/34] multifd: remove used parameter from send_recv_pages()
|
||||
Subject: [PATCH 06/37] multifd: remove used parameter from send_recv_pages()
|
||||
method
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Leonardo Brás <leobras@redhat.com>
|
||||
RH-MergeRequest: 185: MSG_ZEROCOPY + Multifd @ rhel8.6
|
||||
RH-Commit: [6/34] fe59a7c794dd707cf71b2dc6104a0a89e2ac7d50
|
||||
RH-Bugzilla: 2117252
|
||||
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-MergeRequest: 191: MSG_ZEROCOPY + Multifd @ rhel8.7
|
||||
RH-Commit: [6/26] 5c1a506e4178501a0894ea4e7ac919e1d4d4cc32
|
||||
RH-Bugzilla: 2072049
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
|
||||
It is already there as p->pages->num.
|
||||
|
||||
|
@ -0,0 +1,63 @@
|
||||
From 115507e5e8b97993b50ea7b39d6d4bb493973e46 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 5 Aug 2022 11:42:14 +0200
|
||||
Subject: [PATCH 9/9] pc-bios/s390-ccw: Fix booting with logical block size <
|
||||
physical block size
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 207: pc-bios/s390-ccw: Fix booting with logical block size < physical block size
|
||||
RH-Commit: [1/1] ab22832592e0a48277bf7aca1b941a1be79aeab6
|
||||
RH-Bugzilla: 2112296
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Claudio Imbrenda <None>
|
||||
|
||||
For accessing single blocks during boot, it's the logical block size that
|
||||
matters. (Physical block sizes are rather interesting e.g. for creating
|
||||
file systems with the correct alignment for speed reasons etc.).
|
||||
So the s390-ccw bios has to use the logical block size for calculating
|
||||
sector numbers during the boot phase, the "physical_block_exp" shift
|
||||
value must not be taken into account. This change fixes the boot process
|
||||
when the guest hast been installed on a disk where the logical block size
|
||||
differs from the physical one, e.g. if the guest has been installed
|
||||
like this:
|
||||
|
||||
qemu-system-s390x -nographic -accel kvm -m 2G \
|
||||
-drive if=none,id=d1,file=fedora.iso,format=raw,media=cdrom \
|
||||
-device virtio-scsi -device scsi-cd,drive=d1 \
|
||||
-drive if=none,id=d2,file=test.qcow2,format=qcow2
|
||||
-device virtio-blk,drive=d2,physical_block_size=4096,logical_block_size=512
|
||||
|
||||
Linux correctly uses the logical block size of 512 for the installation,
|
||||
but the s390-ccw bios tries to boot from a disk with 4096 block size so
|
||||
far, as long as this patch has not been applied yet (well, it used to work
|
||||
by accident in the past due to the virtio_assume_scsi() hack that used to
|
||||
enforce 512 byte sectors on all virtio-block disks, but that hack has been
|
||||
well removed in commit 5447de2619050a0a4d to fix other scenarios).
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2112296
|
||||
Message-Id: <20220805094214.285223-1-thuth@redhat.com>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 393296de19650e1400ca265914cfdeb313725363)
|
||||
---
|
||||
pc-bios/s390-ccw/virtio-blkdev.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
index 8271c47296..794f99b42c 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
@@ -173,7 +173,7 @@ int virtio_get_block_size(void)
|
||||
|
||||
switch (vdev->senseid.cu_model) {
|
||||
case VIRTIO_ID_BLOCK:
|
||||
- return vdev->config.blk.blk_size << vdev->config.blk.physical_block_exp;
|
||||
+ return vdev->config.blk.blk_size;
|
||||
case VIRTIO_ID_SCSI:
|
||||
return vdev->scsi_block_size;
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,180 @@
|
||||
From 0e7b71a3f0b3a2e1dba54f02efc15b02f337e031 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 36/37] pc-bios/s390-ccw: Split virtio-scsi code from
|
||||
virtio_blk_setup_device()
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [8/9] 8e24806a91c91b2e3603da88e5a22d96a91e8686
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit cf30b7c4a9b2c64518be8037c2e6670aacdb00b9
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:19:00 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw: Split virtio-scsi code from virtio_blk_setup_device()
|
||||
|
||||
The next patch is going to add more virtio-block specific code to
|
||||
virtio_blk_setup_device(), and if the virtio-scsi code is also in
|
||||
there, this is more cumbersome. And the calling function virtio_setup()
|
||||
in main.c looks at the device type already anyway, so it's more
|
||||
logical to separate the virtio-scsi stuff into a new function in
|
||||
virtio-scsi.c instead.
|
||||
|
||||
Message-Id: <20220704111903.62400-10-thuth@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/main.c | 24 +++++++++++++++++-------
|
||||
pc-bios/s390-ccw/virtio-blkdev.c | 20 ++------------------
|
||||
pc-bios/s390-ccw/virtio-scsi.c | 19 ++++++++++++++++++-
|
||||
pc-bios/s390-ccw/virtio-scsi.h | 2 +-
|
||||
4 files changed, 38 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
|
||||
index 5d2b7ba94d..13e1d8fdf7 100644
|
||||
--- a/pc-bios/s390-ccw/main.c
|
||||
+++ b/pc-bios/s390-ccw/main.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "s390-ccw.h"
|
||||
#include "cio.h"
|
||||
#include "virtio.h"
|
||||
+#include "virtio-scsi.h"
|
||||
#include "dasd-ipl.h"
|
||||
|
||||
char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
|
||||
@@ -218,6 +219,7 @@ static int virtio_setup(void)
|
||||
{
|
||||
VDev *vdev = virtio_get_device();
|
||||
QemuIplParameters *early_qipl = (QemuIplParameters *)QIPL_ADDRESS;
|
||||
+ int ret;
|
||||
|
||||
memcpy(&qipl, early_qipl, sizeof(QemuIplParameters));
|
||||
|
||||
@@ -225,18 +227,26 @@ static int virtio_setup(void)
|
||||
menu_setup();
|
||||
}
|
||||
|
||||
- if (virtio_get_device_type() == VIRTIO_ID_NET) {
|
||||
+ switch (vdev->senseid.cu_model) {
|
||||
+ case VIRTIO_ID_NET:
|
||||
sclp_print("Network boot device detected\n");
|
||||
vdev->netboot_start_addr = qipl.netboot_start_addr;
|
||||
- } else {
|
||||
- int ret = virtio_blk_setup_device(blk_schid);
|
||||
- if (ret) {
|
||||
- return ret;
|
||||
- }
|
||||
+ return 0;
|
||||
+ case VIRTIO_ID_BLOCK:
|
||||
+ ret = virtio_blk_setup_device(blk_schid);
|
||||
+ break;
|
||||
+ case VIRTIO_ID_SCSI:
|
||||
+ ret = virtio_scsi_setup_device(blk_schid);
|
||||
+ break;
|
||||
+ default:
|
||||
+ panic("\n! No IPL device available !\n");
|
||||
+ }
|
||||
+
|
||||
+ if (!ret) {
|
||||
IPL_assert(virtio_ipl_disk_is_valid(), "No valid IPL device detected");
|
||||
}
|
||||
|
||||
- return 0;
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static void ipl_boot_device(void)
|
||||
diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
index db1f7f44aa..c175b66a47 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
@@ -222,27 +222,11 @@ uint64_t virtio_get_blocks(void)
|
||||
int virtio_blk_setup_device(SubChannelId schid)
|
||||
{
|
||||
VDev *vdev = virtio_get_device();
|
||||
- int ret = 0;
|
||||
|
||||
vdev->schid = schid;
|
||||
virtio_setup_ccw(vdev);
|
||||
|
||||
- switch (vdev->senseid.cu_model) {
|
||||
- case VIRTIO_ID_BLOCK:
|
||||
- sclp_print("Using virtio-blk.\n");
|
||||
- break;
|
||||
- case VIRTIO_ID_SCSI:
|
||||
- IPL_assert(vdev->config.scsi.sense_size == VIRTIO_SCSI_SENSE_SIZE,
|
||||
- "Config: sense size mismatch");
|
||||
- IPL_assert(vdev->config.scsi.cdb_size == VIRTIO_SCSI_CDB_SIZE,
|
||||
- "Config: CDB size mismatch");
|
||||
+ sclp_print("Using virtio-blk.\n");
|
||||
|
||||
- sclp_print("Using virtio-scsi.\n");
|
||||
- ret = virtio_scsi_setup(vdev);
|
||||
- break;
|
||||
- default:
|
||||
- panic("\n! No IPL device available !\n");
|
||||
- }
|
||||
-
|
||||
- return ret;
|
||||
+ return 0;
|
||||
}
|
||||
diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
|
||||
index 2c8d0f3097..3b7069270c 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-scsi.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-scsi.c
|
||||
@@ -329,7 +329,7 @@ static void scsi_parse_capacity_report(void *data,
|
||||
}
|
||||
}
|
||||
|
||||
-int virtio_scsi_setup(VDev *vdev)
|
||||
+static int virtio_scsi_setup(VDev *vdev)
|
||||
{
|
||||
int retry_test_unit_ready = 3;
|
||||
uint8_t data[256];
|
||||
@@ -430,3 +430,20 @@ int virtio_scsi_setup(VDev *vdev)
|
||||
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+int virtio_scsi_setup_device(SubChannelId schid)
|
||||
+{
|
||||
+ VDev *vdev = virtio_get_device();
|
||||
+
|
||||
+ vdev->schid = schid;
|
||||
+ virtio_setup_ccw(vdev);
|
||||
+
|
||||
+ IPL_assert(vdev->config.scsi.sense_size == VIRTIO_SCSI_SENSE_SIZE,
|
||||
+ "Config: sense size mismatch");
|
||||
+ IPL_assert(vdev->config.scsi.cdb_size == VIRTIO_SCSI_CDB_SIZE,
|
||||
+ "Config: CDB size mismatch");
|
||||
+
|
||||
+ sclp_print("Using virtio-scsi.\n");
|
||||
+
|
||||
+ return virtio_scsi_setup(vdev);
|
||||
+}
|
||||
diff --git a/pc-bios/s390-ccw/virtio-scsi.h b/pc-bios/s390-ccw/virtio-scsi.h
|
||||
index 4b14c2c2f9..e6b6cd4815 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-scsi.h
|
||||
+++ b/pc-bios/s390-ccw/virtio-scsi.h
|
||||
@@ -67,8 +67,8 @@ static inline bool virtio_scsi_response_ok(const VirtioScsiCmdResp *r)
|
||||
return r->response == VIRTIO_SCSI_S_OK && r->status == CDB_STATUS_GOOD;
|
||||
}
|
||||
|
||||
-int virtio_scsi_setup(VDev *vdev);
|
||||
int virtio_scsi_read_many(VDev *vdev,
|
||||
ulong sector, void *load_addr, int sec_num);
|
||||
+int virtio_scsi_setup_device(SubChannelId schid);
|
||||
|
||||
#endif /* VIRTIO_SCSI_H */
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,102 @@
|
||||
From 8433b2ba40d0618c7086da87685e1c51b6da3b11 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 30/37] pc-bios/s390-ccw/bootmap: Improve the guessing logic in
|
||||
zipl_load_vblk()
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [2/9] db1d2e7929352bec0e1a5d4cf3fb385bbe02304b
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit 422865f6672ee1482b98d18321b55c1ecfb06c82
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:54 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/bootmap: Improve the guessing logic in zipl_load_vblk()
|
||||
|
||||
The logic of trying an final ISO or ECKD boot on virtio-block devices is
|
||||
very weird: Since the geometry hardly ever matches in virtio_disk_is_scsi(),
|
||||
virtio_blk_setup_device() always sets a "guessed" disk geometry via
|
||||
virtio_assume_scsi() (which is certainly also wrong in a lot of cases).
|
||||
|
||||
zipl_load_vblk() then sees that there's been a "virtio_guessed_disk_nature"
|
||||
and tries to fix up the geometry again via virtio_assume_iso9660() before
|
||||
always trying to do ipl_iso_el_torito(). That's a very brain-twisting
|
||||
way of attempting to boot from ISO images, which won't work anymore after
|
||||
the following patches that will clean up the virtio_assume_scsi() mess
|
||||
(and thus get rid of the "virtio_guessed_disk_nature" here).
|
||||
|
||||
Let's try a better approach instead: ISO files always have a magic
|
||||
string "CD001" at offset 0x8001 (see e.g. the ECMA-119 specification)
|
||||
which we can use to decide whether we should try to boot in ISO 9660
|
||||
mode (which we should also try if we see a sector size of 2048).
|
||||
|
||||
And if we were not able to boot in ISO mode here, the final boot attempt
|
||||
before panicking is to boot in ECKD mode. Since this is our last boot
|
||||
attempt anyway, simply always assume the ECKD geometry here (if the sector
|
||||
size was not 4096 yet), so that we also do not depend on the guessed disk
|
||||
geometry from virtio_blk_setup_device() here anymore.
|
||||
|
||||
Message-Id: <20220704111903.62400-4-thuth@redhat.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/bootmap.c | 27 +++++++++++++++++++++++----
|
||||
1 file changed, 23 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
|
||||
index 56411ab3b6..994e59c0b0 100644
|
||||
--- a/pc-bios/s390-ccw/bootmap.c
|
||||
+++ b/pc-bios/s390-ccw/bootmap.c
|
||||
@@ -780,18 +780,37 @@ static void ipl_iso_el_torito(void)
|
||||
}
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * Detect whether we're trying to boot from an .ISO image.
|
||||
+ * These always have a signature string "CD001" at offset 0x8001.
|
||||
+ */
|
||||
+static bool has_iso_signature(void)
|
||||
+{
|
||||
+ int blksize = virtio_get_block_size();
|
||||
+
|
||||
+ if (!blksize || virtio_read(0x8000 / blksize, sec)) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return !memcmp("CD001", &sec[1], 5);
|
||||
+}
|
||||
+
|
||||
/***********************************************************************
|
||||
* Bus specific IPL sequences
|
||||
*/
|
||||
|
||||
static void zipl_load_vblk(void)
|
||||
{
|
||||
- if (virtio_guessed_disk_nature()) {
|
||||
- virtio_assume_iso9660();
|
||||
+ int blksize = virtio_get_block_size();
|
||||
+
|
||||
+ if (blksize == VIRTIO_ISO_BLOCK_SIZE || has_iso_signature()) {
|
||||
+ if (blksize != VIRTIO_ISO_BLOCK_SIZE) {
|
||||
+ virtio_assume_iso9660();
|
||||
+ }
|
||||
+ ipl_iso_el_torito();
|
||||
}
|
||||
- ipl_iso_el_torito();
|
||||
|
||||
- if (virtio_guessed_disk_nature()) {
|
||||
+ if (blksize != VIRTIO_DASD_DEFAULT_BLOCK_SIZE) {
|
||||
sclp_print("Using guessed DASD geometry.\n");
|
||||
virtio_assume_eckd();
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,56 @@
|
||||
From 8b05a4aa32e5ae6cdbc16a5350f6df35d2d79efc Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 35/37] pc-bios/s390-ccw/virtio: Beautify the code for reading
|
||||
virtqueue configuration
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [7/9] 52fb7fee7d7c46397f32e35bd5f92f82616dfb5c
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit 070824885741f5d2a66626d3c4ecb2773c8e0552
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:59 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio: Beautify the code for reading virtqueue configuration
|
||||
|
||||
It looks nicer if we separate the run_ccw() from the IPL_assert()
|
||||
statement, and the error message should talk about "virtio device"
|
||||
instead of "block device", since this code is nowadays used for
|
||||
non-block (i.e. network) devices, too.
|
||||
|
||||
Message-Id: <20220704111903.62400-9-thuth@redhat.com>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
|
||||
index d8c2b52710..f37510f312 100644
|
||||
--- a/pc-bios/s390-ccw/virtio.c
|
||||
+++ b/pc-bios/s390-ccw/virtio.c
|
||||
@@ -289,9 +289,8 @@ void virtio_setup_ccw(VDev *vdev)
|
||||
.num = 0,
|
||||
};
|
||||
|
||||
- IPL_assert(
|
||||
- run_ccw(vdev, CCW_CMD_READ_VQ_CONF, &config, sizeof(config), false) == 0,
|
||||
- "Could not get block device VQ configuration");
|
||||
+ rc = run_ccw(vdev, CCW_CMD_READ_VQ_CONF, &config, sizeof(config), false);
|
||||
+ IPL_assert(rc == 0, "Could not get virtio device VQ configuration");
|
||||
info.num = config.num;
|
||||
vring_init(&vdev->vrings[i], &info);
|
||||
vdev->vrings[i].schid = vdev->schid;
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,63 @@
|
||||
From 511d05f31824b375057ba8dea3f0343ce6e1c1e8 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 29/37] pc-bios/s390-ccw/virtio: Introduce a macro for the DASD
|
||||
block size
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [1/9] 1053101fd5fb591131c567ff98c7d92b63a9dfa9
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit 1f2c2ee48e87ea743f8e23cc7569dd26c4cf9623
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:53 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio: Introduce a macro for the DASD block size
|
||||
|
||||
Use VIRTIO_DASD_DEFAULT_BLOCK_SIZE instead of the magic value 4096.
|
||||
|
||||
Message-Id: <20220704111903.62400-3-thuth@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio-blkdev.c | 2 +-
|
||||
pc-bios/s390-ccw/virtio.h | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
index 7d35050292..6483307630 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
@@ -155,7 +155,7 @@ void virtio_assume_eckd(void)
|
||||
vdev->config.blk.physical_block_exp = 0;
|
||||
switch (vdev->senseid.cu_model) {
|
||||
case VIRTIO_ID_BLOCK:
|
||||
- vdev->config.blk.blk_size = 4096;
|
||||
+ vdev->config.blk.blk_size = VIRTIO_DASD_DEFAULT_BLOCK_SIZE;
|
||||
break;
|
||||
case VIRTIO_ID_SCSI:
|
||||
vdev->config.blk.blk_size = vdev->scsi_block_size;
|
||||
diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h
|
||||
index 19fceb6495..9e410bde6f 100644
|
||||
--- a/pc-bios/s390-ccw/virtio.h
|
||||
+++ b/pc-bios/s390-ccw/virtio.h
|
||||
@@ -198,6 +198,7 @@ extern int virtio_read_many(ulong sector, void *load_addr, int sec_num);
|
||||
#define VIRTIO_SECTOR_SIZE 512
|
||||
#define VIRTIO_ISO_BLOCK_SIZE 2048
|
||||
#define VIRTIO_SCSI_BLOCK_SIZE 512
|
||||
+#define VIRTIO_DASD_DEFAULT_BLOCK_SIZE 4096
|
||||
|
||||
static inline ulong virtio_sector_adjust(ulong sector)
|
||||
{
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,67 @@
|
||||
From a60940fb7ef026f3aa968e77389efa51ea648ddf Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 34/37] pc-bios/s390-ccw/virtio: Read device config after
|
||||
feature negotiation
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [6/9] 99ed8765d614207db19ded75d62c65171674d982
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit aa5c69ce99411c4886bcd051f288afc02b6d968d
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:58 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio: Read device config after feature negotiation
|
||||
|
||||
Feature negotiation should be done first, since some fields in the
|
||||
config area can depend on the negotiated features and thus should
|
||||
rather be read afterwards.
|
||||
|
||||
While we're at it, also adjust the error message here a little bit
|
||||
(the code is nowadays used for non-block virtio devices, too).
|
||||
|
||||
Message-Id: <20220704111903.62400-8-thuth@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio.c | 7 +++----
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
|
||||
index 4e85a2eb82..d8c2b52710 100644
|
||||
--- a/pc-bios/s390-ccw/virtio.c
|
||||
+++ b/pc-bios/s390-ccw/virtio.c
|
||||
@@ -262,10 +262,6 @@ void virtio_setup_ccw(VDev *vdev)
|
||||
rc = run_ccw(vdev, CCW_CMD_WRITE_STATUS, &status, sizeof(status), false);
|
||||
IPL_assert(rc == 0, "Could not write DRIVER status to host");
|
||||
|
||||
- IPL_assert(
|
||||
- run_ccw(vdev, CCW_CMD_READ_CONF, &vdev->config, cfg_size, false) == 0,
|
||||
- "Could not get block device configuration");
|
||||
-
|
||||
/* Feature negotiation */
|
||||
for (i = 0; i < ARRAY_SIZE(vdev->guest_features); i++) {
|
||||
feats.features = 0;
|
||||
@@ -278,6 +274,9 @@ void virtio_setup_ccw(VDev *vdev)
|
||||
IPL_assert(rc == 0, "Could not set features bits");
|
||||
}
|
||||
|
||||
+ rc = run_ccw(vdev, CCW_CMD_READ_CONF, &vdev->config, cfg_size, false);
|
||||
+ IPL_assert(rc == 0, "Could not get virtio device configuration");
|
||||
+
|
||||
for (i = 0; i < vdev->nr_vqs; i++) {
|
||||
VqInfo info = {
|
||||
.queue = (unsigned long long) ring_area + (i * VIRTIO_RING_SIZE),
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,93 @@
|
||||
From 5cf01cccb7501c801fa9f21a021bc9e7d1fc56e3 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 33/37] pc-bios/s390-ccw/virtio: Set missing status bits while
|
||||
initializing
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [5/9] 6072245f49c229518246b4a0d1be360331305bfa
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit 175aa06a152ef6b58ba9b2e47a1296b024dea70c
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:57 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio: Set missing status bits while initializing
|
||||
|
||||
According chapter "3.1.1 Driver Requirements: Device Initialization"
|
||||
of the Virtio specification (v1.1), a driver for a device has to set
|
||||
the ACKNOWLEDGE and DRIVER bits in the status field after resetting
|
||||
the device. The s390-ccw bios skipped these steps so far and seems
|
||||
like QEMU never cared. Anyway, it's better to follow the spec, so
|
||||
let's set these bits now in the right spots, too.
|
||||
|
||||
Message-Id: <20220704111903.62400-7-thuth@redhat.com>
|
||||
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio.c | 18 ++++++++++++++----
|
||||
1 file changed, 14 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
|
||||
index 5d2c6e3381..4e85a2eb82 100644
|
||||
--- a/pc-bios/s390-ccw/virtio.c
|
||||
+++ b/pc-bios/s390-ccw/virtio.c
|
||||
@@ -220,7 +220,7 @@ int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd)
|
||||
void virtio_setup_ccw(VDev *vdev)
|
||||
{
|
||||
int i, rc, cfg_size = 0;
|
||||
- unsigned char status = VIRTIO_CONFIG_S_DRIVER_OK;
|
||||
+ uint8_t status;
|
||||
struct VirtioFeatureDesc {
|
||||
uint32_t features;
|
||||
uint8_t index;
|
||||
@@ -234,6 +234,10 @@ void virtio_setup_ccw(VDev *vdev)
|
||||
|
||||
run_ccw(vdev, CCW_CMD_VDEV_RESET, NULL, 0, false);
|
||||
|
||||
+ status = VIRTIO_CONFIG_S_ACKNOWLEDGE;
|
||||
+ rc = run_ccw(vdev, CCW_CMD_WRITE_STATUS, &status, sizeof(status), false);
|
||||
+ IPL_assert(rc == 0, "Could not write ACKNOWLEDGE status to host");
|
||||
+
|
||||
switch (vdev->senseid.cu_model) {
|
||||
case VIRTIO_ID_NET:
|
||||
vdev->nr_vqs = 2;
|
||||
@@ -253,6 +257,11 @@ void virtio_setup_ccw(VDev *vdev)
|
||||
default:
|
||||
panic("Unsupported virtio device\n");
|
||||
}
|
||||
+
|
||||
+ status |= VIRTIO_CONFIG_S_DRIVER;
|
||||
+ rc = run_ccw(vdev, CCW_CMD_WRITE_STATUS, &status, sizeof(status), false);
|
||||
+ IPL_assert(rc == 0, "Could not write DRIVER status to host");
|
||||
+
|
||||
IPL_assert(
|
||||
run_ccw(vdev, CCW_CMD_READ_CONF, &vdev->config, cfg_size, false) == 0,
|
||||
"Could not get block device configuration");
|
||||
@@ -291,9 +300,10 @@ void virtio_setup_ccw(VDev *vdev)
|
||||
run_ccw(vdev, CCW_CMD_SET_VQ, &info, sizeof(info), false) == 0,
|
||||
"Cannot set VQ info");
|
||||
}
|
||||
- IPL_assert(
|
||||
- run_ccw(vdev, CCW_CMD_WRITE_STATUS, &status, sizeof(status), false) == 0,
|
||||
- "Could not write status to host");
|
||||
+
|
||||
+ status |= VIRTIO_CONFIG_S_DRIVER_OK;
|
||||
+ rc = run_ccw(vdev, CCW_CMD_WRITE_STATUS, &status, sizeof(status), false);
|
||||
+ IPL_assert(rc == 0, "Could not write DRIVER_OK status to host");
|
||||
}
|
||||
|
||||
bool virtio_is_supported(SubChannelId schid)
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,101 @@
|
||||
From 5b3548c50e35729d724403b83e26579d31621367 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 32/37] pc-bios/s390-ccw/virtio-blkdev: Remove
|
||||
virtio_assume_scsi()
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [4/9] 5256c4e6f4d5c5aedf1bad3fee30dd3ad230a3dd
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit 5447de2619050a0a4dd480b97f88a9b58da360d1
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:56 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio-blkdev: Remove virtio_assume_scsi()
|
||||
|
||||
The virtio_assume_scsi() function is very questionable: First, it
|
||||
is only called for virtio-blk, and not for virtio-scsi, so the naming
|
||||
is already quite confusing. Second, it is called if we detected a
|
||||
"invalid" IPL disk, trying to fix it by blindly setting a sector
|
||||
size of 512. This of course won't work in most cases since disks
|
||||
might have a different sector size for a reason.
|
||||
|
||||
Thus let's remove this strange function now. The calling code can
|
||||
also be removed completely, since there is another spot in main.c
|
||||
that does "IPL_assert(virtio_ipl_disk_is_valid(), ...)" to make
|
||||
sure that we do not try to IPL from an invalid device.
|
||||
|
||||
Message-Id: <20220704111903.62400-6-thuth@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio-blkdev.c | 24 ------------------------
|
||||
pc-bios/s390-ccw/virtio.h | 1 -
|
||||
2 files changed, 25 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
index 7e13155589..db1f7f44aa 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
@@ -112,23 +112,6 @@ VirtioGDN virtio_guessed_disk_nature(void)
|
||||
return virtio_get_device()->guessed_disk_nature;
|
||||
}
|
||||
|
||||
-void virtio_assume_scsi(void)
|
||||
-{
|
||||
- VDev *vdev = virtio_get_device();
|
||||
-
|
||||
- switch (vdev->senseid.cu_model) {
|
||||
- case VIRTIO_ID_BLOCK:
|
||||
- vdev->guessed_disk_nature = VIRTIO_GDN_SCSI;
|
||||
- vdev->config.blk.blk_size = VIRTIO_SCSI_BLOCK_SIZE;
|
||||
- vdev->config.blk.physical_block_exp = 0;
|
||||
- vdev->blk_factor = 1;
|
||||
- break;
|
||||
- case VIRTIO_ID_SCSI:
|
||||
- vdev->scsi_block_size = VIRTIO_SCSI_BLOCK_SIZE;
|
||||
- break;
|
||||
- }
|
||||
-}
|
||||
-
|
||||
void virtio_assume_iso9660(void)
|
||||
{
|
||||
VDev *vdev = virtio_get_device();
|
||||
@@ -247,13 +230,6 @@ int virtio_blk_setup_device(SubChannelId schid)
|
||||
switch (vdev->senseid.cu_model) {
|
||||
case VIRTIO_ID_BLOCK:
|
||||
sclp_print("Using virtio-blk.\n");
|
||||
- if (!virtio_ipl_disk_is_valid()) {
|
||||
- /* make sure all getters but blocksize return 0 for
|
||||
- * invalid IPL disk
|
||||
- */
|
||||
- memset(&vdev->config.blk, 0, sizeof(vdev->config.blk));
|
||||
- virtio_assume_scsi();
|
||||
- }
|
||||
break;
|
||||
case VIRTIO_ID_SCSI:
|
||||
IPL_assert(vdev->config.scsi.sense_size == VIRTIO_SCSI_SENSE_SIZE,
|
||||
diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h
|
||||
index 241730effe..600ba5052b 100644
|
||||
--- a/pc-bios/s390-ccw/virtio.h
|
||||
+++ b/pc-bios/s390-ccw/virtio.h
|
||||
@@ -182,7 +182,6 @@ enum guessed_disk_nature_type {
|
||||
typedef enum guessed_disk_nature_type VirtioGDN;
|
||||
|
||||
VirtioGDN virtio_guessed_disk_nature(void);
|
||||
-void virtio_assume_scsi(void);
|
||||
void virtio_assume_eckd(void);
|
||||
void virtio_assume_iso9660(void);
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,63 @@
|
||||
From 042e966a70789bd3ed450fa4f57016129a34672e Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 37/37] pc-bios/s390-ccw/virtio-blkdev: Request the right
|
||||
feature bits
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [9/9] f04835423d648b04f2187ef9890f2d1689e2b57e
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit 9125a314cca4a1838b09305a87d8efb98f80ab67
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:19:01 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio-blkdev: Request the right feature bits
|
||||
|
||||
The virtio-blk code uses the block size and geometry fields in the
|
||||
config area. According to the virtio-spec, these have to be negotiated
|
||||
with the right feature bits during initialization, otherwise they
|
||||
might not be available. QEMU is so far very forgiving and always
|
||||
provides them, but we should not rely on this behavior, so let's
|
||||
better request them properly via the VIRTIO_BLK_F_GEOMETRY and
|
||||
VIRTIO_BLK_F_BLK_SIZE feature bits.
|
||||
|
||||
Message-Id: <20220704111903.62400-11-thuth@redhat.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio-blkdev.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
index c175b66a47..8271c47296 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
@@ -13,6 +13,9 @@
|
||||
#include "virtio.h"
|
||||
#include "virtio-scsi.h"
|
||||
|
||||
+#define VIRTIO_BLK_F_GEOMETRY (1 << 4)
|
||||
+#define VIRTIO_BLK_F_BLK_SIZE (1 << 6)
|
||||
+
|
||||
static int virtio_blk_read_many(VDev *vdev, ulong sector, void *load_addr,
|
||||
int sec_num)
|
||||
{
|
||||
@@ -223,6 +226,7 @@ int virtio_blk_setup_device(SubChannelId schid)
|
||||
{
|
||||
VDev *vdev = virtio_get_device();
|
||||
|
||||
+ vdev->guest_features[0] = VIRTIO_BLK_F_GEOMETRY | VIRTIO_BLK_F_BLK_SIZE;
|
||||
vdev->schid = schid;
|
||||
virtio_setup_ccw(vdev);
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -0,0 +1,124 @@
|
||||
From f09f2f12133073d6ccab3b2bd95717d435adc442 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Fri, 8 Jul 2022 12:29:50 +0200
|
||||
Subject: [PATCH 31/37] pc-bios/s390-ccw/virtio-blkdev: Simplify/fix
|
||||
virtio_ipl_disk_is_valid()
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 198: pc-bios/s390-ccw: Fix boot from disks with 4k sectors that do not have the typical DASD geometry
|
||||
RH-Commit: [3/9] ca0b836a417ce5bbd26e489551f573d6b2fc9e94
|
||||
RH-Bugzilla: 2098076
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2098076
|
||||
|
||||
commit bbf615f7b707f009ef8e757d170902ad33b90644
|
||||
Author: Thomas Huth <thuth@redhat.com>
|
||||
Date: Mon Jul 4 13:18:55 2022 +0200
|
||||
|
||||
pc-bios/s390-ccw/virtio-blkdev: Simplify/fix virtio_ipl_disk_is_valid()
|
||||
|
||||
The s390-ccw bios fails to boot if the boot disk is a virtio-blk
|
||||
disk with a sector size of 4096. For example:
|
||||
|
||||
dasdfmt -b 4096 -d cdl -y -p -M quick /dev/dasdX
|
||||
fdasd -a /dev/dasdX
|
||||
install a guest onto /dev/dasdX1 using virtio-blk
|
||||
qemu-system-s390x -nographic -hda /dev/dasdX1
|
||||
|
||||
The bios then bails out with:
|
||||
|
||||
! Cannot read block 0 !
|
||||
|
||||
Looking at virtio_ipl_disk_is_valid() and especially the function
|
||||
virtio_disk_is_scsi(), it does not really make sense that we expect
|
||||
only such a limited disk geometry (like a block size of 512) for
|
||||
our boot disks. Let's relax the check and allow everything that
|
||||
remotely looks like a sane disk.
|
||||
|
||||
Message-Id: <20220704111903.62400-5-thuth@redhat.com>
|
||||
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
pc-bios/s390-ccw/virtio-blkdev.c | 41 ++++++--------------------------
|
||||
pc-bios/s390-ccw/virtio.h | 2 --
|
||||
2 files changed, 7 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/pc-bios/s390-ccw/virtio-blkdev.c b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
index 6483307630..7e13155589 100644
|
||||
--- a/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
+++ b/pc-bios/s390-ccw/virtio-blkdev.c
|
||||
@@ -166,46 +166,19 @@ void virtio_assume_eckd(void)
|
||||
virtio_eckd_sectors_for_block_size(vdev->config.blk.blk_size);
|
||||
}
|
||||
|
||||
-bool virtio_disk_is_scsi(void)
|
||||
-{
|
||||
- VDev *vdev = virtio_get_device();
|
||||
-
|
||||
- if (vdev->guessed_disk_nature == VIRTIO_GDN_SCSI) {
|
||||
- return true;
|
||||
- }
|
||||
- switch (vdev->senseid.cu_model) {
|
||||
- case VIRTIO_ID_BLOCK:
|
||||
- return (vdev->config.blk.geometry.heads == 255)
|
||||
- && (vdev->config.blk.geometry.sectors == 63)
|
||||
- && (virtio_get_block_size() == VIRTIO_SCSI_BLOCK_SIZE);
|
||||
- case VIRTIO_ID_SCSI:
|
||||
- return true;
|
||||
- }
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
-bool virtio_disk_is_eckd(void)
|
||||
+bool virtio_ipl_disk_is_valid(void)
|
||||
{
|
||||
+ int blksize = virtio_get_block_size();
|
||||
VDev *vdev = virtio_get_device();
|
||||
- const int block_size = virtio_get_block_size();
|
||||
|
||||
- if (vdev->guessed_disk_nature == VIRTIO_GDN_DASD) {
|
||||
+ if (vdev->guessed_disk_nature == VIRTIO_GDN_SCSI ||
|
||||
+ vdev->guessed_disk_nature == VIRTIO_GDN_DASD) {
|
||||
return true;
|
||||
}
|
||||
- switch (vdev->senseid.cu_model) {
|
||||
- case VIRTIO_ID_BLOCK:
|
||||
- return (vdev->config.blk.geometry.heads == 15)
|
||||
- && (vdev->config.blk.geometry.sectors ==
|
||||
- virtio_eckd_sectors_for_block_size(block_size));
|
||||
- case VIRTIO_ID_SCSI:
|
||||
- return false;
|
||||
- }
|
||||
- return false;
|
||||
-}
|
||||
|
||||
-bool virtio_ipl_disk_is_valid(void)
|
||||
-{
|
||||
- return virtio_disk_is_scsi() || virtio_disk_is_eckd();
|
||||
+ return (vdev->senseid.cu_model == VIRTIO_ID_BLOCK ||
|
||||
+ vdev->senseid.cu_model == VIRTIO_ID_SCSI) &&
|
||||
+ blksize >= 512 && blksize <= 4096;
|
||||
}
|
||||
|
||||
int virtio_get_block_size(void)
|
||||
diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h
|
||||
index 9e410bde6f..241730effe 100644
|
||||
--- a/pc-bios/s390-ccw/virtio.h
|
||||
+++ b/pc-bios/s390-ccw/virtio.h
|
||||
@@ -186,8 +186,6 @@ void virtio_assume_scsi(void);
|
||||
void virtio_assume_eckd(void);
|
||||
void virtio_assume_iso9660(void);
|
||||
|
||||
-extern bool virtio_disk_is_scsi(void);
|
||||
-extern bool virtio_disk_is_eckd(void);
|
||||
extern bool virtio_ipl_disk_is_valid(void);
|
||||
extern int virtio_get_block_size(void);
|
||||
extern uint8_t virtio_get_heads(void);
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,15 +1,24 @@
|
||||
From 5f5208c1d41477645b2707cfac206d24d86b9254 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Tue, 1 Mar 2022 10:11:58 -0500
|
||||
Subject: [PATCH 5/6] pci: expose TYPE_XIO3130_DOWNSTREAM name
|
||||
From 7998e8aa78caa35c2ab2da44f9e29e21d7548c61 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 23 Mar 2022 13:21:40 -0400
|
||||
Subject: [PATCH 05/18] pci: expose TYPE_XIO3130_DOWNSTREAM name
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 125: RHEL-8.6 Fix broken PCIe device after migration
|
||||
RH-Commit: [1/2] 703782ce00f067c811056d5765a8b2094e585b4f
|
||||
RH-Bugzilla: 2054597
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 134: pci: expose TYPE_XIO3130_DOWNSTREAM name
|
||||
RH-Commit: [1/2] f09ddcaf686f22b545bf269f87787ebfc33fccda (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062610
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/2062610
|
||||
UPSTREAM: merged
|
||||
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=44038138
|
||||
|
||||
commit c41481af9a5d0d463607cc45b45c510875570817
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Tue Mar 1 10:11:58 2022 -0500
|
||||
|
||||
pci: expose TYPE_XIO3130_DOWNSTREAM name
|
||||
|
||||
Type name will be used in followup patch for cast check
|
||||
in pcihp code.
|
||||
@ -18,8 +27,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20220301151200.3507298-2-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit c41481af9a5d0d463607cc45b45c510875570817)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
hw/pci-bridge/xio3130_downstream.c | 3 ++-
|
||||
include/hw/pci-bridge/xio3130_downstream.h | 15 +++++++++++++++
|
||||
|
@ -1,15 +1,15 @@
|
||||
From 6c475f4bc2c323d75d40eb37386fbb86819791ec Mon Sep 17 00:00:00 2001
|
||||
From 552e7c8ae2c6e281a72791aefa1729be86f96642 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Tue, 5 Apr 2022 15:46:52 +0200
|
||||
Subject: [PATCH 10/11] qcow2: Add errp to rebuild_refcount_structure()
|
||||
Subject: [PATCH 5/6] qcow2: Add errp to rebuild_refcount_structure()
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 173: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [3/4] 95a6b7bb558a9ed35afae3fa9fefd761312ecb3b
|
||||
RH-Bugzilla: 2072242
|
||||
RH-MergeRequest: 171: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [3/4] 9dddd1d21383c4cbd528e5a0d42b0c2a7d87c8f6
|
||||
RH-Bugzilla: 1519071
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
Instead of fprint()-ing error messages in rebuild_refcount_structure()
|
||||
and its rebuild_refcounts_write_refblocks() helper, pass them through an
|
||||
|
@ -1,15 +1,15 @@
|
||||
From 3daca05a8f845d2a389a6cf767314bcb72109578 Mon Sep 17 00:00:00 2001
|
||||
From be54c6206b0f0a19e0ffe6a058f4f97277027a17 Mon Sep 17 00:00:00 2001
|
||||
From: Hanna Reitz <hreitz@redhat.com>
|
||||
Date: Tue, 5 Apr 2022 15:46:50 +0200
|
||||
Subject: [PATCH 08/11] qcow2: Improve refcount structure rebuilding
|
||||
Subject: [PATCH 3/6] qcow2: Improve refcount structure rebuilding
|
||||
|
||||
RH-Author: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-MergeRequest: 173: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [1/4] 586e7a0fc3cb7cc2296b544ffcef34d8395fa74c
|
||||
RH-Bugzilla: 2072242
|
||||
RH-MergeRequest: 171: qcow2: Improve refcount structure rebuilding
|
||||
RH-Commit: [1/4] 0bb78f7735a0730204670ae5ec2e040ad1d23942
|
||||
RH-Bugzilla: 1519071
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
When rebuilding the refcount structures (when qemu-img check -r found
|
||||
errors with refcount = 0, but reference count > 0), the new refcount
|
||||
|
58
SOURCES/kvm-s390x-css-fix-PMCW-invalid-mask.patch
Normal file
58
SOURCES/kvm-s390x-css-fix-PMCW-invalid-mask.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From f3125f6379cbc070e9acaf58d0ec37972992744b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Wed, 6 Apr 2022 10:56:26 +0200
|
||||
Subject: [PATCH 4/5] s390x/css: fix PMCW invalid mask
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 145: s390x/css: fix PMCW invalid mask
|
||||
RH-Commit: [1/1] fbf192f651aa668af56ca5c77455595fcdb19508
|
||||
RH-Bugzilla: 2071070
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2071070
|
||||
|
||||
commit 2df59b73e0864f021f6179f32f7ed364f6d4f38d
|
||||
Author: Nico Boehr <nrb@linux.ibm.com>
|
||||
Date: Thu Dec 16 14:16:57 2021 +0100
|
||||
|
||||
s390x/css: fix PMCW invalid mask
|
||||
|
||||
Previously, we required bits 5, 6 and 7 to be zero (0x07 == 0b111). But,
|
||||
as per the principles of operation, bit 5 is ignored in MSCH and bits 0,
|
||||
1, 6 and 7 need to be zero.
|
||||
|
||||
As both PMCW_FLAGS_MASK_INVALID and ioinst_schib_valid() are only used
|
||||
by ioinst_handle_msch(), adjust the mask accordingly.
|
||||
|
||||
Fixes: db1c8f53bfb1 ("s390: Channel I/O basic definitions.")
|
||||
Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
|
||||
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
|
||||
Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Message-Id: <20211216131657.1057978-1-nrb@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
include/hw/s390x/ioinst.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/hw/s390x/ioinst.h b/include/hw/s390x/ioinst.h
|
||||
index 3771fff9d4..ea8d0f2444 100644
|
||||
--- a/include/hw/s390x/ioinst.h
|
||||
+++ b/include/hw/s390x/ioinst.h
|
||||
@@ -107,7 +107,7 @@ QEMU_BUILD_BUG_MSG(sizeof(PMCW) != 28, "size of PMCW is wrong");
|
||||
#define PMCW_FLAGS_MASK_MP 0x0004
|
||||
#define PMCW_FLAGS_MASK_TF 0x0002
|
||||
#define PMCW_FLAGS_MASK_DNV 0x0001
|
||||
-#define PMCW_FLAGS_MASK_INVALID 0x0700
|
||||
+#define PMCW_FLAGS_MASK_INVALID 0xc300
|
||||
|
||||
#define PMCW_CHARS_MASK_ST 0x00e00000
|
||||
#define PMCW_CHARS_MASK_MBFC 0x00000004
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,97 @@
|
||||
From ddfee9d393af322938e4df466cd01b8f9570a1c9 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Huth <thuth@redhat.com>
|
||||
Date: Tue, 5 Apr 2022 10:20:59 +0200
|
||||
Subject: [PATCH 1/6] s390x/ipl: support extended kernel command line size
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 144: s390x/ipl: support extended kernel command line size
|
||||
RH-Commit: [1/1] be227e50af5dbe7802605f873db29ac5358aa196
|
||||
RH-Bugzilla: 2043830
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
||||
|
||||
Bugzilla: http://bugzilla.redhat.com/2043830
|
||||
|
||||
commit b2173046a64beed76715f310f98538f159276af1
|
||||
Author: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Date: Mon Nov 22 12:29:09 2021 +0100
|
||||
|
||||
s390x/ipl: support extended kernel command line size
|
||||
|
||||
In the past s390 used a fixed command line length of 896 bytes. This has changed
|
||||
with the Linux commit 5ecb2da660ab ("s390: support command lines longer than 896
|
||||
bytes"). There is now a parm area indicating the maximum command line size. This
|
||||
parm area has always been initialized to zero, so with older kernels this field
|
||||
would read zero and we must then assume that only 896 bytes are available.
|
||||
|
||||
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||||
Reviewed-by: David Hildenbrand <david@redhat.com>
|
||||
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
Acked-by: Viktor Mihajlovski <mihajlov@de.ibm.com>
|
||||
Message-Id: <20211122112909.18138-1-mhartmay@linux.ibm.com>
|
||||
[thuth: Cosmetic fixes, and use PRIu64 instead of %lu]
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
---
|
||||
hw/s390x/ipl.c | 27 +++++++++++++++++++++++----
|
||||
1 file changed, 23 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
|
||||
index 7ddca0127f..eb7fc4c4ae 100644
|
||||
--- a/hw/s390x/ipl.c
|
||||
+++ b/hw/s390x/ipl.c
|
||||
@@ -37,8 +37,9 @@
|
||||
|
||||
#define KERN_IMAGE_START 0x010000UL
|
||||
#define LINUX_MAGIC_ADDR 0x010008UL
|
||||
+#define KERN_PARM_AREA_SIZE_ADDR 0x010430UL
|
||||
#define KERN_PARM_AREA 0x010480UL
|
||||
-#define KERN_PARM_AREA_SIZE 0x000380UL
|
||||
+#define LEGACY_KERN_PARM_AREA_SIZE 0x000380UL
|
||||
#define INITRD_START 0x800000UL
|
||||
#define INITRD_PARM_START 0x010408UL
|
||||
#define PARMFILE_START 0x001000UL
|
||||
@@ -110,6 +111,21 @@ static uint64_t bios_translate_addr(void *opaque, uint64_t srcaddr)
|
||||
return srcaddr + dstaddr;
|
||||
}
|
||||
|
||||
+static uint64_t get_max_kernel_cmdline_size(void)
|
||||
+{
|
||||
+ uint64_t *size_ptr = rom_ptr(KERN_PARM_AREA_SIZE_ADDR, sizeof(*size_ptr));
|
||||
+
|
||||
+ if (size_ptr) {
|
||||
+ uint64_t size;
|
||||
+
|
||||
+ size = be64_to_cpu(*size_ptr);
|
||||
+ if (size) {
|
||||
+ return size;
|
||||
+ }
|
||||
+ }
|
||||
+ return LEGACY_KERN_PARM_AREA_SIZE;
|
||||
+}
|
||||
+
|
||||
static void s390_ipl_realize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
MachineState *ms = MACHINE(qdev_get_machine());
|
||||
@@ -197,10 +213,13 @@ static void s390_ipl_realize(DeviceState *dev, Error **errp)
|
||||
ipl->start_addr = KERN_IMAGE_START;
|
||||
/* Overwrite parameters in the kernel image, which are "rom" */
|
||||
if (parm_area) {
|
||||
- if (cmdline_size > KERN_PARM_AREA_SIZE) {
|
||||
+ uint64_t max_cmdline_size = get_max_kernel_cmdline_size();
|
||||
+
|
||||
+ if (cmdline_size > max_cmdline_size) {
|
||||
error_setg(errp,
|
||||
- "kernel command line exceeds maximum size: %zu > %lu",
|
||||
- cmdline_size, KERN_PARM_AREA_SIZE);
|
||||
+ "kernel command line exceeds maximum size:"
|
||||
+ " %zu > %" PRIu64,
|
||||
+ cmdline_size, max_cmdline_size);
|
||||
return;
|
||||
}
|
||||
|
||||
--
|
||||
2.27.0
|
||||
|
@ -1,15 +1,16 @@
|
||||
From 2fdce42dabea90646371c4cc19bfca1db666aaea Mon Sep 17 00:00:00 2001
|
||||
From a9a4dfdd6312e192e9134d46edfac4c1b1bfa63d Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Wolf <kwolf@redhat.com>
|
||||
Date: Mon, 22 Aug 2022 14:53:20 +0200
|
||||
Subject: [PATCH] scsi-generic: Fix emulated block limits VPD page
|
||||
|
||||
RH-Author: Kevin Wolf <kwolf@redhat.com>
|
||||
RH-MergeRequest: 214: scsi-generic: Fix emulated block limits VPD page
|
||||
RH-Commit: [1/1] 6f980d29b849a7b5cea894aefed5f0b6502c6298
|
||||
RH-Bugzilla: 2121783
|
||||
RH-MergeRequest: 212: scsi-generic: Fix emulated block limits VPD page
|
||||
RH-Commit: [1/1] d3ba6b2e03039043716ddc6b7d4a424d92249081
|
||||
RH-Bugzilla: 2120279
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Commits 01ef8185b80 amd 24b36e9813e updated the way that the maximum
|
||||
transfer length is calculated for patching block limits VPD page in an
|
||||
@ -92,5 +93,5 @@ index 0306ccc7b1..3742899839 100644
|
||||
|
||||
memset(r->buf, 0, r->buflen);
|
||||
--
|
||||
2.27.0
|
||||
2.35.3
|
||||
|
||||
|
@ -1,21 +1,20 @@
|
||||
From b1eae36683cdfe63af5749b5fe86b1c08fc0f63e Mon Sep 17 00:00:00 2001
|
||||
From fe4e22b9ccf2eb55d61eccf5050fb7aeafb5fe20 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 13 Apr 2022 14:51:06 -0400
|
||||
Subject: [PATCH 04/11] softmmu/physmem: Introduce MemTxAttrs::memory field and
|
||||
Subject: [PATCH 3/3] softmmu/physmem: Introduce MemTxAttrs::memory field and
|
||||
MEMTX_ACCESS_ERROR
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 158: hw/intc/arm_gicv3: Check for !MEMTX_OK instead of MEMTX_ERROR
|
||||
RH-Commit: [3/3] 84d64fe85a106f8faf579e43266d4349fc8e65b4 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2075686
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-MergeRequest: 151: hw/intc/arm_gicv3: Check for !MEMTX_OK instead of MEMTX_ERROR
|
||||
RH-Commit: [3/3] b1ebc1e99f21ba0b9eccb284e260b56c7a8e64d8 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 1999236
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2075686
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1999236
|
||||
Upstream: Merged
|
||||
CVE: CVE-2021-3750
|
||||
Conflicts: memalign.h has not been introduced in this version. Instead,
|
||||
|
@ -1,21 +1,20 @@
|
||||
From b570eb3a78a3096af55979ce63d96f5fc012f9e5 Mon Sep 17 00:00:00 2001
|
||||
From 916423392b46167c6683b0240610bb5a745590da Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 13 Apr 2022 14:51:06 -0400
|
||||
Subject: [PATCH 03/11] softmmu/physmem: Simplify flatview_write and
|
||||
Subject: [PATCH 2/3] softmmu/physmem: Simplify flatview_write and
|
||||
address_space_access_valid
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 158: hw/intc/arm_gicv3: Check for !MEMTX_OK instead of MEMTX_ERROR
|
||||
RH-Commit: [2/3] 66281d1c439be549c7890a662a817dd1b9367ef2 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2075686
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-MergeRequest: 151: hw/intc/arm_gicv3: Check for !MEMTX_OK instead of MEMTX_ERROR
|
||||
RH-Commit: [2/3] daabe41eefd5c519def592e374fa368e32a680d3 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 1999236
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2075686
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1999236
|
||||
Upstream: Merged
|
||||
CVE: CVE-2021-3750
|
||||
|
||||
|
@ -0,0 +1,73 @@
|
||||
From 688c9f386635544dbc468171a32fbc84f0c9224e Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Fri, 18 Mar 2022 16:23:47 +0100
|
||||
Subject: [PATCH 12/24] target/i386: kvm: do not access uninitialized variable
|
||||
on older kernels
|
||||
|
||||
RH-Author: Paul Lai <plai@redhat.com>
|
||||
RH-MergeRequest: 176: Enable KVM AMX support
|
||||
RH-Commit: [12/13] 776fac1e7d1aa16ec5f4d99ddad3039eab8212af
|
||||
RH-Bugzilla: 1916415
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
KVM support for AMX includes a new system attribute, KVM_X86_XCOMP_GUEST_SUPP.
|
||||
Commit 19db68ca68 ("x86: Grant AMX permission for guest", 2022-03-15) however
|
||||
did not fully consider the behavior on older kernels. First, it warns
|
||||
too aggressively. Second, it invokes the KVM_GET_DEVICE_ATTR ioctl
|
||||
unconditionally and then uses the "bitmask" variable, which remains
|
||||
uninitialized if the ioctl fails. Third, kvm_ioctl returns -errno rather
|
||||
than -1 on errors.
|
||||
|
||||
While at it, explain why the ioctl is needed and KVM_GET_SUPPORTED_CPUID
|
||||
is not enough.
|
||||
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit 3ec5ad40081b14af28496198b4d08dbe13386790)
|
||||
Signed-off-by: Paul Lai <plai@redhat.com>
|
||||
---
|
||||
target/i386/kvm/kvm.c | 17 +++++++++++++----
|
||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
|
||||
index b1128b0e07..bd439e56ad 100644
|
||||
--- a/target/i386/kvm/kvm.c
|
||||
+++ b/target/i386/kvm/kvm.c
|
||||
@@ -409,6 +409,12 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
|
||||
}
|
||||
} else if (function == 0xd && index == 0 &&
|
||||
(reg == R_EAX || reg == R_EDX)) {
|
||||
+ /*
|
||||
+ * The value returned by KVM_GET_SUPPORTED_CPUID does not include
|
||||
+ * features that still have to be enabled with the arch_prctl
|
||||
+ * system call. QEMU needs the full value, which is retrieved
|
||||
+ * with KVM_GET_DEVICE_ATTR.
|
||||
+ */
|
||||
struct kvm_device_attr attr = {
|
||||
.group = 0,
|
||||
.attr = KVM_X86_XCOMP_GUEST_SUPP,
|
||||
@@ -417,13 +423,16 @@ uint32_t kvm_arch_get_supported_cpuid(KVMState *s, uint32_t function,
|
||||
|
||||
bool sys_attr = kvm_check_extension(s, KVM_CAP_SYS_ATTRIBUTES);
|
||||
if (!sys_attr) {
|
||||
- warn_report("cannot get sys attribute capabilities %d", sys_attr);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
int rc = kvm_ioctl(s, KVM_GET_DEVICE_ATTR, &attr);
|
||||
- if (rc == -1 && (errno == ENXIO || errno == EINVAL)) {
|
||||
- warn_report("KVM_GET_DEVICE_ATTR(0, KVM_X86_XCOMP_GUEST_SUPP) "
|
||||
- "error: %d", rc);
|
||||
+ if (rc < 0) {
|
||||
+ if (rc != -ENXIO) {
|
||||
+ warn_report("KVM_GET_DEVICE_ATTR(0, KVM_X86_XCOMP_GUEST_SUPP) "
|
||||
+ "error: %d", rc);
|
||||
+ }
|
||||
+ return ret;
|
||||
}
|
||||
ret = (reg == R_EAX) ? bitmask : bitmask >> 32;
|
||||
} else if (function == 0x80000001 && reg == R_ECX) {
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,12 +1,12 @@
|
||||
From 83642c73e127b895f91dcd409c4468c953488117 Mon Sep 17 00:00:00 2001
|
||||
From 416de21d11540a927cceb533bf54ce28ffa15ad6 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Thu, 24 Mar 2022 09:21:41 +0100
|
||||
Subject: [PATCH] target/i386: properly reset TSC on reset
|
||||
Subject: [PATCH 2/3] target/i386: properly reset TSC on reset
|
||||
|
||||
RH-Author: Paolo Bonzini <pbonzini@redhat.com>
|
||||
RH-MergeRequest: 137: target/i386: properly reset TSC on reset
|
||||
RH-Commit: [1/1] 5032ac138bf965c0536c2c9feb3dd4d4123c9f9d
|
||||
RH-Bugzilla: 1975840
|
||||
RH-MergeRequest: 172: target/i386: properly reset TSC on reset
|
||||
RH-Commit: [1/1] 7008bc5d02ad0a2d8b78259459d22d8f0986c989
|
||||
RH-Bugzilla: 2070417
|
||||
RH-Acked-by: Marcelo Tosatti <None>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
@ -79,5 +79,5 @@ index 04f2b790c9..c6a6c871f1 100644
|
||||
void *xsave_buf;
|
||||
uint32_t xsave_buf_len;
|
||||
--
|
||||
2.27.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,21 +1,30 @@
|
||||
From 577d4682757e8a26f2eedfc866be09dbd7d37e5b Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon, 27 Dec 2021 14:31:20 -0500
|
||||
Subject: [PATCH 06/12] tests: acpi: SLIC: update expected blobs
|
||||
From 0f5984bd89d481bf2494d4b3c36ef80350f44811 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 12/18] tests: acpi: SLIC: update expected blobs
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [4/10] 4bef84bbff835d39d3a07f102c650d645f18f8c8
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [4/10] ca28e5c57f9eb432e5ad6b1cb7ef646a86890dd5 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit c8adb4d222c42951a9d0367e5f5d4e1f5e2c9ad7
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon Dec 27 14:31:20 2021 -0500
|
||||
|
||||
tests: acpi: SLIC: update expected blobs
|
||||
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20211227193120.1084176-5-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit c8adb4d222c42951a9d0367e5f5d4e1f5e2c9ad7)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/data/acpi/q35/FACP.slic | Bin 244 -> 244 bytes
|
||||
tests/data/acpi/q35/SLIC.slic | Bin 0 -> 36 bytes
|
||||
|
@ -1,15 +1,22 @@
|
||||
From b3d5600c6bb4b2092f9f61eab0b7fc61226b888e Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon, 27 Dec 2021 14:31:19 -0500
|
||||
Subject: [PATCH 05/12] tests: acpi: add SLIC table test
|
||||
From 341715473c2a71f11a3888420a0caecf27ed4eb5 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 11/18] tests: acpi: add SLIC table test
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [3/10] c27a8c69ef8054631a5551521b2debb67eed3c6b
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [3/10] baac9b82c16a50eb4640fd7146775c9d507c7b21 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit 11edfabee443b149468a82b5efc88c96d1d259ec
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon Dec 27 14:31:19 2021 -0500
|
||||
|
||||
tests: acpi: add SLIC table test
|
||||
|
||||
When user uses '-acpitable' to add SLIC table, some ACPI
|
||||
tables (FADT) will change its 'Oem ID'/'Oem Table ID' fields to
|
||||
@ -24,8 +31,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20211227193120.1084176-4-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit 11edfabee443b149468a82b5efc88c96d1d259ec)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/qtest/bios-tables-test.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
@ -1,16 +1,23 @@
|
||||
From 42554e549e4843f4611be3b48101985adb5f52de Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed, 12 Jan 2022 08:03:29 -0500
|
||||
Subject: [PATCH 07/12] tests: acpi: manually pad OEM_ID/OEM_TABLE_ID for
|
||||
From d94b3278c84cf7451489631d804a6b5cbd28a59d Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 13/18] tests: acpi: manually pad OEM_ID/OEM_TABLE_ID for
|
||||
test_oem_fields() test
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [5/10] eabc0211172d707e50564cc43060c3c383cdcac2
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [5/10] 4ec8c738acec178c2f005f189b0c2a77a7af4088 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit a849522f726767022203ef2b6c395ea19facb866
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed Jan 12 08:03:29 2022 -0500
|
||||
|
||||
tests: acpi: manually pad OEM_ID/OEM_TABLE_ID for test_oem_fields() test
|
||||
|
||||
The next commit will revert OEM fields padding with whitespace to
|
||||
padding with '\0' as it was before [1]. As result test_oem_fields() will
|
||||
@ -24,8 +31,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20220112130332.1648664-2-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit a849522f726767022203ef2b6c395ea19facb866)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/qtest/bios-tables-test.c | 15 ++++++---------
|
||||
1 file changed, 6 insertions(+), 9 deletions(-)
|
||||
|
@ -1,16 +1,23 @@
|
||||
From 466d5a7fca84f2932a0b3262f9c62b42d6fb300e Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Fri, 14 Jan 2022 09:26:41 -0500
|
||||
Subject: [PATCH 11/12] tests: acpi: test short OEM_ID/OEM_TABLE_ID values in
|
||||
From 485bf2eb8edabd4553d995d5e32224df1e510aa2 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 17/18] tests: acpi: test short OEM_ID/OEM_TABLE_ID values in
|
||||
test_oem_fields()
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [9/10] 9daf8f8c63f513372f81268016885b71f5f89cf3
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [9/10] 31339223fb6c6cc32185b9fdaac76f2709b17ad6 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit 408ca92634770de5eac7965ed97c6260e770f2e7
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Fri Jan 14 09:26:41 2022 -0500
|
||||
|
||||
tests: acpi: test short OEM_ID/OEM_TABLE_ID values in test_oem_fields()
|
||||
|
||||
Previous patch [1] added explicit whitespace padding to OEM_ID/OEM_TABLE_ID
|
||||
values used in test_oem_fields() testcase to avoid false positive and
|
||||
@ -28,8 +35,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20220114142641.1727679-1-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit 408ca92634770de5eac7965ed97c6260e770f2e7)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/qtest/bios-tables-test.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
@ -1,15 +1,22 @@
|
||||
From 6072c9986ebe95feceadcf0d75d8a6b1ed919414 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed, 12 Jan 2022 08:03:32 -0500
|
||||
Subject: [PATCH 10/12] tests: acpi: update expected blobs
|
||||
From 4785d2a77fbea681975e5c48ae6a1be49058e089 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 16/18] tests: acpi: update expected blobs
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [8/10] a4ba098c69a8a2911143ba6e74ed3a61640e02f8
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [8/10] e069c5de88f34393d65d32b60380865832820302 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit 5adc3aba875416b0e077d8a29ddd0357883746f4
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed Jan 12 08:03:32 2022 -0500
|
||||
|
||||
tests: acpi: update expected blobs
|
||||
|
||||
Expected changes caused by previous commit:
|
||||
|
||||
@ -25,8 +32,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20220112130332.1648664-5-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit 5adc3aba875416b0e077d8a29ddd0357883746f4)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/data/acpi/pc/SSDT.dimmpxm | Bin 734 -> 734 bytes
|
||||
tests/data/acpi/q35/FACP.slic | Bin 244 -> 244 bytes
|
||||
@ -35,7 +43,6 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
tests/qtest/bios-tables-test-allowed-diff.h | 4 ----
|
||||
5 files changed, 4 deletions(-)
|
||||
|
||||
|
||||
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
|
||||
index 7faa8f53be..dfb8523c8b 100644
|
||||
--- a/tests/qtest/bios-tables-test-allowed-diff.h
|
||||
|
@ -1,22 +1,31 @@
|
||||
From 8ffeee963539987cada8999acb9438fab6969851 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon, 27 Dec 2021 14:31:18 -0500
|
||||
Subject: [PATCH 04/12] tests: acpi: whitelist expected blobs before changing
|
||||
From 4e6482073df85db5982aa03ab0355e632b7157fc Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 10/18] tests: acpi: whitelist expected blobs before changing
|
||||
them
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [2/10] f25d60661656d4ebc14b9baebfb15bb140651011
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [2/10] c664ecad30ca9c13025a63bb31ae7b80fd63e4df (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit e71f6ab9d93a7d01e833647e7010c1079c4cef30
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Mon Dec 27 14:31:18 2021 -0500
|
||||
|
||||
tests: acpi: whitelist expected blobs before changing them
|
||||
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20211227193120.1084176-3-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit e71f6ab9d93a7d01e833647e7010c1079c4cef30)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/data/acpi/q35/FACP.slic | Bin 0 -> 244 bytes
|
||||
tests/data/acpi/q35/SLIC.slic | 0
|
||||
@ -25,8 +34,6 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
create mode 100644 tests/data/acpi/q35/FACP.slic
|
||||
create mode 100644 tests/data/acpi/q35/SLIC.slic
|
||||
|
||||
|
||||
|
||||
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
|
||||
index dfb8523c8b..49dbf8fa3e 100644
|
||||
--- a/tests/qtest/bios-tables-test-allowed-diff.h
|
||||
|
@ -1,16 +1,23 @@
|
||||
From 12fc404b1ecf76e69c309b65ead86298a2606051 Mon Sep 17 00:00:00 2001
|
||||
From: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed, 12 Jan 2022 08:03:30 -0500
|
||||
Subject: [PATCH 08/12] tests: acpi: whitelist nvdimm's SSDT and FACP.slic
|
||||
From a132a22e316121cf00ff733afb1ad1dc313e14b3 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 30 Mar 2022 14:52:34 -0400
|
||||
Subject: [PATCH 14/18] tests: acpi: whitelist nvdimm's SSDT and FACP.slic
|
||||
expected blobs
|
||||
|
||||
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-MergeRequest: 129: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [6/10] 2e82d4c0184d499f449dc24a8bd6991273ad2db9
|
||||
RH-Bugzilla: 2059311
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
RH-Acked-by: MST <None>
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 141: acpi: fix QEMU crash when started with SLIC table
|
||||
RH-Commit: [6/10] 3f3a929cde82f228da1e4bc66e4c869467c0289c (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2062611
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2062611
|
||||
Upstream: Merged
|
||||
|
||||
commit d1e4a4654154925eddf0fc449fa9c92b806b9c8c
|
||||
Author: Igor Mammedov <imammedo@redhat.com>
|
||||
Date: Wed Jan 12 08:03:30 2022 -0500
|
||||
|
||||
tests: acpi: whitelist nvdimm's SSDT and FACP.slic expected blobs
|
||||
|
||||
The next commit will revert OEM fields whitespace padding to
|
||||
padding with '\0' as it was before [1]. That will change OEM
|
||||
@ -28,8 +35,9 @@ Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Message-Id: <20220112130332.1648664-3-imammedo@redhat.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
||||
(cherry picked from commit d1e4a4654154925eddf0fc449fa9c92b806b9c8c)
|
||||
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/qtest/bios-tables-test-allowed-diff.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
@ -0,0 +1,120 @@
|
||||
From 24af433728429578e586d179e27451b7d4a46cba Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com>
|
||||
Date: Thu, 18 Nov 2021 12:57:33 +0100
|
||||
Subject: [PATCH 3/3] tests/qtest/fdc-test: Add a regression test for
|
||||
CVE-2021-3507
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 194: hw/block/fdc: Prevent end-of-track overrun (CVE-2021-3507)
|
||||
RH-Commit: [2/2] 31ec71276b521b06d4142fffa88a3fa4d1494d92 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 1951521
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
||||
RH-Acked-by: Hanna Reitz <hreitz@redhat.com>
|
||||
|
||||
Add the reproducer from https://gitlab.com/qemu-project/qemu/-/issues/339
|
||||
|
||||
Without the previous commit, when running 'make check-qtest-i386'
|
||||
with QEMU configured with '--enable-sanitizers' we get:
|
||||
|
||||
==4028352==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x619000062a00 at pc 0x5626d03c491a bp 0x7ffdb4199410 sp 0x7ffdb4198bc0
|
||||
READ of size 786432 at 0x619000062a00 thread T0
|
||||
#0 0x5626d03c4919 in __asan_memcpy (qemu-system-i386+0x1e65919)
|
||||
#1 0x5626d1c023cc in flatview_write_continue softmmu/physmem.c:2787:13
|
||||
#2 0x5626d1bf0c0f in flatview_write softmmu/physmem.c:2822:14
|
||||
#3 0x5626d1bf0798 in address_space_write softmmu/physmem.c:2914:18
|
||||
#4 0x5626d1bf0f37 in address_space_rw softmmu/physmem.c:2924:16
|
||||
#5 0x5626d1bf14c8 in cpu_physical_memory_rw softmmu/physmem.c:2933:5
|
||||
#6 0x5626d0bd5649 in cpu_physical_memory_write include/exec/cpu-common.h:82:5
|
||||
#7 0x5626d0bd0a07 in i8257_dma_write_memory hw/dma/i8257.c:452:9
|
||||
#8 0x5626d09f825d in fdctrl_transfer_handler hw/block/fdc.c:1616:13
|
||||
#9 0x5626d0a048b4 in fdctrl_start_transfer hw/block/fdc.c:1539:13
|
||||
#10 0x5626d09f4c3e in fdctrl_write_data hw/block/fdc.c:2266:13
|
||||
#11 0x5626d09f22f7 in fdctrl_write hw/block/fdc.c:829:9
|
||||
#12 0x5626d1c20bc5 in portio_write softmmu/ioport.c:207:17
|
||||
|
||||
0x619000062a00 is located 0 bytes to the right of 512-byte region [0x619000062800,0x619000062a00)
|
||||
allocated by thread T0 here:
|
||||
#0 0x5626d03c66ec in posix_memalign (qemu-system-i386+0x1e676ec)
|
||||
#1 0x5626d2b988d4 in qemu_try_memalign util/oslib-posix.c:210:11
|
||||
#2 0x5626d2b98b0c in qemu_memalign util/oslib-posix.c:226:27
|
||||
#3 0x5626d09fbaf0 in fdctrl_realize_common hw/block/fdc.c:2341:20
|
||||
#4 0x5626d0a150ed in isabus_fdc_realize hw/block/fdc-isa.c:113:5
|
||||
#5 0x5626d2367935 in device_set_realized hw/core/qdev.c:531:13
|
||||
|
||||
SUMMARY: AddressSanitizer: heap-buffer-overflow (qemu-system-i386+0x1e65919) in __asan_memcpy
|
||||
Shadow bytes around the buggy address:
|
||||
0x0c32800044f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
||||
0x0c3280004500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0x0c3280004510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0x0c3280004520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
0x0c3280004530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
=>0x0c3280004540:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
||||
0x0c3280004550: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
||||
0x0c3280004560: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
||||
0x0c3280004570: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
||||
0x0c3280004580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
|
||||
0x0c3280004590: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
|
||||
Shadow byte legend (one shadow byte represents 8 application bytes):
|
||||
Addressable: 00
|
||||
Heap left redzone: fa
|
||||
Freed heap region: fd
|
||||
==4028352==ABORTING
|
||||
|
||||
[ kwolf: Added snapshot=on to prevent write file lock failure ]
|
||||
|
||||
Reported-by: Alexander Bulekov <alxndr@bu.edu>
|
||||
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
|
||||
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||
(cherry picked from commit 46609b90d9e3a6304def11038a76b58ff43f77bc)
|
||||
Signed-off-by: Jon Maloy <jmaloy@redhat.com>
|
||||
---
|
||||
tests/qtest/fdc-test.c | 21 +++++++++++++++++++++
|
||||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/tests/qtest/fdc-test.c b/tests/qtest/fdc-test.c
|
||||
index 8f6eee84a4..6f5850354f 100644
|
||||
--- a/tests/qtest/fdc-test.c
|
||||
+++ b/tests/qtest/fdc-test.c
|
||||
@@ -583,6 +583,26 @@ static void test_cve_2021_20196(void)
|
||||
qtest_quit(s);
|
||||
}
|
||||
|
||||
+static void test_cve_2021_3507(void)
|
||||
+{
|
||||
+ QTestState *s;
|
||||
+
|
||||
+ s = qtest_initf("-nographic -m 32M -nodefaults "
|
||||
+ "-drive file=%s,format=raw,if=floppy,snapshot=on",
|
||||
+ test_image);
|
||||
+ qtest_outl(s, 0x9, 0x0a0206);
|
||||
+ qtest_outw(s, 0x3f4, 0x1600);
|
||||
+ qtest_outw(s, 0x3f4, 0x0000);
|
||||
+ qtest_outw(s, 0x3f4, 0x0000);
|
||||
+ qtest_outw(s, 0x3f4, 0x0000);
|
||||
+ qtest_outw(s, 0x3f4, 0x0200);
|
||||
+ qtest_outw(s, 0x3f4, 0x0200);
|
||||
+ qtest_outw(s, 0x3f4, 0x0000);
|
||||
+ qtest_outw(s, 0x3f4, 0x0000);
|
||||
+ qtest_outw(s, 0x3f4, 0x0000);
|
||||
+ qtest_quit(s);
|
||||
+}
|
||||
+
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int fd;
|
||||
@@ -614,6 +634,7 @@ int main(int argc, char **argv)
|
||||
qtest_add_func("/fdc/read_no_dma_19", test_read_no_dma_19);
|
||||
qtest_add_func("/fdc/fuzz-registers", fuzz_registers);
|
||||
qtest_add_func("/fdc/fuzz/cve_2021_20196", test_cve_2021_20196);
|
||||
+ qtest_add_func("/fdc/fuzz/cve_2021_3507", test_cve_2021_3507);
|
||||
|
||||
ret = g_test_run();
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,21 +1,21 @@
|
||||
From 0a493615833edbe6448bc639200b4a5fa7d492e3 Mon Sep 17 00:00:00 2001
|
||||
From 87a318f0b8758f940a316831a77b6ebebca42b19 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@redhat.com>
|
||||
Date: Wed, 4 May 2022 10:35:17 -0400
|
||||
Subject: [PATCH 2/2] ui/cursor: fix integer overflow in cursor_alloc
|
||||
Subject: [PATCH 3/3] ui/cursor: fix integer overflow in cursor_alloc
|
||||
(CVE-2021-4206)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 190: ui/cursor: fix integer overflow in cursor_alloc (CVE-2021-4206)
|
||||
RH-Commit: [1/1] 80588f646942c345a2491812cb41aacd4c0805ff (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2082622
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
RH-MergeRequest: 180: ui/cursor: fix integer overflow in cursor_alloc (CVE-2021-4206)
|
||||
RH-Commit: [1/1] 7ad711347bc6248dc5aefa45401ca74448dee5e5 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2040734
|
||||
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
RH-Acked-by: Mauro Matteo Cascella <None>
|
||||
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
|
||||
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=2082622
|
||||
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=2040734
|
||||
Upstream: Merged
|
||||
CVE: CVE-2021-4206
|
||||
|
||||
@ -101,5 +101,5 @@ index 1d62ddd4d0..835f0802f9 100644
|
||||
c = g_malloc0(sizeof(QEMUCursor) + datasize);
|
||||
c->width = width;
|
||||
--
|
||||
2.35.3
|
||||
2.35.1
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 2206114457f3c575b2cf148ff643f78d5e67e8d2 Mon Sep 17 00:00:00 2001
|
||||
From 9a62319b973ec33f9ccbeeae7f2f3b4b31db0c26 Mon Sep 17 00:00:00 2001
|
||||
From: Si-Wei Liu <si-wei.liu@oracle.com>
|
||||
Date: Fri, 6 May 2022 19:28:15 -0700
|
||||
Subject: [PATCH 4/7] vhost-net: fix improper cleanup in vhost_net_start
|
||||
Subject: [PATCH 17/24] vhost-net: fix improper cleanup in vhost_net_start
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Cindy Lu <lulu@redhat.com>
|
||||
RH-MergeRequest: 203: vdpa :sync the Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [4/7] b09e0785b6e1c46da3ff59a8e4f4dea7d86e4f0b
|
||||
RH-Bugzilla: 2095794
|
||||
RH-Acked-by: MST <mst@redhat.com>
|
||||
RH-Author: Jason Wang <jasowang@redhat.com>
|
||||
RH-MergeRequest: 187: Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [4/7] bebe7990a12e901fbb84e5e4b7a62744d75c9d9e
|
||||
RH-Bugzilla: 2069946
|
||||
RH-Acked-by: Eugenio Pérez <eperezma@redhat.com>
|
||||
RH-Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
RH-Acked-by: Cindy Lu <lulu@redhat.com>
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
|
||||
vhost_net_start() missed a corresponding stop_one() upon error from
|
||||
vhost_set_vring_enable(). While at it, make the error handling for
|
||||
@ -24,7 +24,7 @@ Message-Id: <1651890498-24478-5-git-send-email-si-wei.liu@oracle.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
(cherry picked from commit 6f3910b5eee00b8cc959e94659c0d524c482a418)
|
||||
Signed-off-by: Cindy Lu <lulu@redhat.com>
|
||||
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||
---
|
||||
hw/net/vhost_net.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
@ -52,5 +52,5 @@ index 30379d2ca4..d6d7c51f62 100644
|
||||
}
|
||||
e = k->set_guest_notifiers(qbus->parent, total_notifiers, false);
|
||||
--
|
||||
2.31.1
|
||||
2.35.3
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 975046c44909eef91e8b3cfafe1c0dd55151937b Mon Sep 17 00:00:00 2001
|
||||
From 01270bb66a4f7897a4fd06ba248eeeb41dc47571 Mon Sep 17 00:00:00 2001
|
||||
From: Si-Wei Liu <si-wei.liu@oracle.com>
|
||||
Date: Fri, 6 May 2022 19:28:16 -0700
|
||||
Subject: [PATCH 5/7] vhost-vdpa: backend feature should set only once
|
||||
Subject: [PATCH 18/24] vhost-vdpa: backend feature should set only once
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Cindy Lu <lulu@redhat.com>
|
||||
RH-MergeRequest: 203: vdpa :sync the Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [5/7] 8db716cb0cec794861c7a63c0b33ab7f8367232d
|
||||
RH-Bugzilla: 2095794
|
||||
RH-Acked-by: MST <mst@redhat.com>
|
||||
RH-Author: Jason Wang <jasowang@redhat.com>
|
||||
RH-MergeRequest: 187: Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [5/7] 0ab13542cf25c129dc403db95c7db12cdb012744
|
||||
RH-Bugzilla: 2069946
|
||||
RH-Acked-by: Eugenio Pérez <eperezma@redhat.com>
|
||||
RH-Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
RH-Acked-by: Cindy Lu <lulu@redhat.com>
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
|
||||
The vhost_vdpa_one_time_request() branch in
|
||||
vhost_vdpa_set_backend_cap() incorrectly sends down
|
||||
@ -35,7 +35,7 @@ Message-Id: <1651890498-24478-6-git-send-email-si-wei.liu@oracle.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
(cherry picked from commit 6aee7e4233f6467f69531fcd352adff028f3f5ea)
|
||||
Signed-off-by: Cindy Lu <lulu@redhat.com>
|
||||
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||
---
|
||||
hw/virtio/vhost-vdpa.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
@ -54,5 +54,5 @@ index 78da48a333..a9be24776a 100644
|
||||
if (r) {
|
||||
return -EFAULT;
|
||||
--
|
||||
2.31.1
|
||||
2.35.3
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 073595e503c4f13a7e598bdb83b2ea724d169cbf Mon Sep 17 00:00:00 2001
|
||||
From c8cb46fa93a3ccad6f3e183045b270f28eed7b12 Mon Sep 17 00:00:00 2001
|
||||
From: Si-Wei Liu <si-wei.liu@oracle.com>
|
||||
Date: Fri, 6 May 2022 19:28:17 -0700
|
||||
Subject: [PATCH 6/7] vhost-vdpa: change name and polarity for
|
||||
Subject: [PATCH 19/24] vhost-vdpa: change name and polarity for
|
||||
vhost_vdpa_one_time_request()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Cindy Lu <lulu@redhat.com>
|
||||
RH-MergeRequest: 203: vdpa :sync the Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [6/7] 9ab7ee150e1876a170b56db36e94a5b3bbf09535
|
||||
RH-Bugzilla: 2095794
|
||||
RH-Acked-by: MST <mst@redhat.com>
|
||||
RH-Author: Jason Wang <jasowang@redhat.com>
|
||||
RH-MergeRequest: 187: Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [6/7] 727ab0bb813f073e8cd2f7e68a9acda60c2cb33d
|
||||
RH-Bugzilla: 2069946
|
||||
RH-Acked-by: Eugenio Pérez <eperezma@redhat.com>
|
||||
RH-Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
RH-Acked-by: Cindy Lu <lulu@redhat.com>
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
|
||||
The name vhost_vdpa_one_time_request() was confusing. No
|
||||
matter whatever it returns, its typical occurrence had
|
||||
@ -27,6 +27,9 @@ This call is applicable to request which performs operation
|
||||
only once, before queues are set up, and usually at the beginning
|
||||
of the caller function. Document the requirement for it in place.
|
||||
|
||||
Conflicts: hw/virtio/vhost-vdpa.c since we don't have shadow virtqueue
|
||||
suport.
|
||||
|
||||
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
|
||||
Message-Id: <1651890498-24478-7-git-send-email-si-wei.liu@oracle.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
@ -34,7 +37,7 @@ Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
(cherry picked from commit d71b0609fc04217e28d17009f04d74b08be6f466)
|
||||
Signed-off-by: Cindy Lu <lulu@redhat.com>
|
||||
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||
---
|
||||
hw/virtio/vhost-vdpa.c | 23 +++++++++++++++--------
|
||||
1 file changed, 15 insertions(+), 8 deletions(-)
|
||||
@ -119,5 +122,5 @@ index a9be24776a..38bbcb3c18 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.31.1
|
||||
2.35.3
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 004f7409312c45f17eaaceac697637d3da257964 Mon Sep 17 00:00:00 2001
|
||||
From c10ef6f79d4a4c8ccc5901b25234501c621e4e04 Mon Sep 17 00:00:00 2001
|
||||
From: Si-Wei Liu <si-wei.liu@oracle.com>
|
||||
Date: Fri, 6 May 2022 19:28:14 -0700
|
||||
Subject: [PATCH 3/7] vhost-vdpa: fix improper cleanup in net_init_vhost_vdpa
|
||||
Subject: [PATCH 16/24] vhost-vdpa: fix improper cleanup in net_init_vhost_vdpa
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Cindy Lu <lulu@redhat.com>
|
||||
RH-MergeRequest: 203: vdpa :sync the Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [3/7] 5f5e7577818744305f811667461e530acd9977d1
|
||||
RH-Bugzilla: 2095794
|
||||
RH-Acked-by: MST <mst@redhat.com>
|
||||
RH-Author: Jason Wang <jasowang@redhat.com>
|
||||
RH-MergeRequest: 187: Multiqueue fixes for vhost-vDPA
|
||||
RH-Commit: [3/7] b3b658dcb4695defe1fdb199570fb984291e8e21
|
||||
RH-Bugzilla: 2069946
|
||||
RH-Acked-by: Eugenio Pérez <eperezma@redhat.com>
|
||||
RH-Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
RH-Acked-by: Cindy Lu <lulu@redhat.com>
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
|
||||
... such that no memory leaks on dangling net clients in case of
|
||||
error.
|
||||
@ -23,7 +23,7 @@ Message-Id: <1651890498-24478-4-git-send-email-si-wei.liu@oracle.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
(cherry picked from commit 9bd055073e375c8a0d7ebce925e05d914d69fc7f)
|
||||
Signed-off-by: Cindy Lu <lulu@redhat.com>
|
||||
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||
---
|
||||
net/vhost-vdpa.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
@ -44,5 +44,5 @@ index 25dd6dd975..814f704687 100644
|
||||
qemu_close(vdpa_device_fd);
|
||||
g_free(ncs);
|
||||
--
|
||||
2.31.1
|
||||
2.35.3
|
||||
|
||||
|
@ -1,18 +1,16 @@
|
||||
From 2abf617accf878bec7f1c0419d5b85c93b0aa426 Mon Sep 17 00:00:00 2001
|
||||
From ff4e95d8652dadfed09913c7968514a2a7f36591 Mon Sep 17 00:00:00 2001
|
||||
From: Jon Maloy <jmaloy@rehat.com>
|
||||
Date: Thu, 14 Apr 2022 10:38:26 -0400
|
||||
Subject: [PATCH 07/11] vhost-vsock: detach the virqueue element in case of
|
||||
error
|
||||
Subject: [PATCH 2/2] vhost-vsock: detach the virqueue element in case of error
|
||||
|
||||
RH-Author: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-MergeRequest: 168: vhost-vsock: detach the virqueue element in case of error
|
||||
RH-Commit: [1/1] f81a39d26a7165f8b717fdeeb9526081cb73129b (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2075639
|
||||
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
RH-Acked-by: Jason Wang <jasowang@redhat.com>
|
||||
RH-MergeRequest: 153: vhost-vsock: detach the virqueue element in case of error
|
||||
RH-Commit: [1/1] 024dbc9073fddbe89a8ae8eb201f5bc674bffb64 (jmaloy/qemu-kvm)
|
||||
RH-Bugzilla: 2063262
|
||||
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2075639
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2063262
|
||||
Upstream: Merged
|
||||
CVE: CVE-2022-26354
|
||||
|
||||
|
48
SOURCES/kvm-virtio-gpu-do-not-byteswap-padding.patch
Normal file
48
SOURCES/kvm-virtio-gpu-do-not-byteswap-padding.patch
Normal file
@ -0,0 +1,48 @@
|
||||
From e118a451dc1ed68f1371a5d8e042120542be6d31 Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Date: Thu, 11 Nov 2021 12:06:00 +0100
|
||||
Subject: [PATCH 01/24] virtio-gpu: do not byteswap padding
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Paul Lai <plai@redhat.com>
|
||||
RH-MergeRequest: 176: Enable KVM AMX support
|
||||
RH-Commit: [1/13] 12714f53820b7632e7fc0a8a3bf8eb4a64f41750
|
||||
RH-Bugzilla: 1916415
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
|
||||
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
|
||||
In Linux 5.16, the padding of struct virtio_gpu_ctrl_hdr has become a
|
||||
single-byte field followed by a uint8_t[3] array of padding bytes,
|
||||
and virtio_gpu_ctrl_hdr_bswap does not compile anymore.
|
||||
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
Message-Id: <20211111110604.207376-2-pbonzini@redhat.com>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
(cherry picked from commit a4663f1a5506626175fc64c86e52135587c36872)
|
||||
Signed-off-by: Paul Lai <plai@redhat.com>
|
||||
---
|
||||
include/hw/virtio/virtio-gpu-bswap.h | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/include/hw/virtio/virtio-gpu-bswap.h b/include/hw/virtio/virtio-gpu-bswap.h
|
||||
index e2bee8f595..5faac0d8d5 100644
|
||||
--- a/include/hw/virtio/virtio-gpu-bswap.h
|
||||
+++ b/include/hw/virtio/virtio-gpu-bswap.h
|
||||
@@ -24,7 +24,6 @@ virtio_gpu_ctrl_hdr_bswap(struct virtio_gpu_ctrl_hdr *hdr)
|
||||
le32_to_cpus(&hdr->flags);
|
||||
le64_to_cpus(&hdr->fence_id);
|
||||
le32_to_cpus(&hdr->ctx_id);
|
||||
- le32_to_cpus(&hdr->padding);
|
||||
}
|
||||
|
||||
static inline void
|
||||
--
|
||||
2.35.3
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user