On 01/18/2019 06:44 AM, Daniel P. Berrangé wrote:
On Thu, Jan 17, 2019 at 12:52:37PM -0500, Cole Robinson wrote:
> Add <filesystem> model handling for virtio transitional devices. Ex:
>
> <filesystem type='mount' model='virtio-transitional'>
> ...
> </filesystem
>
> * "virtio-transitional" maps to qemu
"virtio-9p-pci-transitional"
> * "virtio-non-transitional" maps to qemu
"virtio-9p-pci-non-transitional"
For QEMU the <filesystem> element currently implies the 9p filesystem
passthrough impl.
We already have a need to reuse it for USB-MTP filesystem sharing,
and quite soon we'll have to support virtio-fs too. The virtio-fs
module is essentially fuse-over-virtio IIUC. In fact I wonder why
we're not just calling that device virtio-fuse to make it explicit !
Anyway the point is that model=virtio-transitional is potentially
ambiguous, depending on how we intend to deal with this.
I was at first thinking of model="virtio-9p|virtio-fs|usb-mtp"
to deal with the existing issue, but you're proposing using model
already.
I'm a little mixed about how to best dovetail with the transitional
stuff. We could use 'model' stuff but expand it:
virtio-9p
virtio-9p-transitional
virtio-9p-non-transitional
virtio-fs
usb-mtp
IIUC, we don't need a -transitional/-non-transitional variant for
virtio-fs since it will be a modern device only - same as with
virtio-gpu.
Or we could do things different and invert something like a 'protocol'
concept for the filesystem.
<filesystem type='mount'>
<target dir="foo" protocol="9p|mtp|fuse"/>
</filesystem>
The 9p|mtp|fuse is certainly more generalized, but I think it's helpful
for self documenting purposes to have virtio-fs somewhere in the XML, if
that's what the feature will commonly be known as. Users may not even
realize virtio-fs is using fuse, leading to ask questions about how to
enable virtio-fs or if it's enabled in their XML. Makes me think of the
ich6/ich9 vs hda naming... the former is technically more correct and
follows qemu naming, yet I've had a dozen questions over the years about
where the libvirt HDA option is.
I'll aim for the model=virtio-9p-transitional for the next round unless
somebody yells...
- Cole