Re: [PATCH v2 5/8] qemu: Validate virtio-mem-ccw

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04.02.25 10:13, David Hildenbrand wrote:
On 03.02.25 10:55, Michal Privoznik wrote:
There are basically two differences between virtio-mem-ccw and
virtio-mem-pci. s390 doesn't allow mixing different page sizes
and there's no NUMA support in QEMU.

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
Reviewed-by: Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx>
---
   src/qemu/qemu_validate.c | 35 ++++++++++++++++++++++++++++++++---
   1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index c8ea8b63d2..76f2eafe49 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -5224,7 +5224,8 @@ qemuValidateDomainDeviceDefHub(virDomainHubDef *hub,
static int
-qemuValidateDomainDeviceDefMemory(virDomainMemoryDef *mem,
+qemuValidateDomainDeviceDefMemory(const virDomainMemoryDef *mem,
+                                  const virDomainDef *def,
                                     virQEMUCaps *qemuCaps)
   {
       virSGXCapability *sgxCaps;
@@ -5263,12 +5264,40 @@ qemuValidateDomainDeviceDefMemory(virDomainMemoryDef *mem,
           break;
case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM:
-        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI)) {
+        if ((mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
+             !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI)) ||
+            (mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW &&
+             !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW))) {
               virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                              _("virtio-mem isn't supported by this QEMU binary"));
               return -1;
           }
+ if (mem->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) {
+            /* virtio-mem-ccw has a few differences compared to virtio-mem-pci:
+             *
+             * 1) corresponding memory-backing-* object can't have a different
+             *    page size than the boot memory (see s390_machine_device_plug()
+             *    in qemu sources).


Hm, but that also applies to virtio-mem-pci on s390x.

To be precise: this is a KVM limitation, but we currently check for it
even under TCG. I should probably change that, to not apply for TCG, but
I'll have to look into the details if my memory is correct.

Ah, and now I reread my own comment:

"While only relevant for KVM, there is not really any use case for this with TCG, so we'll unconditionally reject it."

So we can just assume that we cannot mix page sizes with a s390x machine, independent of KVM vs. TCG.

--
Cheers,

David / dhildenb



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux