On 06.09.24 10:18, Paolo Bonzini wrote:
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).

Right, that's what I originally tried to achieve.


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.

Sounds good.

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.

Yes, only VIRTIO_MEM_SUPPORTED for now.


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


Thanks!

--
Cheers,

David / dhildenb


Reply via email to