* Mon Aug 15 2022 Miroslav Rezanina <mrezanin@redhat.com> - 7.0.0-11
- kvm-QIOChannelSocket-Fix-zero-copy-flush-returning-code-.patch [bz#2107466] - kvm-Add-dirty-sync-missed-zero-copy-migration-stat.patch [bz#2107466] - kvm-migration-multifd-Report-to-user-when-zerocopy-not-w.patch [bz#2107466] - kvm-migration-Avoid-false-positive-on-non-supported-scen.patch [bz#2107466] - kvm-migration-add-remaining-params-has_-true-in-migratio.patch [bz#2107466] - kvm-QIOChannelSocket-Add-support-for-MSG_ZEROCOPY-IPV6.patch [bz#2107466] - kvm-pc-bios-s390-ccw-Fix-booting-with-logical-block-size.patch [bz#2112303] - kvm-vdpa-Fix-bad-index-calculus-at-vhost_vdpa_get_vring_.patch [bz#2116876] - kvm-vdpa-Fix-index-calculus-at-vhost_vdpa_svqs_start.patch [bz#2116876] - kvm-vdpa-Fix-memory-listener-deletions-of-iova-tree.patch [bz#2116876] - kvm-vdpa-Fix-file-descriptor-leak-on-get-features-error.patch [bz#2116876] - Resolves: bz#2107466 (zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together) - Resolves: bz#2112303 (virtio-blk: Can't boot fresh installation from used 512 cluster_size image under certain conditions) - Resolves: bz#2116876 (Fixes for vDPA control virtqueue support in Qemu)
This commit is contained in:
		
							parent
							
								
									23d471091d
								
							
						
					
					
						commit
						85d5f0ed1b
					
				
							
								
								
									
										87
									
								
								kvm-Add-dirty-sync-missed-zero-copy-migration-stat.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								kvm-Add-dirty-sync-missed-zero-copy-migration-stat.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,87 @@ | ||||
| From ac346634c5731407baa9de709dbd4d5cc6f45301 Mon Sep 17 00:00:00 2001 | ||||
| From: Leonardo Bras <leobras@redhat.com> | ||||
| Date: Mon, 11 Jul 2022 18:11:12 -0300 | ||||
| Subject: [PATCH 02/11] 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: 111: zero-copy-send fixes & improvements | ||||
| RH-Commit: [2/6] 115035fd0a4e4b9439c91fb0f5d1a2f9244ba369 (LeoBras/centos-qemu-kvm) | ||||
| RH-Bugzilla: 2107466 | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| 
 | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| Acked-by: Markus Armbruster <armbru@redhat.com> | ||||
| Acked-by: Peter Xu <peterx@redhat.com> | ||||
| Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | ||||
| Message-Id: <20220711211112.18951-3-leobras@redhat.com> | ||||
| Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| (cherry picked from commit cf20c897338067ab4b70a4596fdccaf90c7e29a1) | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| ---
 | ||||
|  migration/migration.c | 2 ++ | ||||
|  monitor/hmp-cmds.c    | 5 +++++ | ||||
|  qapi/migration.json   | 7 ++++++- | ||||
|  3 files changed, 13 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/migration/migration.c b/migration/migration.c
 | ||||
| index 8fb3eae910..3a3a7a4a50 100644
 | ||||
| --- a/migration/migration.c
 | ||||
| +++ b/migration/migration.c
 | ||||
| @@ -1017,6 +1017,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; | ||||
| +    info->ram->dirty_sync_missed_zero_copy =
 | ||||
| +            ram_counters.dirty_sync_missed_zero_copy;
 | ||||
|      info->ram->postcopy_requests = ram_counters.postcopy_requests; | ||||
|      info->ram->page_size = page_size; | ||||
|      info->ram->multifd_bytes = ram_counters.multifd_bytes; | ||||
| diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
 | ||||
| index 634968498b..9cec01de38 100644
 | ||||
| --- a/monitor/hmp-cmds.c
 | ||||
| +++ b/monitor/hmp-cmds.c
 | ||||
| @@ -305,6 +305,11 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict)
 | ||||
|              monitor_printf(mon, "postcopy ram: %" PRIu64 " kbytes\n", | ||||
|                             info->ram->postcopy_bytes >> 10); | ||||
|          } | ||||
| +        if (info->ram->dirty_sync_missed_zero_copy) {
 | ||||
| +            monitor_printf(mon,
 | ||||
| +                           "Zero-copy-send fallbacks happened: %" PRIu64 " times\n",
 | ||||
| +                           info->ram->dirty_sync_missed_zero_copy);
 | ||||
| +        }
 | ||||
|      } | ||||
|   | ||||
|      if (info->has_disk) { | ||||
| diff --git a/qapi/migration.json b/qapi/migration.json
 | ||||
| index 5105790cd0..9b38b3c21c 100644
 | ||||
| --- a/qapi/migration.json
 | ||||
| +++ b/qapi/migration.json
 | ||||
| @@ -55,6 +55,10 @@
 | ||||
|  # @postcopy-bytes: The number of bytes sent during the post-copy phase | ||||
|  #                  (since 7.0). | ||||
|  # | ||||
| +# @dirty-sync-missed-zero-copy: Number of times dirty RAM synchronization could
 | ||||
| +#                               not avoid copying dirty pages. This is between
 | ||||
| +#                               0 and @dirty-sync-count * @multifd-channels.
 | ||||
| +#                               (since 7.1)
 | ||||
|  # Since: 0.14 | ||||
|  ## | ||||
|  { 'struct': 'MigrationStats', | ||||
| @@ -65,7 +69,8 @@
 | ||||
|             'postcopy-requests' : 'int', 'page-size' : 'int', | ||||
|             'multifd-bytes' : 'uint64', 'pages-per-second' : 'uint64', | ||||
|             'precopy-bytes' : 'uint64', 'downtime-bytes' : 'uint64', | ||||
| -           'postcopy-bytes' : 'uint64' } }
 | ||||
| +           'postcopy-bytes' : 'uint64',
 | ||||
| +           'dirty-sync-missed-zero-copy' : 'uint64' } }
 | ||||
|   | ||||
|  ## | ||||
|  # @XBZRLECacheStats: | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
							
								
								
									
										56
									
								
								kvm-QIOChannelSocket-Add-support-for-MSG_ZEROCOPY-IPV6.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								kvm-QIOChannelSocket-Add-support-for-MSG_ZEROCOPY-IPV6.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | ||||
| From cb6dc39a5e5d2d981b4b1e983042b3fbb529d5d1 Mon Sep 17 00:00:00 2001 | ||||
| From: Leonardo Bras <leobras@redhat.com> | ||||
| Date: Thu, 4 Aug 2022 04:10:43 -0300 | ||||
| Subject: [PATCH 06/11] 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: 111: zero-copy-send fixes & improvements | ||||
| RH-Commit: [6/6] 2eb1aba8ebf267a6f67cfba2e489dc88619c7fd4 (LeoBras/centos-qemu-kvm) | ||||
| RH-Bugzilla: 2107466 | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| 
 | ||||
| For using MSG_ZEROCOPY, there are two steps: | ||||
| 1 - io_writev() the packet, which enqueues the packet for sending, and | ||||
| 2 - io_flush(), which gets confirmation that all packets got correctly sent | ||||
| 
 | ||||
| Currently, if MSG_ZEROCOPY is used to send packets over IPV6, no error will | ||||
| be reported in (1), but it will fail in the first time (2) happens. | ||||
| 
 | ||||
| This happens because (2) currently checks for cmsg_level & cmsg_type | ||||
| associated with IPV4 only, before reporting any error. | ||||
| 
 | ||||
| Add checks for cmsg_level & cmsg_type associated with IPV6, and thus enable | ||||
| support for MSG_ZEROCOPY + IPV6 | ||||
| 
 | ||||
| Fixes: 2bc58ffc29 ("QIOChannelSocket: Implement io_writev zero copy flag & io_flush for CONFIG_LINUX") | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> | ||||
| (cherry picked from commit 5258a7e2c0677d16e9e1d06845f60171adf0b290) | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| ---
 | ||||
|  io/channel-socket.c | 4 ++-- | ||||
|  1 file changed, 2 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/io/channel-socket.c b/io/channel-socket.c
 | ||||
| index eb7baa2184..efd5f60808 100644
 | ||||
| --- a/io/channel-socket.c
 | ||||
| +++ b/io/channel-socket.c
 | ||||
| @@ -747,8 +747,8 @@ static int qio_channel_socket_flush(QIOChannel *ioc,
 | ||||
|          } | ||||
|   | ||||
|          cm = CMSG_FIRSTHDR(&msg); | ||||
| -        if (cm->cmsg_level != SOL_IP &&
 | ||||
| -            cm->cmsg_type != IP_RECVERR) {
 | ||||
| +        if (cm->cmsg_level != SOL_IP   && cm->cmsg_type != IP_RECVERR &&
 | ||||
| +            cm->cmsg_level != SOL_IPV6 && cm->cmsg_type != IPV6_RECVERR) {
 | ||||
|              error_setg_errno(errp, EPROTOTYPE, | ||||
|                               "Wrong cmsg in errqueue"); | ||||
|              return -1; | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -0,0 +1,65 @@ | ||||
| From 678981c6bb7c964e1591f6f8aba49e9602f64852 Mon Sep 17 00:00:00 2001 | ||||
| From: Leonardo Bras <leobras@redhat.com> | ||||
| Date: Mon, 11 Jul 2022 18:11:11 -0300 | ||||
| Subject: [PATCH 01/11] 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: 111: zero-copy-send fixes & improvements | ||||
| RH-Commit: [1/6] cebc887cb61de1572d8ae3232cde45e80c339404 (LeoBras/centos-qemu-kvm) | ||||
| RH-Bugzilla: 2107466 | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| RH-Acked-by: Dr. David Alan Gilbert <dgilbert@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 | ||||
| MSG_ZEROCOPY on a lot of sendmsg(). | ||||
| 
 | ||||
| Fix this by returning early from flush if no sendmsg(...,MSG_ZEROCOPY) | ||||
| was attempted. | ||||
| 
 | ||||
| Fixes: 2bc58ffc2926 ("QIOChannelSocket: Implement io_writev zero copy flag & io_flush for CONFIG_LINUX") | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | ||||
| Acked-by: Daniel P. Berrangé <berrange@redhat.com> | ||||
| Reviewed-by: Juan Quintela <quintela@redhat.com> | ||||
| Reviewed-by: Peter Xu <peterx@redhat.com> | ||||
| Message-Id: <20220711211112.18951-2-leobras@redhat.com> | ||||
| Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| (cherry picked from commit 927f93e099c4f9184e60a1bc61624ac2d04d0223) | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| ---
 | ||||
|  io/channel-socket.c | 8 +++++++- | ||||
|  1 file changed, 7 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/io/channel-socket.c b/io/channel-socket.c
 | ||||
| index 8ae8b212cf..eb7baa2184 100644
 | ||||
| --- a/io/channel-socket.c
 | ||||
| +++ b/io/channel-socket.c
 | ||||
| @@ -717,12 +717,18 @@ static int qio_channel_socket_flush(QIOChannel *ioc,
 | ||||
|      struct cmsghdr *cm; | ||||
|      char control[CMSG_SPACE(sizeof(*serr))]; | ||||
|      int received; | ||||
| -    int ret = 1;
 | ||||
| +    int ret;
 | ||||
| +
 | ||||
| +    if (sioc->zero_copy_queued == sioc->zero_copy_sent) {
 | ||||
| +        return 0;
 | ||||
| +    }
 | ||||
|   | ||||
|      msg.msg_control = control; | ||||
|      msg.msg_controllen = sizeof(control); | ||||
|      memset(control, 0, sizeof(control)); | ||||
|   | ||||
| +    ret = 1;
 | ||||
| +
 | ||||
|      while (sioc->zero_copy_sent < sioc->zero_copy_queued) { | ||||
|          received = recvmsg(sioc->fd, &msg, MSG_ERRQUEUE); | ||||
|          if (received < 0) { | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -0,0 +1,93 @@ | ||||
| From 0753565af588dfa78b3529e359b1590e15fcbdb3 Mon Sep 17 00:00:00 2001 | ||||
| From: Leonardo Bras <leobras@redhat.com> | ||||
| Date: Tue, 19 Jul 2022 09:23:45 -0300 | ||||
| Subject: [PATCH 04/11] 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: 111: zero-copy-send fixes & improvements | ||||
| RH-Commit: [4/6] f5c7ed6710d92668acb81d0118a71fab0b4e3d43 (LeoBras/centos-qemu-kvm) | ||||
| RH-Bugzilla: 2107466 | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| RH-Acked-by: Dr. David Alan Gilbert <dgilbert@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 | ||||
| output errors during parameter / capability setting. | ||||
| 
 | ||||
| But currently there are some ways of setting this not-supported scenarios | ||||
| without printing the error message: | ||||
| 
 | ||||
| !) For 'compression' capability, it works by enabling it together with
 | ||||
| zero-copy-send. This happens because the validity test for zero-copy uses | ||||
| the helper unction migrate_use_compression(), which check for compression | ||||
| presence in s->enabled_capabilities[MIGRATION_CAPABILITY_COMPRESS]. | ||||
| 
 | ||||
| The point here is: the validity test happens before the capability gets | ||||
| enabled. If all of them get enabled together, this test will not return | ||||
| error. | ||||
| 
 | ||||
| In order to fix that, replace migrate_use_compression() by directly testing | ||||
| the cap_list parameter migrate_caps_check(). | ||||
| 
 | ||||
| 2) For features enabled by parameters such as TLS & 'multifd_compression', | ||||
| there was also a possibility of setting non-supported scenarios: setting | ||||
| zero-copy-send first, then setting the unsupported parameter. | ||||
| 
 | ||||
| In order to fix that, also add a check for parameters conflicting with | ||||
| zero-copy-send on migrate_params_check(). | ||||
| 
 | ||||
| 3) XBZRLE is also a compression capability, so it makes sense to also add | ||||
| it to the list of capabilities which are not supported with zero-copy-send. | ||||
| 
 | ||||
| Fixes: 1abaec9a1b2c ("migration: Change zero_copy_send from migration parameter to migration capability") | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| Message-Id: <20220719122345.253713-1-leobras@redhat.com> | ||||
| Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| (cherry picked from commit 90eb69e4f1a16b388d0483543bf6bfc69a9966e4) | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| ---
 | ||||
|  migration/migration.c | 15 ++++++++++++++- | ||||
|  1 file changed, 14 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/migration/migration.c b/migration/migration.c
 | ||||
| index 3a3a7a4a50..343629d59c 100644
 | ||||
| --- a/migration/migration.c
 | ||||
| +++ b/migration/migration.c
 | ||||
| @@ -1265,7 +1265,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] || | ||||
| -         migrate_use_compression() ||
 | ||||
| +         cap_list[MIGRATION_CAPABILITY_COMPRESS] ||
 | ||||
| +         cap_list[MIGRATION_CAPABILITY_XBZRLE] ||
 | ||||
| +         migrate_multifd_compression() ||
 | ||||
|           migrate_use_tls())) { | ||||
|          error_setg(errp, | ||||
|                     "Zero copy only available for non-compressed non-TLS multifd migration"); | ||||
| @@ -1502,6 +1504,17 @@ static bool migrate_params_check(MigrationParameters *params, Error **errp)
 | ||||
|          error_prepend(errp, "Invalid mapping given for block-bitmap-mapping: "); | ||||
|          return false; | ||||
|      } | ||||
| +
 | ||||
| +#ifdef CONFIG_LINUX
 | ||||
| +    if (migrate_use_zero_copy_send() &&
 | ||||
| +        ((params->has_multifd_compression && params->multifd_compression) ||
 | ||||
| +         (params->has_tls_creds && params->tls_creds && *params->tls_creds))) {
 | ||||
| +        error_setg(errp,
 | ||||
| +                   "Zero copy only available for non-compressed non-TLS multifd migration");
 | ||||
| +        return false;
 | ||||
| +    }
 | ||||
| +#endif
 | ||||
| +
 | ||||
|      return true; | ||||
|  } | ||||
|   | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -0,0 +1,62 @@ | ||||
| From 9698c0e8dd9b4f5dbc237a3f98ac46297dac85fb Mon Sep 17 00:00:00 2001 | ||||
| From: Leonardo Bras <leobras@redhat.com> | ||||
| Date: Mon, 25 Jul 2022 22:02:35 -0300 | ||||
| Subject: [PATCH 05/11] 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: 111: zero-copy-send fixes & improvements | ||||
| RH-Commit: [5/6] 50bbad254e2356b3ae16f6e00a3db8fd0b22dde9 (LeoBras/centos-qemu-kvm) | ||||
| RH-Bugzilla: 2107466 | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| 
 | ||||
| Some of params->has_* = true are missing in migration_instance_init, this | ||||
| causes migrate_params_check() to skip some tests, allowing some | ||||
| unsupported scenarios. | ||||
| 
 | ||||
| Fix this by adding all missing params->has_* = true in | ||||
| migration_instance_init(). | ||||
| 
 | ||||
| Fixes: 69ef1f36b0 ("migration: define 'tls-creds' and 'tls-hostname' migration parameters") | ||||
| Fixes: 1d58872a91 ("migration: do not wait for free thread") | ||||
| Fixes: d2f1d29b95 ("migration: add support for a "tls-authz" migration parameter") | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| Message-Id: <20220726010235.342927-1-leobras@redhat.com> | ||||
| Reviewed-by: Peter Xu <peterx@redhat.com> | ||||
| Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| (cherry picked from commit df67aa3e61e2c83459da7d815962d9706f1528fc) | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| ---
 | ||||
|  migration/migration.c | 4 ++++ | ||||
|  1 file changed, 4 insertions(+) | ||||
| 
 | ||||
| diff --git a/migration/migration.c b/migration/migration.c
 | ||||
| index 343629d59c..5e78028df4 100644
 | ||||
| --- a/migration/migration.c
 | ||||
| +++ b/migration/migration.c
 | ||||
| @@ -4332,6 +4332,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; | ||||
| +    params->has_compress_wait_thread = true;
 | ||||
|      params->has_decompress_threads = true; | ||||
|      params->has_throttle_trigger_threshold = true; | ||||
|      params->has_cpu_throttle_initial = true; | ||||
| @@ -4352,6 +4353,9 @@ static void migration_instance_init(Object *obj)
 | ||||
|      params->has_announce_max = true; | ||||
|      params->has_announce_rounds = true; | ||||
|      params->has_announce_step = true; | ||||
| +    params->has_tls_creds = true;
 | ||||
| +    params->has_tls_hostname = true;
 | ||||
| +    params->has_tls_authz = true;
 | ||||
|   | ||||
|      qemu_sem_init(&ms->postcopy_pause_sem, 0); | ||||
|      qemu_sem_init(&ms->postcopy_pause_rp_sem, 0); | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -0,0 +1,83 @@ | ||||
| From 78bbe28d5f5691330239041448cccfb339eed779 Mon Sep 17 00:00:00 2001 | ||||
| From: Leonardo Bras <leobras@redhat.com> | ||||
| Date: Mon, 11 Jul 2022 18:11:13 -0300 | ||||
| Subject: [PATCH 03/11] 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: 111: zero-copy-send fixes & improvements | ||||
| RH-Commit: [3/6] 4f9165325b3cb8ff16d8b3b7649ff780fae0e2ad (LeoBras/centos-qemu-kvm) | ||||
| RH-Bugzilla: 2107466 | ||||
| RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com> | ||||
| RH-Acked-by: Thomas Huth <thuth@redhat.com> | ||||
| RH-Acked-by: Dr. David Alan Gilbert <dgilbert@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 | ||||
| zero-copy, which causes it to fall back to the default copying mechanism. | ||||
| 
 | ||||
| After each full dirty-bitmap scan there should be a zero-copy flush | ||||
| happening, which checks for errors each of the previous calls to | ||||
| sendmsg(...,MSG_ZEROCOPY). If all of them failed to use zero-copy, then | ||||
| increment dirty_sync_missed_zero_copy migration stat to let the user know | ||||
| about it. | ||||
| 
 | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> | ||||
| Acked-by: Peter Xu <peterx@redhat.com> | ||||
| Message-Id: <20220711211112.18951-4-leobras@redhat.com> | ||||
| Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> | ||||
| (cherry picked from commit d59c40cc483729f2e67c80e58df769ad19976fe9) | ||||
| Signed-off-by: Leonardo Bras <leobras@redhat.com> | ||||
| ---
 | ||||
|  migration/multifd.c | 2 ++ | ||||
|  migration/ram.c     | 5 +++++ | ||||
|  migration/ram.h     | 2 ++ | ||||
|  3 files changed, 9 insertions(+) | ||||
| 
 | ||||
| diff --git a/migration/multifd.c b/migration/multifd.c
 | ||||
| index 0b5b41c53f..96e5f0a058 100644
 | ||||
| --- a/migration/multifd.c
 | ||||
| +++ b/migration/multifd.c
 | ||||
| @@ -626,6 +626,8 @@ int multifd_send_sync_main(QEMUFile *f)
 | ||||
|              if (ret < 0) { | ||||
|                  error_report_err(err); | ||||
|                  return -1; | ||||
| +            } else if (ret == 1) {
 | ||||
| +                dirty_sync_missed_zero_copy();
 | ||||
|              } | ||||
|          } | ||||
|      } | ||||
| diff --git a/migration/ram.c b/migration/ram.c
 | ||||
| index ee40e4a718..c437ff1b1f 100644
 | ||||
| --- a/migration/ram.c
 | ||||
| +++ b/migration/ram.c
 | ||||
| @@ -406,6 +406,11 @@ static void ram_transferred_add(uint64_t bytes)
 | ||||
|      ram_counters.transferred += bytes; | ||||
|  } | ||||
|   | ||||
| +void dirty_sync_missed_zero_copy(void)
 | ||||
| +{
 | ||||
| +    ram_counters.dirty_sync_missed_zero_copy++;
 | ||||
| +}
 | ||||
| +
 | ||||
|  /* used by the search for pages to send */ | ||||
|  struct PageSearchStatus { | ||||
|      /* Current block being searched */ | ||||
| diff --git a/migration/ram.h b/migration/ram.h
 | ||||
| index 2c6dc3675d..34adf5cb92 100644
 | ||||
| --- a/migration/ram.h
 | ||||
| +++ b/migration/ram.h
 | ||||
| @@ -86,4 +86,6 @@ void ram_write_tracking_prepare(void);
 | ||||
|  int ram_write_tracking_start(void); | ||||
|  void ram_write_tracking_stop(void); | ||||
|   | ||||
| +void dirty_sync_missed_zero_copy(void);
 | ||||
| +
 | ||||
|  #endif | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -0,0 +1,63 @@ | ||||
| From 03996a8a826c9186e4a16e1b4757f1ef5947a503 Mon Sep 17 00:00:00 2001 | ||||
| From: Thomas Huth <thuth@redhat.com> | ||||
| Date: Fri, 5 Aug 2022 11:42:14 +0200 | ||||
| Subject: [PATCH 07/11] pc-bios/s390-ccw: Fix booting with logical block size < | ||||
|  physical block size | ||||
| 
 | ||||
| RH-Author: Thomas Huth <thuth@redhat.com> | ||||
| RH-MergeRequest: 113: pc-bios/s390-ccw: Fix booting with logical block size < physical block size | ||||
| RH-Commit: [1/1] a45ff477bc7d7011ea6c4d42a1aade213d1e4690 (thuth/qemu-kvm-cs9) | ||||
| RH-Bugzilla: 2112303 | ||||
| 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=2112303 | ||||
| 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,50 @@ | ||||
| From e19adb058502e24580dbc4f6f944cd951ca288ed Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com> | ||||
| Date: Thu, 12 May 2022 19:57:44 +0200 | ||||
| Subject: [PATCH 08/11] vdpa: Fix bad index calculus at | ||||
|  vhost_vdpa_get_vring_base | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Eugenio Pérez <eperezma@redhat.com> | ||||
| RH-MergeRequest: 114: vdpa: Fix memory listener deletions of iova tree | ||||
| RH-Commit: [1/4] 754fb8960684fa7a91bddb18c8df58c3b947ee75 (eperezmartin/qemu-kvm) | ||||
| RH-Bugzilla: 2116876 | ||||
| RH-Acked-by: Jason Wang <jasowang@redhat.com> | ||||
| RH-Acked-by: Cindy Lu <lulu@redhat.com> | ||||
| RH-Acked-by: Laurent Vivier <lvivier@redhat.com> | ||||
| 
 | ||||
| Fixes: 6d0b222666 ("vdpa: Adapt vhost_vdpa_get_vring_base to SVQ") | ||||
| 
 | ||||
| Acked-by: Jason Wang <jasowang@redhat.com> | ||||
| Signed-off-by: Eugenio Pérez <eperezma@redhat.com> | ||||
| Message-Id: <20220512175747.142058-4-eperezma@redhat.com> | ||||
| Reviewed-by: Michael S. Tsirkin <mst@redhat.com> | ||||
| Signed-off-by: Michael S. Tsirkin <mst@redhat.com> | ||||
| (cherry picked from commit 639036477ef890958415967e753ca2cbb348c16c) | ||||
| ---
 | ||||
|  hw/virtio/vhost-vdpa.c | 4 ++-- | ||||
|  1 file changed, 2 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
 | ||||
| index e3e5bce4bb..a7dfac530f 100644
 | ||||
| --- a/hw/virtio/vhost-vdpa.c
 | ||||
| +++ b/hw/virtio/vhost-vdpa.c
 | ||||
| @@ -1193,11 +1193,11 @@ static int vhost_vdpa_get_vring_base(struct vhost_dev *dev,
 | ||||
|                                         struct vhost_vring_state *ring) | ||||
|  { | ||||
|      struct vhost_vdpa *v = dev->opaque; | ||||
| +    int vdpa_idx = ring->index - dev->vq_index;
 | ||||
|      int ret; | ||||
|   | ||||
|      if (v->shadow_vqs_enabled) { | ||||
| -        VhostShadowVirtqueue *svq = g_ptr_array_index(v->shadow_vqs,
 | ||||
| -                                                      ring->index);
 | ||||
| +        VhostShadowVirtqueue *svq = g_ptr_array_index(v->shadow_vqs, vdpa_idx);
 | ||||
|   | ||||
|          /* | ||||
|           * Setting base as last used idx, so destination will see as available | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -0,0 +1,58 @@ | ||||
| From 71857062b7aea29fc418e107244cf4083cd78cd7 Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com> | ||||
| Date: Tue, 2 Aug 2022 13:24:46 +0200 | ||||
| Subject: [PATCH 11/11] vdpa: Fix file descriptor leak on get features error | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Eugenio Pérez <eperezma@redhat.com> | ||||
| RH-MergeRequest: 114: vdpa: Fix memory listener deletions of iova tree | ||||
| RH-Commit: [4/4] bdfe6ed4539ecf68dc8bc4519755f9d5c096447d (eperezmartin/qemu-kvm) | ||||
| RH-Bugzilla: 2116876 | ||||
| RH-Acked-by: Jason Wang <jasowang@redhat.com> | ||||
| RH-Acked-by: Cindy Lu <lulu@redhat.com> | ||||
| RH-Acked-by: Laurent Vivier <lvivier@redhat.com> | ||||
| 
 | ||||
| File descriptor vdpa_device_fd is not free in the case of returning | ||||
| error from vhost_vdpa_get_features. Fixing it by making all errors go to | ||||
| the same error path. | ||||
| 
 | ||||
| Resolves: Coverity CID 1490785 | ||||
| Fixes: 8170ab3f43 ("vdpa: Extract get features part from vhost_vdpa_get_max_queue_pairs") | ||||
| 
 | ||||
| Signed-off-by: Eugenio Pérez <eperezma@redhat.com> | ||||
| Reviewed-by: Laurent Vivier <lvivier@redhat.com> | ||||
| Reviewed-by: Michael S. Tsirkin <mst@redhat.com> | ||||
| Message-Id: <20220802112447.249436-2-eperezma@redhat.com> | ||||
| Signed-off-by: Laurent Vivier <laurent@vivier.eu> | ||||
| (cherry picked from commit aed5da45daf734ddc543c0791e877dac75e16f61) | ||||
| ---
 | ||||
|  net/vhost-vdpa.c | 4 ++-- | ||||
|  1 file changed, 2 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
 | ||||
| index 50672bcd66..411e71e6c2 100644
 | ||||
| --- a/net/vhost-vdpa.c
 | ||||
| +++ b/net/vhost-vdpa.c
 | ||||
| @@ -566,7 +566,7 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name,
 | ||||
|      g_autofree NetClientState **ncs = NULL; | ||||
|      g_autoptr(VhostIOVATree) iova_tree = NULL; | ||||
|      NetClientState *nc; | ||||
| -    int queue_pairs, r, i, has_cvq = 0;
 | ||||
| +    int queue_pairs, r, i = 0, has_cvq = 0;
 | ||||
|   | ||||
|      assert(netdev->type == NET_CLIENT_DRIVER_VHOST_VDPA); | ||||
|      opts = &netdev->u.vhost_vdpa; | ||||
| @@ -582,7 +582,7 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char *name,
 | ||||
|   | ||||
|      r = vhost_vdpa_get_features(vdpa_device_fd, &features, errp); | ||||
|      if (unlikely(r < 0)) { | ||||
| -        return r;
 | ||||
| +        goto err;
 | ||||
|      } | ||||
|   | ||||
|      queue_pairs = vhost_vdpa_get_max_queue_pairs(vdpa_device_fd, features, | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
							
								
								
									
										45
									
								
								kvm-vdpa-Fix-index-calculus-at-vhost_vdpa_svqs_start.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								kvm-vdpa-Fix-index-calculus-at-vhost_vdpa_svqs_start.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | ||||
| From 6335431b70dd55c1d52152d726fa462db2e10eb8 Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com> | ||||
| Date: Thu, 12 May 2022 19:57:45 +0200 | ||||
| Subject: [PATCH 09/11] vdpa: Fix index calculus at vhost_vdpa_svqs_start | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Eugenio Pérez <eperezma@redhat.com> | ||||
| RH-MergeRequest: 114: vdpa: Fix memory listener deletions of iova tree | ||||
| RH-Commit: [2/4] 9ce732e6bba426f8e00020ee6ad77f972f3e75b5 (eperezmartin/qemu-kvm) | ||||
| RH-Bugzilla: 2116876 | ||||
| RH-Acked-by: Jason Wang <jasowang@redhat.com> | ||||
| RH-Acked-by: Cindy Lu <lulu@redhat.com> | ||||
| RH-Acked-by: Laurent Vivier <lvivier@redhat.com> | ||||
| 
 | ||||
| With the introduction of MQ the index of the vq needs to be calculated | ||||
| with the device model vq_index. | ||||
| 
 | ||||
| Signed-off-by: Eugenio Pérez <eperezma@redhat.com> | ||||
| Acked-by: Jason Wang <jasowang@redhat.com> | ||||
| Message-Id: <20220512175747.142058-5-eperezma@redhat.com> | ||||
| Reviewed-by: Michael S. Tsirkin <mst@redhat.com> | ||||
| Signed-off-by: Michael S. Tsirkin <mst@redhat.com> | ||||
| (cherry picked from commit 1c82fdfef8a227518ffecae9d419bcada995c202) | ||||
| ---
 | ||||
|  hw/virtio/vhost-vdpa.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
 | ||||
| index a7dfac530f..f877b354fa 100644
 | ||||
| --- a/hw/virtio/vhost-vdpa.c
 | ||||
| +++ b/hw/virtio/vhost-vdpa.c
 | ||||
| @@ -1032,7 +1032,7 @@ static bool vhost_vdpa_svqs_start(struct vhost_dev *dev)
 | ||||
|          VirtQueue *vq = virtio_get_queue(dev->vdev, dev->vq_index + i); | ||||
|          VhostShadowVirtqueue *svq = g_ptr_array_index(v->shadow_vqs, i); | ||||
|          struct vhost_vring_addr addr = { | ||||
| -            .index = i,
 | ||||
| +            .index = dev->vq_index + i,
 | ||||
|          }; | ||||
|          int r; | ||||
|          bool ok = vhost_vdpa_svq_setup(dev, svq, i, &err); | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
							
								
								
									
										61
									
								
								kvm-vdpa-Fix-memory-listener-deletions-of-iova-tree.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								kvm-vdpa-Fix-memory-listener-deletions-of-iova-tree.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| From b212edc97a471c75f8b8b44ee2a3a2cf82ef14d9 Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com> | ||||
| Date: Fri, 22 Jul 2022 10:26:30 +0200 | ||||
| Subject: [PATCH 10/11] vdpa: Fix memory listener deletions of iova tree | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| RH-Author: Eugenio Pérez <eperezma@redhat.com> | ||||
| RH-MergeRequest: 114: vdpa: Fix memory listener deletions of iova tree | ||||
| RH-Commit: [3/4] ad71f098b3fa8654962ac7872b5393c37c9825f2 (eperezmartin/qemu-kvm) | ||||
| RH-Bugzilla: 2116876 | ||||
| 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_vdpa_listener_region_del is always deleting the first iova entry | ||||
| of the tree, since it's using the needle iova instead of the result's | ||||
| one. | ||||
| 
 | ||||
| This was detected using a vga virtual device in the VM using vdpa SVQ. | ||||
| It makes some extra memory adding and deleting, so the wrong one was | ||||
| mapped / unmapped. This was undetected before since all the memory was | ||||
| mappend and unmapped totally without that device, but other conditions | ||||
| could trigger it too: | ||||
| 
 | ||||
| * mem_region was with .iova = 0, .translated_addr = (correct GPA). | ||||
| * iova_tree_find_iova returned right result, but does not update | ||||
|   mem_region. | ||||
| * iova_tree_remove always removed region with .iova = 0. Right iova were | ||||
|   sent to the device. | ||||
| * Next map will fill the first region with .iova = 0, causing a mapping | ||||
|   with the same iova and device complains, if the next action is a map. | ||||
| * Next unmap will cause to try to unmap again iova = 0, causing the | ||||
|   device to complain that no region was mapped at iova = 0. | ||||
| 
 | ||||
| Fixes: 34e3c94edaef ("vdpa: Add custom IOTLB translations to SVQ") | ||||
| Reported-by: Lei Yang <leiyang@redhat.com> | ||||
| Signed-off-by: Eugenio Pérez <eperezma@redhat.com> | ||||
| Signed-off-by: Jason Wang <jasowang@redhat.com> | ||||
| (cherry picked from commit 75a8ce64f6e37513698857fb4284170da163ed06) | ||||
| ---
 | ||||
|  hw/virtio/vhost-vdpa.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
 | ||||
| index f877b354fa..03dc6014b0 100644
 | ||||
| --- a/hw/virtio/vhost-vdpa.c
 | ||||
| +++ b/hw/virtio/vhost-vdpa.c
 | ||||
| @@ -288,7 +288,7 @@ static void vhost_vdpa_listener_region_del(MemoryListener *listener,
 | ||||
|   | ||||
|          result = vhost_iova_tree_find_iova(v->iova_tree, &mem_region); | ||||
|          iova = result->iova; | ||||
| -        vhost_iova_tree_remove(v->iova_tree, &mem_region);
 | ||||
| +        vhost_iova_tree_remove(v->iova_tree, result);
 | ||||
|      } | ||||
|      vhost_vdpa_iotlb_batch_begin_once(v); | ||||
|      ret = vhost_vdpa_dma_unmap(v, iova, int128_get64(llsize)); | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
| @ -151,7 +151,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch}:%{version}                    \ | ||||
| Summary: QEMU is a machine emulator and virtualizer | ||||
| Name: qemu-kvm | ||||
| Version: 7.0.0 | ||||
| Release: 10%{?rcrel}%{?dist}%{?cc_suffix} | ||||
| Release: 11%{?rcrel}%{?dist}%{?cc_suffix} | ||||
| # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped | ||||
| # Epoch 15 used for RHEL 8 | ||||
| # Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5) | ||||
| @ -422,6 +422,28 @@ Patch133: kvm-kvm-don-t-use-perror-without-useful-errno.patch | ||||
| Patch134: kvm-multifd-Copy-pages-before-compressing-them-with-zlib.patch | ||||
| # For bz#2099934 - Guest reboot on destination host after postcopy migration completed | ||||
| Patch135: kvm-Revert-migration-Simplify-unqueue_page.patch | ||||
| # For bz#2107466 - zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together | ||||
| Patch136: kvm-QIOChannelSocket-Fix-zero-copy-flush-returning-code-.patch | ||||
| # For bz#2107466 - zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together | ||||
| Patch137: kvm-Add-dirty-sync-missed-zero-copy-migration-stat.patch | ||||
| # For bz#2107466 - zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together | ||||
| Patch138: kvm-migration-multifd-Report-to-user-when-zerocopy-not-w.patch | ||||
| # For bz#2107466 - zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together | ||||
| Patch139: kvm-migration-Avoid-false-positive-on-non-supported-scen.patch | ||||
| # For bz#2107466 - zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together | ||||
| Patch140: kvm-migration-add-remaining-params-has_-true-in-migratio.patch | ||||
| # For bz#2107466 - zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together | ||||
| Patch141: kvm-QIOChannelSocket-Add-support-for-MSG_ZEROCOPY-IPV6.patch | ||||
| # For bz#2112303 - virtio-blk: Can't boot fresh installation from used 512 cluster_size image under certain conditions | ||||
| Patch142: kvm-pc-bios-s390-ccw-Fix-booting-with-logical-block-size.patch | ||||
| # For bz#2116876 - Fixes for vDPA control virtqueue support in Qemu | ||||
| Patch143: kvm-vdpa-Fix-bad-index-calculus-at-vhost_vdpa_get_vring_.patch | ||||
| # For bz#2116876 - Fixes for vDPA control virtqueue support in Qemu | ||||
| Patch144: kvm-vdpa-Fix-index-calculus-at-vhost_vdpa_svqs_start.patch | ||||
| # For bz#2116876 - Fixes for vDPA control virtqueue support in Qemu | ||||
| Patch145: kvm-vdpa-Fix-memory-listener-deletions-of-iova-tree.patch | ||||
| # For bz#2116876 - Fixes for vDPA control virtqueue support in Qemu | ||||
| Patch146: kvm-vdpa-Fix-file-descriptor-leak-on-get-features-error.patch | ||||
| 
 | ||||
| # Source-git patches | ||||
| 
 | ||||
| @ -1457,6 +1479,25 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Mon Aug 15 2022 Miroslav Rezanina <mrezanin@redhat.com> - 7.0.0-11 | ||||
| - kvm-QIOChannelSocket-Fix-zero-copy-flush-returning-code-.patch [bz#2107466] | ||||
| - kvm-Add-dirty-sync-missed-zero-copy-migration-stat.patch [bz#2107466] | ||||
| - kvm-migration-multifd-Report-to-user-when-zerocopy-not-w.patch [bz#2107466] | ||||
| - kvm-migration-Avoid-false-positive-on-non-supported-scen.patch [bz#2107466] | ||||
| - kvm-migration-add-remaining-params-has_-true-in-migratio.patch [bz#2107466] | ||||
| - kvm-QIOChannelSocket-Add-support-for-MSG_ZEROCOPY-IPV6.patch [bz#2107466] | ||||
| - kvm-pc-bios-s390-ccw-Fix-booting-with-logical-block-size.patch [bz#2112303] | ||||
| - kvm-vdpa-Fix-bad-index-calculus-at-vhost_vdpa_get_vring_.patch [bz#2116876] | ||||
| - kvm-vdpa-Fix-index-calculus-at-vhost_vdpa_svqs_start.patch [bz#2116876] | ||||
| - kvm-vdpa-Fix-memory-listener-deletions-of-iova-tree.patch [bz#2116876] | ||||
| - kvm-vdpa-Fix-file-descriptor-leak-on-get-features-error.patch [bz#2116876] | ||||
| - Resolves: bz#2107466 | ||||
|   (zerocopy capability can be enabled when set migrate capabilities with multifd and compress/xbzrle together) | ||||
| - Resolves: bz#2112303 | ||||
|   (virtio-blk: Can't boot fresh installation from used 512 cluster_size image under certain conditions) | ||||
| - Resolves: bz#2116876 | ||||
|   (Fixes for vDPA control virtqueue support in Qemu) | ||||
| 
 | ||||
| * Mon Aug 08 2022 Miroslav Rezanina <mrezanin@redhat.com> - 7.0.0-10 | ||||
| - kvm-vhost-Track-descriptor-chain-in-private-at-SVQ.patch [bz#1939363] | ||||
| - kvm-vhost-Fix-device-s-used-descriptor-dequeue.patch [bz#1939363] | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user