Synchronization with qemu-kvm-5.2.0-5.el8
This commit is contained in:
parent
991a8cd654
commit
c7f7ddb9f2
56
kvm-docs-set-CONFDIR-when-running-sphinx.patch
Normal file
56
kvm-docs-set-CONFDIR-when-running-sphinx.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From 16130479cc03434a85111608d9d2b0e179dc8b98 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||||
|
Date: Mon, 8 Feb 2021 09:37:30 -0500
|
||||||
|
Subject: [PATCH 7/7] docs: set CONFDIR when running sphinx
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Message-id: <20210208093730.1166952-1-marcandre.lureau@redhat.com>
|
||||||
|
Patchwork-id: 101004
|
||||||
|
O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH] docs: set CONFDIR when running sphinx
|
||||||
|
Bugzilla: 1902537
|
||||||
|
RH-Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||||
|
|
||||||
|
From: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
|
||||||
|
The default configuration path /etc/qemu can be overriden with configure
|
||||||
|
options, and the generated documentation used to reflect it.
|
||||||
|
|
||||||
|
Fixes regression introduced in commit
|
||||||
|
f8aa24ea9a82da38370470c6bc0eaa393999edfe ("meson: sphinx-build").
|
||||||
|
|
||||||
|
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1902537
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Message-Id: <20201201183704.299697-1-marcandre.lureau@redhat.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
|
||||||
|
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1902537
|
||||||
|
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34816282
|
||||||
|
|
||||||
|
(cherry picked from commit daf07a6714b111340fe2d0234d1a5287d6ebe0ec)
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
||||||
|
---
|
||||||
|
docs/meson.build | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/docs/meson.build b/docs/meson.build
|
||||||
|
index ebd85d59f9..bb8fe4c9e4 100644
|
||||||
|
--- a/docs/meson.build
|
||||||
|
+++ b/docs/meson.build
|
||||||
|
@@ -9,7 +9,7 @@ endif
|
||||||
|
# Check if tools are available to build documentation.
|
||||||
|
build_docs = false
|
||||||
|
if sphinx_build.found()
|
||||||
|
- SPHINX_ARGS = [sphinx_build]
|
||||||
|
+ SPHINX_ARGS = ['env', 'CONFDIR=' + qemu_confdir, sphinx_build]
|
||||||
|
# If we're making warnings fatal, apply this to Sphinx runs as well
|
||||||
|
if get_option('werror')
|
||||||
|
SPHINX_ARGS += [ '-W' ]
|
||||||
|
--
|
||||||
|
2.18.4
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From 9768ea83a3f23f112514ad34d4abcd6e9590bb71 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Auger Eric <eric.auger@redhat.com>
|
||||||
|
Date: Wed, 3 Feb 2021 20:31:27 -0500
|
||||||
|
Subject: [PATCH 4/7] hw/arm/smmuv3: Fix addr_mask for range-based invalidation
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Auger Eric <eric.auger@redhat.com>
|
||||||
|
Message-id: <20210203203127.3613-1-eric.auger@redhat.com>
|
||||||
|
Patchwork-id: 100971
|
||||||
|
O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH] hw/arm/smmuv3: Fix addr_mask for range-based invalidation
|
||||||
|
Bugzilla: 1834152
|
||||||
|
RH-Acked-by: Gavin Shan <gshan@redhat.com>
|
||||||
|
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||||
|
RH-Acked-by: Andrew Jones <drjones@redhat.com>
|
||||||
|
|
||||||
|
From: Zenghui Yu <yuzenghui@huawei.com>
|
||||||
|
|
||||||
|
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1834152
|
||||||
|
BRANCH: rhel-av-8.4.0
|
||||||
|
UPSTREAM: yes
|
||||||
|
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34711554
|
||||||
|
|
||||||
|
When handling guest range-based IOTLB invalidation, we should decode the TG
|
||||||
|
field into the corresponding translation granule size so that we can pass
|
||||||
|
the correct invalidation range to backend. Set @granule to (tg * 2 + 10) to
|
||||||
|
properly emulate the architecture.
|
||||||
|
|
||||||
|
Fixes: d52915616c05 ("hw/arm/smmuv3: Get prepared for range invalidation")
|
||||||
|
Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
|
||||||
|
Acked-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Message-id: 20210130043220.1345-1-yuzenghui@huawei.com
|
||||||
|
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||||||
|
(cherry picked from commit dcda883cd21125c699419a3fc0fe182ea989d9c4)
|
||||||
|
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
||||||
|
---
|
||||||
|
hw/arm/smmuv3.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
|
||||||
|
index bbca0e9f20..98b99d4fe8 100644
|
||||||
|
--- a/hw/arm/smmuv3.c
|
||||||
|
+++ b/hw/arm/smmuv3.c
|
||||||
|
@@ -801,7 +801,7 @@ static void smmuv3_notify_iova(IOMMUMemoryRegion *mr,
|
||||||
|
{
|
||||||
|
SMMUDevice *sdev = container_of(mr, SMMUDevice, iommu);
|
||||||
|
IOMMUTLBEvent event;
|
||||||
|
- uint8_t granule = tg;
|
||||||
|
+ uint8_t granule;
|
||||||
|
|
||||||
|
if (!tg) {
|
||||||
|
SMMUEventInfo event = {.inval_ste_allowed = true};
|
||||||
|
@@ -821,6 +821,8 @@ static void smmuv3_notify_iova(IOMMUMemoryRegion *mr,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
granule = tt->granule_sz;
|
||||||
|
+ } else {
|
||||||
|
+ granule = tg * 2 + 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
event.type = IOMMU_NOTIFIER_UNMAP;
|
||||||
|
--
|
||||||
|
2.18.4
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
From 3b537ab3eb342af4222a8cf825062d17893cd18f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maxim Levitsky <mlevitsk@redhat.com>
|
||||||
|
Date: Wed, 27 Jan 2021 11:47:54 -0500
|
||||||
|
Subject: [PATCH 1/7] scsi: fix device removal race vs IO restart callback on
|
||||||
|
resume
|
||||||
|
|
||||||
|
RH-Author: Maxim Levitsky <mlevitsk@redhat.com>
|
||||||
|
Message-id: <20210127114754.477582-2-mlevitsk@redhat.com>
|
||||||
|
Patchwork-id: 100795
|
||||||
|
O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH 1/1] scsi: fix device removal race vs IO restart callback on resume
|
||||||
|
Bugzilla: 1854811
|
||||||
|
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
RH-Acked-by: John Snow <jsnow@redhat.com>
|
||||||
|
|
||||||
|
There is (mostly theoretical) race between removal of a scsi device and
|
||||||
|
scsi_dma_restart_bh.
|
||||||
|
|
||||||
|
It used to be easier to hit this race prior to my / Paulo's patch series
|
||||||
|
that added rcu to scsi bus device handling code, but IMHO this race
|
||||||
|
should still be possible to hit, at least in theory.
|
||||||
|
|
||||||
|
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1854811
|
||||||
|
|
||||||
|
Fix it anyway with a patch that was proposed by Paulo in the above bugzilla.
|
||||||
|
|
||||||
|
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
|
||||||
|
Message-Id: <20201210125929.1136390-2-mlevitsk@redhat.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
(cherry picked from commit cfd4e36352d4426221aa94da44a172da1aaa741b)
|
||||||
|
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
|
||||||
|
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
||||||
|
---
|
||||||
|
hw/scsi/scsi-bus.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
|
||||||
|
index b901e701f0..edb5c3492a 100644
|
||||||
|
--- a/hw/scsi/scsi-bus.c
|
||||||
|
+++ b/hw/scsi/scsi-bus.c
|
||||||
|
@@ -170,6 +170,8 @@ static void scsi_dma_restart_bh(void *opaque)
|
||||||
|
scsi_req_unref(req);
|
||||||
|
}
|
||||||
|
aio_context_release(blk_get_aio_context(s->conf.blk));
|
||||||
|
+ /* Drop the reference that was acquired in scsi_dma_restart_cb */
|
||||||
|
+ object_unref(OBJECT(s));
|
||||||
|
}
|
||||||
|
|
||||||
|
void scsi_req_retry(SCSIRequest *req)
|
||||||
|
@@ -188,6 +190,8 @@ static void scsi_dma_restart_cb(void *opaque, int running, RunState state)
|
||||||
|
}
|
||||||
|
if (!s->bh) {
|
||||||
|
AioContext *ctx = blk_get_aio_context(s->conf.blk);
|
||||||
|
+ /* The reference is dropped in scsi_dma_restart_bh.*/
|
||||||
|
+ object_ref(OBJECT(s));
|
||||||
|
s->bh = aio_bh_new(ctx, scsi_dma_restart_bh, s);
|
||||||
|
qemu_bh_schedule(s->bh);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.18.4
|
||||||
|
|
@ -0,0 +1,69 @@
|
|||||||
|
From b51851d9684443028c2568e70bb203481ecd533a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Laurent Vivier <lvivier@redhat.com>
|
||||||
|
Date: Tue, 2 Feb 2021 14:03:34 -0500
|
||||||
|
Subject: [PATCH 2/7] tracetool: also strip %l and %ll from systemtap format
|
||||||
|
strings
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
RH-Author: Laurent Vivier <lvivier@redhat.com>
|
||||||
|
Message-id: <20210202140334.1798082-2-lvivier@redhat.com>
|
||||||
|
Patchwork-id: 100948
|
||||||
|
O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH 1/1] tracetool: also strip %l and %ll from systemtap format strings
|
||||||
|
Bugzilla: 1907264
|
||||||
|
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||||
|
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||||
|
RH-Acked-by: Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
|
From: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
|
||||||
|
All variables are 64-bit and so %l / %ll are not required, and the
|
||||||
|
latter is actually invalid:
|
||||||
|
|
||||||
|
$ sudo stap -e 'probe begin{printf ("BEGIN")}' -I .
|
||||||
|
parse error: invalid or missing conversion specifier
|
||||||
|
saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101
|
||||||
|
source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu
|
||||||
|
refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log)
|
||||||
|
|
||||||
|
^
|
||||||
|
|
||||||
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
|
||||||
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||||
|
Tested-by: Laurent Vivier <lvivier@redhat.com>
|
||||||
|
Message-id: 20210106130239.1004729-1-berrange@redhat.com
|
||||||
|
|
||||||
|
[Fixed "simiarly" typo found by Laurent Vivier <lvivier@redhat.com>
|
||||||
|
--Stefan]
|
||||||
|
|
||||||
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
(cherry picked from commit 09612de7e9adbe9666a8fa4cc60bab0a29a68ed1)
|
||||||
|
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
|
||||||
|
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
||||||
|
---
|
||||||
|
scripts/tracetool/format/log_stap.py | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py
|
||||||
|
index b486beb672..2d910ced82 100644
|
||||||
|
--- a/scripts/tracetool/format/log_stap.py
|
||||||
|
+++ b/scripts/tracetool/format/log_stap.py
|
||||||
|
@@ -77,7 +77,12 @@ def c_fmt_to_stap(fmt):
|
||||||
|
elif state == STATE_LITERAL:
|
||||||
|
bits.append(literal)
|
||||||
|
|
||||||
|
- fmt = re.sub("%(\d*)z(x|u|d)", "%\\1\\2", "".join(bits))
|
||||||
|
+ # All variables in systemtap are 64-bit in size
|
||||||
|
+ # The "%l" integer size qualifier is thus redundant
|
||||||
|
+ # and "%ll" is not valid at all. Similarly the size_t
|
||||||
|
+ # based "%z" size qualifier is not valid. We just
|
||||||
|
+ # strip all size qualifiers for sanity.
|
||||||
|
+ fmt = re.sub("%(\d*)(l+|z)(x|u|d)", "%\\1\\3", "".join(bits))
|
||||||
|
return fmt
|
||||||
|
|
||||||
|
def generate(events, backend, group):
|
||||||
|
--
|
||||||
|
2.18.4
|
||||||
|
|
124
kvm-vhost-Unbreak-SMMU-and-virtio-iommu-on-dev-iotlb-sup.patch
Normal file
124
kvm-vhost-Unbreak-SMMU-and-virtio-iommu-on-dev-iotlb-sup.patch
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
From 26c3b9b2a5e904f2799ac097c91588cb2248a6e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Auger Eric <eric.auger@redhat.com>
|
||||||
|
Date: Fri, 5 Feb 2021 18:58:52 -0500
|
||||||
|
Subject: [PATCH 6/7] vhost: Unbreak SMMU and virtio-iommu on dev-iotlb support
|
||||||
|
|
||||||
|
RH-Author: Auger Eric <eric.auger@redhat.com>
|
||||||
|
Message-id: <20210205185852.12830-1-eric.auger@redhat.com>
|
||||||
|
Patchwork-id: 100996
|
||||||
|
O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH] vhost: Unbreak SMMU and virtio-iommu on dev-iotlb support
|
||||||
|
Bugzilla: 1925028
|
||||||
|
RH-Acked-by: Gavin Shan <gshan@redhat.com>
|
||||||
|
RH-Acked-by: Andrew Jones <drjones@redhat.com>
|
||||||
|
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||||
|
|
||||||
|
From: Peter Xu <peterx@redhat.com>
|
||||||
|
|
||||||
|
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1925028
|
||||||
|
BRANCH: rhel-av-8.4.0
|
||||||
|
UPSTREAM: merged
|
||||||
|
BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34788078
|
||||||
|
|
||||||
|
Previous work on dev-iotlb message broke vhost on either SMMU or virtio-iommu
|
||||||
|
since dev-iotlb (or PCIe ATS) is not yet supported for those archs.
|
||||||
|
|
||||||
|
An initial idea is that we can let IOMMU to export this information to vhost so
|
||||||
|
that vhost would know whether the vIOMMU would support dev-iotlb, then vhost
|
||||||
|
can conditionally register to dev-iotlb or the old iotlb way. We can work
|
||||||
|
based on some previous patch to introduce PCIIOMMUOps as Yi Liu proposed [1].
|
||||||
|
|
||||||
|
However it's not as easy as I thought since vhost_iommu_region_add() does not
|
||||||
|
have a PCIDevice context at all since it's completely a backend. It seems
|
||||||
|
non-trivial to pass over a PCI device to the backend during init. E.g. when
|
||||||
|
the IOMMU notifier registered hdev->vdev is still NULL.
|
||||||
|
|
||||||
|
To make the fix smaller and easier, this patch goes the other way to leverage
|
||||||
|
the flag_changed() hook of vIOMMUs so that SMMU and virtio-iommu can trap the
|
||||||
|
dev-iotlb registration and fail it. Then vhost could try the fallback solution
|
||||||
|
as using UNMAP invalidation for it's translations.
|
||||||
|
|
||||||
|
[1] https://lore.kernel.org/qemu-devel/1599735398-6829-4-git-send-email-yi.l.liu@intel.com/
|
||||||
|
|
||||||
|
Reported-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Fixes: b68ba1ca57677acf870d5ab10579e6105c1f5338
|
||||||
|
Reviewed-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Tested-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||||||
|
Message-Id: <20210204191228.187550-1-peterx@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
(cherry picked from commit 958ec334bca3fa9862289e4cfe31bf1019e55816)
|
||||||
|
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
|
||||||
|
---
|
||||||
|
hw/arm/smmuv3.c | 5 +++++
|
||||||
|
hw/virtio/vhost.c | 13 +++++++++++--
|
||||||
|
hw/virtio/virtio-iommu.c | 5 +++++
|
||||||
|
3 files changed, 21 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
|
||||||
|
index 98b99d4fe8..bd1f97000d 100644
|
||||||
|
--- a/hw/arm/smmuv3.c
|
||||||
|
+++ b/hw/arm/smmuv3.c
|
||||||
|
@@ -1497,6 +1497,11 @@ static int smmuv3_notify_flag_changed(IOMMUMemoryRegion *iommu,
|
||||||
|
SMMUv3State *s3 = sdev->smmu;
|
||||||
|
SMMUState *s = &(s3->smmu_state);
|
||||||
|
|
||||||
|
+ if (new & IOMMU_NOTIFIER_DEVIOTLB_UNMAP) {
|
||||||
|
+ error_setg(errp, "SMMUv3 does not support dev-iotlb yet");
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (new & IOMMU_NOTIFIER_MAP) {
|
||||||
|
error_setg(errp,
|
||||||
|
"device %02x.%02x.%x requires iommu MAP notifier which is "
|
||||||
|
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
|
||||||
|
index 28c7d78172..6e17d631f7 100644
|
||||||
|
--- a/hw/virtio/vhost.c
|
||||||
|
+++ b/hw/virtio/vhost.c
|
||||||
|
@@ -704,6 +704,7 @@ static void vhost_iommu_region_add(MemoryListener *listener,
|
||||||
|
Int128 end;
|
||||||
|
int iommu_idx;
|
||||||
|
IOMMUMemoryRegion *iommu_mr;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
if (!memory_region_is_iommu(section->mr)) {
|
||||||
|
return;
|
||||||
|
@@ -726,8 +727,16 @@ static void vhost_iommu_region_add(MemoryListener *listener,
|
||||||
|
iommu->iommu_offset = section->offset_within_address_space -
|
||||||
|
section->offset_within_region;
|
||||||
|
iommu->hdev = dev;
|
||||||
|
- memory_region_register_iommu_notifier(section->mr, &iommu->n,
|
||||||
|
- &error_fatal);
|
||||||
|
+ ret = memory_region_register_iommu_notifier(section->mr, &iommu->n, NULL);
|
||||||
|
+ if (ret) {
|
||||||
|
+ /*
|
||||||
|
+ * Some vIOMMUs do not support dev-iotlb yet. If so, try to use the
|
||||||
|
+ * UNMAP legacy message
|
||||||
|
+ */
|
||||||
|
+ iommu->n.notifier_flags = IOMMU_NOTIFIER_UNMAP;
|
||||||
|
+ memory_region_register_iommu_notifier(section->mr, &iommu->n,
|
||||||
|
+ &error_fatal);
|
||||||
|
+ }
|
||||||
|
QLIST_INSERT_HEAD(&dev->iommu_list, iommu, iommu_next);
|
||||||
|
/* TODO: can replay help performance here? */
|
||||||
|
}
|
||||||
|
diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
|
||||||
|
index cea8811295..65184f6e43 100644
|
||||||
|
--- a/hw/virtio/virtio-iommu.c
|
||||||
|
+++ b/hw/virtio/virtio-iommu.c
|
||||||
|
@@ -893,6 +893,11 @@ static int virtio_iommu_notify_flag_changed(IOMMUMemoryRegion *iommu_mr,
|
||||||
|
IOMMUNotifierFlag new,
|
||||||
|
Error **errp)
|
||||||
|
{
|
||||||
|
+ if (new & IOMMU_NOTIFIER_DEVIOTLB_UNMAP) {
|
||||||
|
+ error_setg(errp, "Virtio-iommu does not support dev-iotlb yet");
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (old == IOMMU_NOTIFIER_NONE) {
|
||||||
|
trace_virtio_iommu_notify_flag_add(iommu_mr->parent_obj.name);
|
||||||
|
} else if (new == IOMMU_NOTIFIER_NONE) {
|
||||||
|
--
|
||||||
|
2.18.4
|
||||||
|
|
@ -64,7 +64,7 @@ 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: 5.2.0
|
Version: 5.2.0
|
||||||
Release: 5%{?dist}
|
Release: 6%{?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
|
||||||
License: GPLv2 and GPLv2+ and CC-BY
|
License: GPLv2 and GPLv2+ and CC-BY
|
||||||
@ -155,6 +155,16 @@ Patch57: kvm-x86-cpu-Add-AVX512_FP16-cpu-feature.patch
|
|||||||
Patch58: kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch
|
Patch58: kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch
|
||||||
# For bz#1922170 - Enable vfio-ccw in AV
|
# For bz#1922170 - Enable vfio-ccw in AV
|
||||||
Patch59: kvm-config-enable-VFIO_CCW.patch
|
Patch59: kvm-config-enable-VFIO_CCW.patch
|
||||||
|
# For bz#1854811 - scsi-bus.c: use-after-free due to race between device unplug and I/O operation causes guest crash
|
||||||
|
Patch60: kvm-scsi-fix-device-removal-race-vs-IO-restart-callback-.patch
|
||||||
|
# For bz#1907264 - systemtap: invalid or missing conversion specifier at the trace event vhost_vdpa_set_log_base
|
||||||
|
Patch61: kvm-tracetool-also-strip-l-and-ll-from-systemtap-format-.patch
|
||||||
|
# For bz#1834152 - [aarch64] QEMU SMMUv3 device: Support range invalidation
|
||||||
|
Patch63: kvm-hw-arm-smmuv3-Fix-addr_mask-for-range-based-invalida.patch
|
||||||
|
# For bz#1925028 - vsmmuv3/vhost and virtio-iommu/vhost regression
|
||||||
|
Patch65: kvm-vhost-Unbreak-SMMU-and-virtio-iommu-on-dev-iotlb-sup.patch
|
||||||
|
# For bz#1902537 - The default fsfreeze-hook path from man page and qemu-ga --help command are different
|
||||||
|
Patch66: kvm-docs-set-CONFDIR-when-running-sphinx.patch
|
||||||
|
|
||||||
BuildRequires: wget
|
BuildRequires: wget
|
||||||
BuildRequires: rpm-build
|
BuildRequires: rpm-build
|
||||||
@ -284,6 +294,7 @@ hardware for a full system such as a PC and its associated peripherals.
|
|||||||
Summary: qemu-kvm core components
|
Summary: qemu-kvm core components
|
||||||
Requires: %{name}-common = %{epoch}:%{version}-%{release}
|
Requires: %{name}-common = %{epoch}:%{version}-%{release}
|
||||||
Requires: qemu-img = %{epoch}:%{version}-%{release}
|
Requires: qemu-img = %{epoch}:%{version}-%{release}
|
||||||
|
Recommends: qemu-kvm-docs
|
||||||
%ifarch %{ix86} x86_64
|
%ifarch %{ix86} x86_64
|
||||||
Requires: edk2-ovmf
|
Requires: edk2-ovmf
|
||||||
%endif
|
%endif
|
||||||
@ -327,6 +338,12 @@ qemu-kiwi is a version of qemu-kvm with a restricted set of features
|
|||||||
intended for use by specific applications.
|
intended for use by specific applications.
|
||||||
It's experimental and unsupported.
|
It's experimental and unsupported.
|
||||||
|
|
||||||
|
%package -n qemu-kvm-docs
|
||||||
|
Summary: qemu-kvm documentation
|
||||||
|
|
||||||
|
%description -n qemu-kvm-docs
|
||||||
|
qemu-kvm-docs provides documentation files regarding qemu-kvm.
|
||||||
|
|
||||||
%package -n qemu-img
|
%package -n qemu-img
|
||||||
Summary: QEMU command line tool for manipulating disk images
|
Summary: QEMU command line tool for manipulating disk images
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
@ -613,7 +630,7 @@ pushd %{qemu_kvm_build}
|
|||||||
--block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \
|
--block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \
|
||||||
--with-coroutine=ucontext \
|
--with-coroutine=ucontext \
|
||||||
--with-git=git \
|
--with-git=git \
|
||||||
--tls-priority=NORMAL \
|
--tls-priority=@QEMU,SYSTEM \
|
||||||
%{disable_everything} \
|
%{disable_everything} \
|
||||||
--enable-attr \
|
--enable-attr \
|
||||||
%ifarch %{ix86} x86_64
|
%ifarch %{ix86} x86_64
|
||||||
@ -744,7 +761,7 @@ find ../default-configs -name "*-rh-devices.mak" \
|
|||||||
--block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \
|
--block-drv-ro-whitelist=vmdk,vhdx,vpc,https,ssh \
|
||||||
--with-coroutine=ucontext \
|
--with-coroutine=ucontext \
|
||||||
--with-git=git \
|
--with-git=git \
|
||||||
--tls-priority=NORMAL \
|
--tls-priority=@QEMU,SYSTEM \
|
||||||
%{disable_everything} \
|
%{disable_everything} \
|
||||||
--enable-attr \
|
--enable-attr \
|
||||||
%ifarch %{ix86} x86_64
|
%ifarch %{ix86} x86_64
|
||||||
@ -1158,8 +1175,7 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
|
|||||||
%files
|
%files
|
||||||
# Deliberately empty
|
# Deliberately empty
|
||||||
|
|
||||||
|
%files -n qemu-kvm-docs
|
||||||
%files -n qemu-kvm-common
|
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%dir %{qemudocdir}
|
%dir %{qemudocdir}
|
||||||
%doc %{qemudocdir}/README.rst
|
%doc %{qemudocdir}/README.rst
|
||||||
@ -1173,6 +1189,9 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
|
|||||||
%doc %{qemudocdir}/system/*
|
%doc %{qemudocdir}/system/*
|
||||||
%doc %{qemudocdir}/tools/*
|
%doc %{qemudocdir}/tools/*
|
||||||
%doc %{qemudocdir}/user/*
|
%doc %{qemudocdir}/user/*
|
||||||
|
|
||||||
|
%files -n qemu-kvm-common
|
||||||
|
%defattr(-,root,root)
|
||||||
%{_mandir}/man7/qemu-qmp-ref.7*
|
%{_mandir}/man7/qemu-qmp-ref.7*
|
||||||
%{_mandir}/man7/qemu-cpu-models.7*
|
%{_mandir}/man7/qemu-cpu-models.7*
|
||||||
%{_bindir}/qemu-keymap
|
%{_bindir}/qemu-keymap
|
||||||
@ -1335,6 +1354,31 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 12 2021 Miroslav Rezanina <mrezanin@redhat.com> - 5.2.0-6.el8
|
||||||
|
- kvm-scsi-fix-device-removal-race-vs-IO-restart-callback-.patch [bz#1854811]
|
||||||
|
- kvm-tracetool-also-strip-l-and-ll-from-systemtap-format-.patch [bz#1907264]
|
||||||
|
- kvm-redhat-moving-all-documentation-files-to-qemu-kvm-do.patch [bz#1881170 bz#1924766]
|
||||||
|
- kvm-hw-arm-smmuv3-Fix-addr_mask-for-range-based-invalida.patch [bz#1834152]
|
||||||
|
- kvm-redhat-makes-qemu-respect-system-s-crypto-profile.patch [bz#1902219]
|
||||||
|
- kvm-vhost-Unbreak-SMMU-and-virtio-iommu-on-dev-iotlb-sup.patch [bz#1925028]
|
||||||
|
- kvm-docs-set-CONFDIR-when-running-sphinx.patch [bz#1902537]
|
||||||
|
- Resolves: bz#1854811
|
||||||
|
(scsi-bus.c: use-after-free due to race between device unplug and I/O operation causes guest crash)
|
||||||
|
- Resolves: bz#1907264
|
||||||
|
(systemtap: invalid or missing conversion specifier at the trace event vhost_vdpa_set_log_base)
|
||||||
|
- Resolves: bz#1881170
|
||||||
|
(split documentation from the qemu-kvm-core package to its own subpackage)
|
||||||
|
- Resolves: bz#1924766
|
||||||
|
(split documentation from the qemu-kvm-core package to its own subpackage [av-8.4.0])
|
||||||
|
- Resolves: bz#1834152
|
||||||
|
([aarch64] QEMU SMMUv3 device: Support range invalidation)
|
||||||
|
- Resolves: bz#1902219
|
||||||
|
(QEMU doesn't honour system crypto policies)
|
||||||
|
- Resolves: bz#1925028
|
||||||
|
(vsmmuv3/vhost and virtio-iommu/vhost regression)
|
||||||
|
- Resolves: bz#1902537
|
||||||
|
(The default fsfreeze-hook path from man page and qemu-ga --help command are different)
|
||||||
|
|
||||||
* Tue Feb 02 2021 Eduardo Lima (Etrunko) <elima@redhat.com> - 5.2.0-5.el8
|
* Tue Feb 02 2021 Eduardo Lima (Etrunko) <elima@redhat.com> - 5.2.0-5.el8
|
||||||
- kvm-spapr-Allow-memory-unplug-to-always-succeed.patch [bz#1914069]
|
- kvm-spapr-Allow-memory-unplug-to-always-succeed.patch [bz#1914069]
|
||||||
- kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch [bz#1914069]
|
- kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch [bz#1914069]
|
||||||
|
Loading…
Reference in New Issue
Block a user