* Tue Jun 08 2021 Miroslav Rezanina <mrezanin@redhat.com> - 6.0.0-5

- kvm-arm-virt-Register-highmem-and-gic-version-as-class-p.patch [bz#1952449]
- kvm-hw-arm-virt-Add-8.5-and-9.0-machine-types-and-remove.patch [bz#1952449]
- kvm-aarch64-rh-devices-add-CONFIG_PVPANIC_PCI.patch [bz#1747467]
- kvm-spec-Do-not-build-qemu-kvm-block-gluster.patch [bz#1964795]
- kvm-spec-Do-not-link-pcnet-and-ne2k_pci-roms.patch [bz#1965961]
- kvm-redhat-s390x-add-rhel-8.5.0-compat-machine.patch [bz#1957194]
- kvm-redhat-add-missing-entries-in-hw_compat_rhel_8_4.patch [bz#1957194]
- kvm-redhat-Define-pseries-rhel8.5.0-machine-type.patch [bz#1957194]
- kvm-virtio-net-failover-add-missing-remove_migration_sta.patch [bz#1957194]
- kvm-hw-arm-virt-Disable-PL011-clock-migration-through-hw.patch [bz#1957194]
- kvm-virtio-blk-Fix-rollback-path-in-virtio_blk_data_plan.patch [bz#1957194]
- kvm-virtio-blk-Configure-all-host-notifiers-in-a-single-.patch [bz#1957194]
- kvm-virtio-scsi-Set-host-notifiers-and-callbacks-separat.patch [bz#1957194]
- kvm-virtio-scsi-Configure-all-host-notifiers-in-a-single.patch [bz#1957194]
- kvm-hw-arm-smmuv3-Another-range-invalidation-fix.patch [bz#1957194]
- Resolves: bz#1952449
  ([aarch64] define RHEL9 machine types)
- Resolves: bz#1747467
  ([aarch64] [qemu] PVPANIC support)
- Resolves: bz#1964795
  (Remove qemu-kvm-block-gluster package)
- Resolves: bz#1965961
  (Remove links to not build roms)
- Resolves: bz#1957194
  (Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta)
This commit is contained in:
Miroslav Rezanina 2021-06-08 02:39:22 -04:00
parent 261bc7bc3b
commit 7b74d99404
15 changed files with 1052 additions and 40 deletions

3
.gitignore vendored
View File

@ -16,3 +16,6 @@
/qemu-5.2.0-rc3.tar.xz /qemu-5.2.0-rc3.tar.xz
/qemu-5.2.0.tar.xz /qemu-5.2.0.tar.xz
/qemu-6.0.0.tar.xz /qemu-6.0.0.tar.xz
/qemu-kvm*.src.rpm
/patches.*
/*.orig

View File

@ -0,0 +1,38 @@
From 5cc3aacc241c0d26f63d51efd1b6fa35490d37c9 Mon Sep 17 00:00:00 2001
From: Eric Auger <eric.auger@redhat.com>
Date: Wed, 26 May 2021 10:33:20 -0400
Subject: [PATCH 03/15] aarch64-rh-devices: add CONFIG_PVPANIC_PCI
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Eric Auger <eric.auger@redhat.com>
RH-MergeRequest: 2: aarch64-rh-devices: add CONFIG_PVPANIC_PCI
RH-Commit: [1/1] f3d0a94a91ea1b3fff925f32affce1b77469e206 (eauger1/centos-qemu-kvm)
RH-Bugzilla: 1747467
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Andrew Jones <drjones@redhat.com>
We want to enable the PVPANIC facility on ARM. On aarch64,
the PVPANIC PCI device is used (on x86_64 the ISA device is used).
so let's set the PVPANIC_PCI config.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
default-configs/devices/aarch64-rh-devices.mak | 1 +
1 file changed, 1 insertion(+)
diff --git a/default-configs/devices/aarch64-rh-devices.mak b/default-configs/devices/aarch64-rh-devices.mak
index a4d67274c0..4220469178 100644
--- a/default-configs/devices/aarch64-rh-devices.mak
+++ b/default-configs/devices/aarch64-rh-devices.mak
@@ -26,3 +26,4 @@ CONFIG_TPM_EMULATOR=y
CONFIG_TPM_TIS_SYSBUS=y
CONFIG_PTIMER=y
CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
+CONFIG_PVPANIC_PCI=y
--
2.27.0

View File

@ -0,0 +1,77 @@
From e808acaa50effe471c56a48b80d5e0d2d196b495 Mon Sep 17 00:00:00 2001
From: Eric Auger <eric.auger@redhat.com>
Date: Tue, 25 May 2021 09:22:23 +0200
Subject: [PATCH 01/15] arm/virt: Register highmem and gic-version as class
properties
RH-Author: Eric Auger <eric.auger@redhat.com>
RH-MergeRequest: 1: Add 9.0.0 and 8.5.0 arm-virt machine types
RH-Commit: [1/2] 1ff3970773e09f2efb194430511928ae852c02ba (eauger1/centos-qemu-kvm)
RH-Bugzilla: 1952449
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Andrew Jones <drjones@redhat.com>
This mirrors changes made in commit
b91def7b8382 ("rm/virt: Register most properties as class properties")
for the highmem and gic-version properties. This makes the
code easier to diff against upstream.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/arm/virt.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 080cf54ef1..51a415570c 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2996,6 +2996,18 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data)
object_class_property_set_description(oc, "acpi",
"Enable ACPI");
+ object_class_property_add_bool(oc, "highmem", virt_get_highmem,
+ virt_set_highmem);
+ object_class_property_set_description(oc, "highmem",
+ "Set on/off to enable/disable using "
+ "physical address space above 32 bits");
+
+ object_class_property_add_str(oc, "gic-version", virt_get_gic_version,
+ virt_set_gic_version);
+ object_class_property_set_description(oc, "gic-version",
+ "Set GIC version. "
+ "Valid values are 2, 3, host and max");
+
object_class_property_add_str(oc, "x-oem-id",
virt_get_oem_id,
virt_set_oem_id);
@@ -3004,7 +3016,6 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data)
"in ACPI table header."
"The string may be up to 6 bytes in size");
-
object_class_property_add_str(oc, "x-oem-table-id",
virt_get_oem_table_id,
virt_set_oem_table_id);
@@ -3027,17 +3038,7 @@ static void rhel_virt_instance_init(Object *obj)
/* High memory is enabled by default */
vms->highmem = true;
- object_property_add_bool(obj, "highmem", virt_get_highmem,
- virt_set_highmem);
- object_property_set_description(obj, "highmem",
- "Set on/off to enable/disable using "
- "physical address space above 32 bits");
vms->gic_version = VIRT_GIC_VERSION_NOSEL;
- object_property_add_str(obj, "gic-version", virt_get_gic_version,
- virt_set_gic_version);
- object_property_set_description(obj, "gic-version",
- "Set GIC version. "
- "Valid values are 2, 3, host and max");
vms->highmem_ecam = !vmc->no_highmem_ecam;
--
2.27.0

View File

@ -0,0 +1,111 @@
From e9abef24fae799febf81cd4ac02efe8987a698e8 Mon Sep 17 00:00:00 2001
From: Auger Eric <eric.auger@redhat.com>
Date: Wed, 26 May 2021 16:07:40 -0400
Subject: [PATCH 15/15] hw/arm/smmuv3: Another range invalidation fix
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [12/12] dc064684e5f3f11d955565b05d37b0f2d9f79b91 (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
6d9cd115b9 ("hw/arm/smmuv3: Enforce invalidation on a power of two range")
failed to completely fix misalignment issues with range
invalidation. For instance invalidations patterns like "invalidate 32
4kB pages starting from 0xff395000 are not correctly handled" due
to the fact the previous fix only made sure the number of invalidated
pages were a power of 2 but did not properly handle the start
address was not aligned with the range. This can be noticed when
boothing a fedora 33 with protected virtio-blk-pci.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Fixes: 6d9cd115b9 ("hw/arm/smmuv3: Enforce invalidation on a power of two range")
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 219729cfbf9e979020bffedac6a790144173ec62)
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/arm/smmuv3.c | 50 +++++++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 24 deletions(-)
diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
index 8705612535..e1979282e4 100644
--- a/hw/arm/smmuv3.c
+++ b/hw/arm/smmuv3.c
@@ -856,43 +856,45 @@ static void smmuv3_inv_notifiers_iova(SMMUState *s, int asid, dma_addr_t iova,
static void smmuv3_s1_range_inval(SMMUState *s, Cmd *cmd)
{
- uint8_t scale = 0, num = 0, ttl = 0;
- dma_addr_t addr = CMD_ADDR(cmd);
+ dma_addr_t end, addr = CMD_ADDR(cmd);
uint8_t type = CMD_TYPE(cmd);
uint16_t vmid = CMD_VMID(cmd);
+ uint8_t scale = CMD_SCALE(cmd);
+ uint8_t num = CMD_NUM(cmd);
+ uint8_t ttl = CMD_TTL(cmd);
bool leaf = CMD_LEAF(cmd);
uint8_t tg = CMD_TG(cmd);
- uint64_t first_page = 0, last_page;
- uint64_t num_pages = 1;
+ uint64_t num_pages;
+ uint8_t granule;
int asid = -1;
- if (tg) {
- scale = CMD_SCALE(cmd);
- num = CMD_NUM(cmd);
- ttl = CMD_TTL(cmd);
- num_pages = (num + 1) * BIT_ULL(scale);
- }
-
if (type == SMMU_CMD_TLBI_NH_VA) {
asid = CMD_ASID(cmd);
}
- /* Split invalidations into ^2 range invalidations */
- last_page = num_pages - 1;
- while (num_pages) {
- uint8_t granule = tg * 2 + 10;
- uint64_t mask, count;
+ if (!tg) {
+ trace_smmuv3_s1_range_inval(vmid, asid, addr, tg, 1, ttl, leaf);
+ smmuv3_inv_notifiers_iova(s, asid, addr, tg, 1);
+ smmu_iotlb_inv_iova(s, asid, addr, tg, 1, ttl);
+ return;
+ }
+
+ /* RIL in use */
- mask = dma_aligned_pow2_mask(first_page, last_page, 64 - granule);
- count = mask + 1;
+ num_pages = (num + 1) * BIT_ULL(scale);
+ granule = tg * 2 + 10;
+
+ /* Split invalidations into ^2 range invalidations */
+ end = addr + (num_pages << granule) - 1;
- trace_smmuv3_s1_range_inval(vmid, asid, addr, tg, count, ttl, leaf);
- smmuv3_inv_notifiers_iova(s, asid, addr, tg, count);
- smmu_iotlb_inv_iova(s, asid, addr, tg, count, ttl);
+ while (addr != end + 1) {
+ uint64_t mask = dma_aligned_pow2_mask(addr, end, 64);
- num_pages -= count;
- first_page += count;
- addr += count * BIT_ULL(granule);
+ num_pages = (mask + 1) >> granule;
+ trace_smmuv3_s1_range_inval(vmid, asid, addr, tg, num_pages, ttl, leaf);
+ smmuv3_inv_notifiers_iova(s, asid, addr, tg, num_pages);
+ smmu_iotlb_inv_iova(s, asid, addr, tg, num_pages, ttl);
+ addr += mask + 1;
}
}
--
2.27.0

View File

@ -0,0 +1,63 @@
From ee0be09f3598596e41b3fc2dbefef3382c5b0541 Mon Sep 17 00:00:00 2001
From: Eric Auger <eric.auger@redhat.com>
Date: Tue, 25 May 2021 09:22:24 +0200
Subject: [PATCH 02/15] hw/arm/virt: Add 8.5 and 9.0 machine types and remove
older ones
RH-Author: Eric Auger <eric.auger@redhat.com>
RH-MergeRequest: 1: Add 9.0.0 and 8.5.0 arm-virt machine types
RH-Commit: [2/2] ace4619a1d505a3b552a236260b259bd6ddabc00 (eauger1/centos-qemu-kvm)
RH-Bugzilla: 1952449
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Andrew Jones <drjones@redhat.com>
Add 8.5 and 9.0 machine types and remove older ones.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/arm/virt.c | 24 +++++-------------------
1 file changed, 5 insertions(+), 19 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 51a415570c..e4aa794f83 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3095,28 +3095,14 @@ static void rhel_machine_init(void)
}
type_init(rhel_machine_init);
-static void rhel840_virt_options(MachineClass *mc)
+static void rhel900_virt_options(MachineClass *mc)
{
compat_props_add(mc->compat_props, arm_rhel_compat, arm_rhel_compat_len);
- compat_props_add(mc->compat_props, hw_compat_rhel_8_4, hw_compat_rhel_8_4_len);
}
-DEFINE_RHEL_MACHINE_AS_LATEST(8, 4, 0)
+DEFINE_RHEL_MACHINE_AS_LATEST(9, 0, 0)
-static void rhel830_virt_options(MachineClass *mc)
+static void rhel850_virt_options(MachineClass *mc)
{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- rhel840_virt_options(mc);
- compat_props_add(mc->compat_props, hw_compat_rhel_8_3, hw_compat_rhel_8_3_len);
- vmc->no_kvm_steal_time = true;
-}
-DEFINE_RHEL_MACHINE(8, 3, 0)
-
-static void rhel820_virt_options(MachineClass *mc)
-{
- rhel830_virt_options(mc);
- compat_props_add(mc->compat_props, hw_compat_rhel_8_2, hw_compat_rhel_8_2_len);
- mc->numa_mem_supported = true;
- mc->auto_enable_numa_with_memdev = false;
+ rhel900_virt_options(mc);
}
-DEFINE_RHEL_MACHINE(8, 2, 0)
+DEFINE_RHEL_MACHINE(8, 5, 0)
--
2.27.0

View File

@ -0,0 +1,51 @@
From 7f76c347f17c5fc60f3bcb99ad65e26f9da4ed9f Mon Sep 17 00:00:00 2001
From: Auger Eric <eric.auger@redhat.com>
Date: Thu, 20 May 2021 19:23:26 -0400
Subject: [PATCH 10/15] hw/arm/virt: Disable PL011 clock migration through
hw_compat_rhel_8_3
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [6/12] 5f52975350b2497ee82cc5c9b8ba930e3a9b8c3d (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
Disable PL011 clock migration for machine types before
virt-rhel8.4.0.
The regression was introduced by aac63e0e6ea3
("hw/char/pl011: add a clock input"), in 8.4,
causing failure of migration between qemu 8.4 towards
older ones.
The fix was taken in 8.5 as part of the rebase,
e6fa978d8343 ("hw/arm/virt: Disable pl011 clock migration
if needed"). But the compat needs to be applied in
hw_compat_rhel_8_3[].
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/core/machine.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index c665e869de..6c534e14fa 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -69,6 +69,8 @@ GlobalProperty hw_compat_rhel_8_3[] = {
{ "nvme", "use-intel-id", "on"},
/* hw_compat_rhel_8_3 from hw_compat_5_1 */
{ "pvpanic", "events", "1"}, /* PVPANIC_PANICKED */
+ /* hw_compat_rhel_8_3 from hw_compat_5_1 */
+ { "pl011", "migrate-clk", "off" },
/* hw_compat_rhel_8_3 bz 1912846 */
{ "pci-xhci", "x-rh-late-msi-cap", "off" },
/* hw_compat_rhel_8_3 from hw_compat_5_1 */
--
2.27.0

View File

@ -0,0 +1,67 @@
From 1194549a01a472b9ce21819cd32fe253d6263cd6 Mon Sep 17 00:00:00 2001
From: Greg Kurz <gkurz@redhat.com>
Date: Mon, 10 May 2021 15:37:40 -0400
Subject: [PATCH 08/15] redhat: Define pseries-rhel8.5.0 machine type
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [3/12] accc2ed549b94360bc6ab180c4266466816f122e (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
Note that the compat entries for 8.4.0 were already wired up
in the rhel-8.4.0 machine type.
Signed-off-by: Greg Kurz <gkurz@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/ppc/spapr.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f9e8dfdfc9..653574ba91 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -5083,6 +5083,19 @@ static void spapr_machine_rhel_default_class_options(MachineClass *mc)
mc->max_cpus = 384;
}
+/*
+ * pseries-rhel8.5.0
+ * like pseries-6.0
+ */
+
+static void spapr_machine_rhel850_class_options(MachineClass *mc)
+{
+ /* The default machine type must apply the RHEL specific defaults */
+ spapr_machine_rhel_default_class_options(mc);
+}
+
+DEFINE_SPAPR_MACHINE(rhel850, "rhel8.5.0", true);
+
/*
* pseries-rhel8.4.0
* like pseries-5.2
@@ -5090,13 +5103,12 @@ static void spapr_machine_rhel_default_class_options(MachineClass *mc)
static void spapr_machine_rhel840_class_options(MachineClass *mc)
{
- /* The default machine type must apply the RHEL specific defaults */
- spapr_machine_rhel_default_class_options(mc);
+ spapr_machine_rhel850_class_options(mc);
compat_props_add(mc->compat_props, hw_compat_rhel_8_4,
hw_compat_rhel_8_4_len);
}
-DEFINE_SPAPR_MACHINE(rhel840, "rhel8.4.0", true);
+DEFINE_SPAPR_MACHINE(rhel840, "rhel8.4.0", false);
/*
* pseries-rhel8.3.0
--
2.27.0

View File

@ -0,0 +1,42 @@
From 8be260b07df50891463e6efbd45f84b1b8323983 Mon Sep 17 00:00:00 2001
From: Greg Kurz <gkurz@redhat.com>
Date: Mon, 10 May 2021 15:37:39 -0400
Subject: [PATCH 07/15] redhat: add missing entries in hw_compat_rhel_8_4
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [2/12] 69b6e4dff872478b6d0b09b2587f55967e1c9740 (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
Some entries from hw_compat_5_2 were missing.
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Greg Kurz <gkurz@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/core/machine.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 848e7fdff6..c665e869de 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -44,6 +44,10 @@ GlobalProperty hw_compat_rhel_8_4[] = {
{ "ICH9-LPC", "smm-compat", "on"},
/* hw_compat_rhel_8_4 from hw_compat_5_2 */
{ "PIIX4_PM", "smm-compat", "on"},
+ /* hw_compat_rhel_8_4 from hw_compat_5_2 */
+ { "virtio-blk-device", "report-discard-granularity", "off" },
+ /* hw_compat_rhel_8_4 from hw_compat_5_2 */
+ { "virtio-net-pci", "vectors", "3"},
};
const size_t hw_compat_rhel_8_4_len = G_N_ELEMENTS(hw_compat_rhel_8_4);
--
2.27.0

View File

@ -0,0 +1,59 @@
From a5e149c13279386c4fc3fae130289ac4ac53bd3e Mon Sep 17 00:00:00 2001
From: Cornelia Huck <cohuck@redhat.com>
Date: Mon, 10 May 2021 14:41:31 -0400
Subject: [PATCH 06/15] redhat: s390x: add rhel-8.5.0 compat machine
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [1/12] 3560ef3f773425f1479a131df7a351df2cbb502c (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
Note that the compat entries for 8.4.0 were already wired up
in the rhel-8.4.0 machine type.
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 432f36bce5..667a99f336 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -1074,15 +1074,26 @@ static void ccw_machine_2_4_class_options(MachineClass *mc)
DEFINE_CCW_MACHINE(2_4, "2.4", false);
#endif
+static void ccw_machine_rhel850_instance_options(MachineState *machine)
+{
+}
+
+static void ccw_machine_rhel850_class_options(MachineClass *mc)
+{
+}
+DEFINE_CCW_MACHINE(rhel850, "rhel8.5.0", true);
+
static void ccw_machine_rhel840_instance_options(MachineState *machine)
{
+ ccw_machine_rhel850_instance_options(machine);
}
static void ccw_machine_rhel840_class_options(MachineClass *mc)
{
+ ccw_machine_rhel850_class_options(mc);
compat_props_add(mc->compat_props, hw_compat_rhel_8_4, hw_compat_rhel_8_4_len);
}
-DEFINE_CCW_MACHINE(rhel840, "rhel8.4.0", true);
+DEFINE_CCW_MACHINE(rhel840, "rhel8.4.0", false);
static void ccw_machine_rhel820_instance_options(MachineState *machine)
{
--
2.27.0

View File

@ -0,0 +1,107 @@
From f02134f067150d02d1a74ff5aea151096679492e Mon Sep 17 00:00:00 2001
From: Greg Kurz <groug@kaod.org>
Date: Wed, 26 May 2021 09:03:52 -0400
Subject: [PATCH 12/15] virtio-blk: Configure all host notifiers in a single MR
transaction
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [9/12] 609631835874ea62dad1ffbd469e83744299ee07 (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
This allows the virtio-blk-pci device to batch the setup of all its
host notifiers. This significantly improves boot time of VMs with a
high number of vCPUs, e.g. from 3m26.186s down to 0m58.023s for a
pseries machine with 384 vCPUs.
Note that memory_region_transaction_commit() must be called before
virtio_bus_cleanup_host_notifier() because the latter might close
ioeventfds that the transaction still assumes to be around when it
commits.
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20210407143501.244343-3-groug@kaod.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit d0267da614890b8f817364ae25850cdbb580a569)
Signed-off-by: Greg Kurz <gkurz@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/block/dataplane/virtio-blk.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index d7b5c95d26..cd81893d1d 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -198,19 +198,30 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
goto fail_guest_notifiers;
}
+ memory_region_transaction_begin();
+
/* Set up virtqueue notify */
for (i = 0; i < nvqs; i++) {
r = virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, true);
if (r != 0) {
+ int j = i;
+
fprintf(stderr, "virtio-blk failed to set host notifier (%d)\n", r);
while (i--) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
+ }
+
+ memory_region_transaction_commit();
+
+ while (j--) {
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
goto fail_host_notifiers;
}
}
+ memory_region_transaction_commit();
+
s->starting = false;
vblk->dataplane_started = true;
trace_virtio_blk_data_plane_start(s);
@@ -246,8 +257,15 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
return 0;
fail_aio_context:
+ memory_region_transaction_begin();
+
for (i = 0; i < nvqs; i++) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
+ }
+
+ memory_region_transaction_commit();
+
+ for (i = 0; i < nvqs; i++) {
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
fail_host_notifiers:
@@ -312,8 +330,15 @@ void virtio_blk_data_plane_stop(VirtIODevice *vdev)
aio_context_release(s->ctx);
+ memory_region_transaction_begin();
+
for (i = 0; i < nvqs; i++) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
+ }
+
+ memory_region_transaction_commit();
+
+ for (i = 0; i < nvqs; i++) {
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
--
2.27.0

View File

@ -0,0 +1,83 @@
From b8febd2f080de1f12e68cc233c68c7a39835a3c4 Mon Sep 17 00:00:00 2001
From: Greg Kurz <groug@kaod.org>
Date: Wed, 26 May 2021 09:03:51 -0400
Subject: [PATCH 11/15] virtio-blk: Fix rollback path in
virtio_blk_data_plane_start()
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [8/12] 73d05400a537ce1847605dca58aff99e0a905919 (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
When dataplane multiqueue support was added in QEMU 2.7, the path
that would rollback guest notifiers assignment in case of error
simply got dropped.
Later on, when Error was added to blk_set_aio_context() in QEMU 4.1,
another error path was introduced, but it ommits to rollback both
host and guest notifiers.
It seems cleaner to fix the rollback path in one go. The patch is
simple enough that it can be adjusted if backported to a pre-4.1
QEMU.
Fixes: 51b04ac5c6a6 ("virtio-blk: dataplane multiqueue support")
Cc: stefanha@redhat.com
Fixes: 97896a4887a0 ("block: Add Error to blk_set_aio_context()")
Cc: kwolf@redhat.com
Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20210407143501.244343-2-groug@kaod.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 570fe439e5d1b8626cf344c6bc97d90cfcaf0c79)
Signed-off-by: Greg Kurz <gkurz@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/block/dataplane/virtio-blk.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index e9050c8987..d7b5c95d26 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -207,7 +207,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
- goto fail_guest_notifiers;
+ goto fail_host_notifiers;
}
}
@@ -221,7 +221,7 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
aio_context_release(old_context);
if (r < 0) {
error_report_err(local_err);
- goto fail_guest_notifiers;
+ goto fail_aio_context;
}
/* Process queued requests before the ones in vring */
@@ -245,6 +245,13 @@ int virtio_blk_data_plane_start(VirtIODevice *vdev)
aio_context_release(s->ctx);
return 0;
+ fail_aio_context:
+ for (i = 0; i < nvqs; i++) {
+ virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
+ virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
+ }
+ fail_host_notifiers:
+ k->set_guest_notifiers(qbus->parent, nvqs, false);
fail_guest_notifiers:
/*
* If we failed to set up the guest notifiers queued requests will be
--
2.27.0

View File

@ -0,0 +1,77 @@
From 21027e308bf410293a745d4358a848e9aa037df1 Mon Sep 17 00:00:00 2001
From: Laurent Vivier <lvivier@redhat.com>
Date: Mon, 10 May 2021 13:08:20 -0400
Subject: [PATCH 09/15] virtio-net: failover: add missing
remove_migration_state_change_notifier()
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [4/12] 884f0f99fbbba4312663ec6232b1d8c9576df84e (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
In the failover case configuration, virtio_net_device_realize() uses an
add_migration_state_change_notifier() to add a state notifier, but this
notifier is not removed by the unrealize function when the virtio-net
card is unplugged.
If the card is unplugged and a migration is started, the notifier is
called and as it is not valid anymore QEMU crashes.
This patch fixes the problem by adding the
remove_migration_state_change_notifier() in virtio_net_device_unrealize().
The problem can be reproduced with:
$ qemu-system-x86_64 -enable-kvm -m 1g -M q35 \
-device pcie-root-port,slot=4,id=root1 \
-device pcie-root-port,slot=5,id=root2 \
-device virtio-net-pci,id=net1,mac=52:54:00:6f:55:cc,failover=on,bus=root1 \
-monitor stdio disk.qcow2
(qemu) device_del net1
(qemu) migrate "exec:gzip -c > STATEFILE.gz"
Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ()
#1 0x0000555555d726d7 in notifier_list_notify (...)
at .../util/notify.c:39
#2 0x0000555555842c1a in migrate_fd_connect (...)
at .../migration/migration.c:3975
#3 0x0000555555950f7d in migration_channel_connect (...)
error@entry=0x0) at .../migration/channel.c:107
#4 0x0000555555910922 in exec_start_outgoing_migration (...)
at .../migration/exec.c:42
Reported-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
(cherry picked from commit a7eca58380f9589bb1bb6333ccfb58869734edb6)
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/net/virtio-net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 66b9ff4511..914051feb7 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -3373,6 +3373,7 @@ static void virtio_net_device_unrealize(DeviceState *dev)
if (n->failover) {
device_listener_unregister(&n->primary_listener);
+ remove_migration_state_change_notifier(&n->migration_state);
}
max_queues = n->multiqueue ? n->max_queues : 1;
--
2.27.0

View File

@ -0,0 +1,91 @@
From 5e7855d3c9d5a59d2c0ac05444428b058ca9abb8 Mon Sep 17 00:00:00 2001
From: Greg Kurz <groug@kaod.org>
Date: Wed, 26 May 2021 09:03:54 -0400
Subject: [PATCH 14/15] virtio-scsi: Configure all host notifiers in a single
MR transaction
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [11/12] f3c785c4b63aeb3a7b153f2fc17e86c983f98c23 (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
This allows the virtio-scsi-pci device to batch the setup of all its
host notifiers. This significantly improves boot time of VMs with a
high number of vCPUs, e.g. from 6m5.563s down to 1m2.884s for a
pseries machine with 384 vCPUs.
Note that memory_region_transaction_commit() must be called before
virtio_bus_cleanup_host_notifier() because the latter might close
ioeventfds that the transaction still assumes to be around when it
commits.
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20210407143501.244343-5-groug@kaod.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit c4f5dcc4360a02085a633fd7a90b7ac395ca1ba4)
Signed-off-by: Greg Kurz <gkurz@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/scsi/virtio-scsi-dataplane.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplane.c
index b2cb3d9dcc..28e003250a 100644
--- a/hw/scsi/virtio-scsi-dataplane.c
+++ b/hw/scsi/virtio-scsi-dataplane.c
@@ -152,6 +152,8 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
goto fail_guest_notifiers;
}
+ memory_region_transaction_begin();
+
rc = virtio_scsi_set_host_notifier(s, vs->ctrl_vq, 0);
if (rc != 0) {
goto fail_host_notifiers;
@@ -173,6 +175,8 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
vq_init_count++;
}
+ memory_region_transaction_commit();
+
aio_context_acquire(s->ctx);
virtio_queue_aio_set_host_notifier_handler(vs->ctrl_vq, s->ctx,
virtio_scsi_data_plane_handle_ctrl);
@@ -192,6 +196,11 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
fail_host_notifiers:
for (i = 0; i < vq_init_count; i++) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
+ }
+
+ memory_region_transaction_commit();
+
+ for (i = 0; i < vq_init_count; i++) {
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
k->set_guest_notifiers(qbus->parent, vs->conf.num_queues + 2, false);
@@ -229,8 +238,15 @@ void virtio_scsi_dataplane_stop(VirtIODevice *vdev)
blk_drain_all(); /* ensure there are no in-flight requests */
+ memory_region_transaction_begin();
+
for (i = 0; i < vs->conf.num_queues + 2; i++) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
+ }
+
+ memory_region_transaction_commit();
+
+ for (i = 0; i < vs->conf.num_queues + 2; i++) {
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
}
--
2.27.0

View File

@ -0,0 +1,125 @@
From 0ca53acb7ee0a3b3b72685f47df1fb2466989d6c Mon Sep 17 00:00:00 2001
From: Greg Kurz <groug@kaod.org>
Date: Wed, 26 May 2021 09:03:53 -0400
Subject: [PATCH 13/15] virtio-scsi: Set host notifiers and callbacks
separately
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
RH-MergeRequest: 5: Synchronize RHEL-AV 8.5 release 18 to RHEL 9 Beta
RH-Commit: [10/12] 61f873b494c52dc34eb60a705046bfead08532da (mrezanin/centos-src-qemu-kvm)
RH-Bugzilla: 1957194
RH-Acked-by: Danilo Cesar Lemes de Paula <ddepaula@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Acked-by: Greg Kurz <gkurz@redhat.com>
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
Host notifiers are guaranteed to be idle until the callbacks are
hooked up with virtio_queue_aio_set_host_notifier_handler(). They
thus don't need to be set or unset with the AioContext lock held.
Do this outside the critical section, like virtio-blk already
does : basically downgrading virtio_scsi_vring_init() to only
setup the host notifier and set the callback in the caller.
This will allow to batch addition/deletion of ioeventds in
a single memory transaction, which is expected to greatly
improve initialization time.
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20210407143501.244343-4-groug@kaod.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 61fc57bfc464c3584bd7ab810c86833661f0188c)
Signed-off-by: Greg Kurz <gkurz@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
hw/scsi/virtio-scsi-dataplane.c | 40 ++++++++++++++++++---------------
1 file changed, 22 insertions(+), 18 deletions(-)
diff --git a/hw/scsi/virtio-scsi-dataplane.c b/hw/scsi/virtio-scsi-dataplane.c
index 4ad8793406..b2cb3d9dcc 100644
--- a/hw/scsi/virtio-scsi-dataplane.c
+++ b/hw/scsi/virtio-scsi-dataplane.c
@@ -94,8 +94,7 @@ static bool virtio_scsi_data_plane_handle_event(VirtIODevice *vdev,
return progress;
}
-static int virtio_scsi_vring_init(VirtIOSCSI *s, VirtQueue *vq, int n,
- VirtIOHandleAIOOutput fn)
+static int virtio_scsi_set_host_notifier(VirtIOSCSI *s, VirtQueue *vq, int n)
{
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(s)));
int rc;
@@ -109,7 +108,6 @@ static int virtio_scsi_vring_init(VirtIOSCSI *s, VirtQueue *vq, int n,
return rc;
}
- virtio_queue_aio_set_host_notifier_handler(vq, s->ctx, fn);
return 0;
}
@@ -154,38 +152,44 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
goto fail_guest_notifiers;
}
- aio_context_acquire(s->ctx);
- rc = virtio_scsi_vring_init(s, vs->ctrl_vq, 0,
- virtio_scsi_data_plane_handle_ctrl);
- if (rc) {
- goto fail_vrings;
+ rc = virtio_scsi_set_host_notifier(s, vs->ctrl_vq, 0);
+ if (rc != 0) {
+ goto fail_host_notifiers;
}
vq_init_count++;
- rc = virtio_scsi_vring_init(s, vs->event_vq, 1,
- virtio_scsi_data_plane_handle_event);
- if (rc) {
- goto fail_vrings;
+ rc = virtio_scsi_set_host_notifier(s, vs->event_vq, 1);
+ if (rc != 0) {
+ goto fail_host_notifiers;
}
vq_init_count++;
+
for (i = 0; i < vs->conf.num_queues; i++) {
- rc = virtio_scsi_vring_init(s, vs->cmd_vqs[i], i + 2,
- virtio_scsi_data_plane_handle_cmd);
+ rc = virtio_scsi_set_host_notifier(s, vs->cmd_vqs[i], i + 2);
if (rc) {
- goto fail_vrings;
+ goto fail_host_notifiers;
}
vq_init_count++;
}
+ aio_context_acquire(s->ctx);
+ virtio_queue_aio_set_host_notifier_handler(vs->ctrl_vq, s->ctx,
+ virtio_scsi_data_plane_handle_ctrl);
+ virtio_queue_aio_set_host_notifier_handler(vs->event_vq, s->ctx,
+ virtio_scsi_data_plane_handle_event);
+
+ for (i = 0; i < vs->conf.num_queues; i++) {
+ virtio_queue_aio_set_host_notifier_handler(vs->cmd_vqs[i], s->ctx,
+ virtio_scsi_data_plane_handle_cmd);
+ }
+
s->dataplane_starting = false;
s->dataplane_started = true;
aio_context_release(s->ctx);
return 0;
-fail_vrings:
- aio_wait_bh_oneshot(s->ctx, virtio_scsi_dataplane_stop_bh, s);
- aio_context_release(s->ctx);
+fail_host_notifiers:
for (i = 0; i < vq_init_count; i++) {
virtio_bus_set_host_notifier(VIRTIO_BUS(qbus), i, false);
virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), i);
--
2.27.0

View File

@ -4,7 +4,6 @@
%global have_usbredir 1 %global have_usbredir 1
%global have_opengl 1 %global have_opengl 1
%global have_fdt 0 %global have_fdt 0
%global have_gluster 1
%global have_kvm_setup 0 %global have_kvm_setup 0
%global have_memlock_limits 0 %global have_memlock_limits 0
@ -27,7 +26,6 @@
%global kvm_target x86_64 %global kvm_target x86_64
%else %else
%global have_opengl 0 %global have_opengl 0
%global have_gluster 0
%endif %endif
%ifarch %{power64} %ifarch %{power64}
%global kvm_target ppc64 %global kvm_target ppc64
@ -55,9 +53,6 @@
Requires: %{name}-ui-opengl = %{epoch}:%{version}-%{release} \ Requires: %{name}-ui-opengl = %{epoch}:%{version}-%{release} \
%endif \ %endif \
Requires: %{name}-block-curl = %{epoch}:%{version}-%{release} \ Requires: %{name}-block-curl = %{epoch}:%{version}-%{release} \
%if %{have_gluster} \
Requires: %{name}-block-gluster = %{epoch}:%{version}-%{release} \
%endif \
Requires: %{name}-block-iscsi = %{epoch}:%{version}-%{release} \ Requires: %{name}-block-iscsi = %{epoch}:%{version}-%{release} \
Requires: %{name}-block-rbd = %{epoch}:%{version}-%{release} \ Requires: %{name}-block-rbd = %{epoch}:%{version}-%{release} \
Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release} Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release}
@ -65,9 +60,11 @@ Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release}
Summary: QEMU is a machine emulator and virtualizer Summary: QEMU is a machine emulator and virtualizer
Name: qemu-kvm Name: qemu-kvm
Version: 6.0.0 Version: 6.0.0
Release: 4%{?rcversion}%{?dist} Release: 5%{?rcversion}%{?dist}
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
Epoch: 15 # Epoch 15 used for RHEL 8
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
Epoch: 17
License: GPLv2 and GPLv2+ and CC-BY License: GPLv2 and GPLv2+ and CC-BY
Group: Development/Tools Group: Development/Tools
URL: http://www.qemu.org/ URL: http://www.qemu.org/
@ -121,6 +118,32 @@ Patch19: kvm-Remove-SPICE-and-QXL-from-x86_64-rh-devices.mak.patch
Patch20: kvm-hw-s390x-Remove-the-RHEL7-only-machine-type.patch Patch20: kvm-hw-s390x-Remove-the-RHEL7-only-machine-type.patch
# For bz#1962479 - Disable the 'x-terminal3270' device in qemu-kvm on s390x # For bz#1962479 - Disable the 'x-terminal3270' device in qemu-kvm on s390x
Patch21: kvm-s390x-redhat-disable-experimental-3270-device.patch Patch21: kvm-s390x-redhat-disable-experimental-3270-device.patch
# For bz#1952449 - [aarch64] define RHEL9 machine types
Patch22: kvm-arm-virt-Register-highmem-and-gic-version-as-class-p.patch
# For bz#1952449 - [aarch64] define RHEL9 machine types
Patch23: kvm-hw-arm-virt-Add-8.5-and-9.0-machine-types-and-remove.patch
# For bz#1747467 - [aarch64] [qemu] PVPANIC support
Patch24: kvm-aarch64-rh-devices-add-CONFIG_PVPANIC_PCI.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch25: kvm-redhat-s390x-add-rhel-8.5.0-compat-machine.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch26: kvm-redhat-add-missing-entries-in-hw_compat_rhel_8_4.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch27: kvm-redhat-Define-pseries-rhel8.5.0-machine-type.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch28: kvm-virtio-net-failover-add-missing-remove_migration_sta.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch29: kvm-hw-arm-virt-Disable-PL011-clock-migration-through-hw.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch30: kvm-virtio-blk-Fix-rollback-path-in-virtio_blk_data_plan.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch31: kvm-virtio-blk-Configure-all-host-notifiers-in-a-single-.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch32: kvm-virtio-scsi-Set-host-notifiers-and-callbacks-separat.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch33: kvm-virtio-scsi-Configure-all-host-notifiers-in-a-single.patch
# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta
Patch34: kvm-hw-arm-smmuv3-Another-range-invalidation-fix.patch
BuildRequires: wget BuildRequires: wget
BuildRequires: rpm-build BuildRequires: rpm-build
@ -151,11 +174,6 @@ BuildRequires: libcurl-devel
BuildRequires: libssh-devel BuildRequires: libssh-devel
BuildRequires: librados-devel BuildRequires: librados-devel
BuildRequires: librbd-devel BuildRequires: librbd-devel
%if %{have_gluster}
# For gluster block driver
BuildRequires: glusterfs-api-devel
BuildRequires: glusterfs-devel
%endif
# We need both because the 'stap' binary is probed for by configure # We need both because the 'stap' binary is probed for by configure
BuildRequires: systemtap BuildRequires: systemtap
BuildRequires: systemtap-sdt-devel BuildRequires: systemtap-sdt-devel
@ -269,6 +287,7 @@ Requires: libfdt >= 1.6.0
# The "<= {version}" assumes RHEL-9 version >= RHEL-8 version (in # The "<= {version}" assumes RHEL-9 version >= RHEL-8 version (in
# other words RHEL-9 rebases are done together/before RHEL-8 ones) # other words RHEL-9 rebases are done together/before RHEL-8 ones)
Obsoletes: qemu-kvm-ui-spice <= %{version} Obsoletes: qemu-kvm-ui-spice <= %{version}
Obsoletes: qemu-kvm-block-gluster <= %{version}
%description -n qemu-kvm-core %description -n qemu-kvm-core
qemu-kvm is an open source virtualizer that provides hardware qemu-kvm is an open source virtualizer that provides hardware
@ -353,17 +372,6 @@ Install this package if you want to access remote disks over
http, https, ftp and other transports provided by the CURL library. http, https, ftp and other transports provided by the CURL library.
%if %{have_gluster}
%package block-gluster
Summary: QEMU Gluster block driver
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
%description block-gluster
This package provides the additional Gluster block driver for QEMU.
Install this package if you want to access remote Gluster storage.
%endif
%package block-iscsi %package block-iscsi
Summary: QEMU iSCSI block driver Summary: QEMU iSCSI block driver
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
@ -429,11 +437,6 @@ buildldflags="VL_LDFLAGS=-Wl,--build-id"
%global block_drivers_list qcow2,raw,file,host_device,nbd,iscsi,rbd,blkdebug,luks,null-co,nvme,copy-on-read,throttle %global block_drivers_list qcow2,raw,file,host_device,nbd,iscsi,rbd,blkdebug,luks,null-co,nvme,copy-on-read,throttle
%if 0%{have_gluster}
%global block_drivers_list %{block_drivers_list},gluster
%endif
%define disable_everything \\\ %define disable_everything \\\
--disable-attr \\\ --disable-attr \\\
--disable-auth-pam \\\ --disable-auth-pam \\\
@ -594,9 +597,6 @@ pushd %{qemu_kvm_build}
--enable-fdt \ --enable-fdt \
%endif %endif
--enable-gcrypt \ --enable-gcrypt \
%if 0%{have_gluster}
--enable-glusterfs \
%endif
--enable-gnutls \ --enable-gnutls \
--enable-guest-agent \ --enable-guest-agent \
--enable-iconv \ --enable-iconv \
@ -937,8 +937,6 @@ pxe_link() {
%ifnarch aarch64 s390x %ifnarch aarch64 s390x
pxe_link e1000 8086100e pxe_link e1000 8086100e
pxe_link ne2k_pci 10ec8029
pxe_link pcnet 10222000
pxe_link rtl8139 10ec8139 pxe_link rtl8139 10ec8139
pxe_link virtio 1af41000 pxe_link virtio 1af41000
pxe_link e1000e 808610d3 pxe_link e1000e 808610d3
@ -1134,9 +1132,7 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
%{_datadir}/%{name}/efi-e1000.rom %{_datadir}/%{name}/efi-e1000.rom
%{_datadir}/%{name}/efi-e1000e.rom %{_datadir}/%{name}/efi-e1000e.rom
%{_datadir}/%{name}/efi-virtio.rom %{_datadir}/%{name}/efi-virtio.rom
%{_datadir}/%{name}/efi-pcnet.rom
%{_datadir}/%{name}/efi-rtl8139.rom %{_datadir}/%{name}/efi-rtl8139.rom
%{_datadir}/%{name}/efi-ne2k_pci.rom
%{_libdir}/qemu-kvm/hw-display-virtio-vga.so %{_libdir}/qemu-kvm/hw-display-virtio-vga.so
%endif %endif
%{_datadir}/icons/* %{_datadir}/icons/*
@ -1205,11 +1201,6 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
%files block-curl %files block-curl
%{_libdir}/qemu-kvm/block-curl.so %{_libdir}/qemu-kvm/block-curl.so
%if %{have_gluster}
%files block-gluster
%{_libdir}/qemu-kvm/block-gluster.so
%endif
%files block-iscsi %files block-iscsi
%{_libdir}/qemu-kvm/block-iscsi.so %{_libdir}/qemu-kvm/block-iscsi.so
@ -1227,6 +1218,33 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
%endif %endif
%changelog %changelog
* Tue Jun 08 2021 Miroslav Rezanina <mrezanin@redhat.com> - 6.0.0-5
- kvm-arm-virt-Register-highmem-and-gic-version-as-class-p.patch [bz#1952449]
- kvm-hw-arm-virt-Add-8.5-and-9.0-machine-types-and-remove.patch [bz#1952449]
- kvm-aarch64-rh-devices-add-CONFIG_PVPANIC_PCI.patch [bz#1747467]
- kvm-spec-Do-not-build-qemu-kvm-block-gluster.patch [bz#1964795]
- kvm-spec-Do-not-link-pcnet-and-ne2k_pci-roms.patch [bz#1965961]
- kvm-redhat-s390x-add-rhel-8.5.0-compat-machine.patch [bz#1957194]
- kvm-redhat-add-missing-entries-in-hw_compat_rhel_8_4.patch [bz#1957194]
- kvm-redhat-Define-pseries-rhel8.5.0-machine-type.patch [bz#1957194]
- kvm-virtio-net-failover-add-missing-remove_migration_sta.patch [bz#1957194]
- kvm-hw-arm-virt-Disable-PL011-clock-migration-through-hw.patch [bz#1957194]
- kvm-virtio-blk-Fix-rollback-path-in-virtio_blk_data_plan.patch [bz#1957194]
- kvm-virtio-blk-Configure-all-host-notifiers-in-a-single-.patch [bz#1957194]
- kvm-virtio-scsi-Set-host-notifiers-and-callbacks-separat.patch [bz#1957194]
- kvm-virtio-scsi-Configure-all-host-notifiers-in-a-single.patch [bz#1957194]
- kvm-hw-arm-smmuv3-Another-range-invalidation-fix.patch [bz#1957194]
- Resolves: bz#1952449
([aarch64] define RHEL9 machine types)
- Resolves: bz#1747467
([aarch64] [qemu] PVPANIC support)
- Resolves: bz#1964795
(Remove qemu-kvm-block-gluster package)
- Resolves: bz#1965961
(Remove links to not build roms)
- Resolves: bz#1957194
(Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta)
* Mon May 31 2021 Miroslav Rezanina <mrezanin@redhat.com> - 6.0.0-4 * Mon May 31 2021 Miroslav Rezanina <mrezanin@redhat.com> - 6.0.0-4
- kvm-s390x-redhat-disable-experimental-3270-device.patch - kvm-s390x-redhat-disable-experimental-3270-device.patch
- Resolves: bz#1962479 - Resolves: bz#1962479