On Fri, Sep 6, 2024 at 9:40 AM David Hildenbrand <da...@redhat.com> wrote:
> On 06.09.24 09:37, Paolo Bonzini wrote:
> > Virtio memory devices rely on PCI BARs to expose the contents of memory.
> > Because of this they cannot be used with virtio-mmio or virtio-ccw.  In fact
>
> Guess what I am working on at this very the moment ;)

Ok, then hardcoding VIRTIO_PCI is not nice.

> > @@ -45,7 +46,7 @@ config VIRTIO_PMEM_SUPPORTED
> >   config VIRTIO_PMEM
> >       bool
> >       default y
> > -    depends on VIRTIO
> > +    depends on VIRTIO_PCI
>
> depends on VIRTIO_MD ?

No, because VIRTIO_MD is "default n" (and anyway you don't want to
enable it by hand in the --without-default-devices case).

But something like this could be a good alternative if you plan to
support virtio-ccw as well:

diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig
index aa63ff7fd41..253e7d3f90a 100644
--- a/hw/virtio/Kconfig
+++ b/hw/virtio/Kconfig
@@ -16,6 +16,7 @@ config VIRTIO_PCI
     default y if PCI_DEVICES
     depends on PCI
     select VIRTIO
+    select VIRTIO_MD_SUPPORTED

 config VIRTIO_MMIO
     bool
@@ -35,8 +36,14 @@ config VIRTIO_CRYPTO
     default y
     depends on VIRTIO

+# not all virtio transports support memory devices; if none does,
+# no need to include the code
+config VIRTIO_MD_SUPPORTED
+    bool
+
 config VIRTIO_MD
     bool
+    depends on VIRTIO_MD_SUPPORTED
     select MEM_DEVICE

 config VIRTIO_PMEM_SUPPORTED
@@ -46,6 +51,7 @@ config VIRTIO_PMEM
     bool
     default y
     depends on VIRTIO
+    depends on VIRTIO_MD_SUPPORTED
     depends on VIRTIO_PMEM_SUPPORTED
     select VIRTIO_MD

@@ -57,6 +63,7 @@ config VIRTIO_MEM
     default y
     depends on VIRTIO
     depends on LINUX
+    depends on VIRTIO_MD_SUPPORTED
     depends on VIRTIO_MEM_SUPPORTED
     select VIRTIO_MD


and then you just need to select VIRTIO_MD_SUPPORTED from VIRTIO_CCW.
In the case of PCI there is some board support code as well, which is
why VIRTIO_{MEM,PMEM}_SUPPORTED is selected from "config PC", but
perhaps in the s390 code you can select those three from VIRTIO_CCW as
well.

If this looks good I'll send it as v2.

Thanks,

Paolo


Reply via email to