> Well, it's simliar to qxl vs. qxl-vga. It's not
qxl,vga={on,off} and
> libvirt has no problems to deal with that ...
>
> Another more technical reason is (again) hotplug. ramfb needs an fw_cfg
> entry for configuration, and fw_cfg entries can't be hotplugged. So
> hotplugging vfio-pci with ramfb=on isn't going to fly. So we need a
> separate device with hotplug turned off.
Well if that's not supposed to work ever, libvirt's hotplug code could format
the following FWIW:
"-device vfio-pci [opts],ramfb=off"
As such, new device wouldn't be that of an issue for libvirt if vfio-pci and
vfio-pci-ramfb are back to back compatible with all the device options that are
available for vfio-pci (I mean in terms of using an mdev). Because in that
case, what libvirt could do is to look whether we're supposed to turn on the
display, if so, then we need support for this in capabilities to query and then
we could prefer this new device over the "legacy" vfio-pci one. However, if we
expect a case where QEMU would succeed to start with an mdev mapped to this
new ramfb device but not with vfio-pci, then that's an issue.
vfio-pci and vfio-pci-ramfb are identical, except for the later having a
boot display (with display=on), and vfio-pci-ramfb not being
hotplugable. So, yes, all pcu/mdev devices should work with both
vfio-pci variants.
But I'm still curious about the ramfb=off possibility I asked
above
for hotplug nonetheless.
Well, the problem is introspection. qemu can report via qmp whenever a
specific device supports hotplug. A device which can both be
hot-pluggable or not hot-pluggable depending on some condition is a
problem here ...
cheers,
Gerd