[PATCH v3 0/3] add support for QEMU 9pfs 'multidevs' option
Ján Tomko
jtomko at redhat.com
Mon Apr 6 11:59:39 UTC 2020
On a Monday in 2020, Christian Schoenebeck wrote:
>QEMU 4.2 added a new option 'multidevs' for 9pfs. The following patch adds
>support for this new option to libvirt.
>
>In short, what is this about: to distinguish files uniquely from each other
>in general, numeric file IDs are typically used for comparison, which in
>practice is the combination of a file's device ID and the file's inode
>number. Unfortunately 9p protocol's QID field used for this purpose,
>currently is too small to fit both the device ID and inode number in, which
>hence is a problem if one 9pfs export contains multiple devices and may
>thus lead to misbheaviours on guest (e.g. with SAMBA file servers) in that
>case due to potential file ID collisions.
>
>To mitigate this problem with 9pfs a 'multidevs' option was introduced in
>QEMU 4.2 for defining how to deal with this, e.g. multidevs=remap will cause
>QEMU's 9pfs implementation to remap all inodes from host side to different
>inode numbers on guest side in a way that prevents file ID collisions.
>
>NOTE: In the libvirt docs changes of this libvirt patch I simply assumed
>"since 6.2.0". So the final libvirt version number would need to be adjusted
>in that text if necessary.
>
>See QEMU discussion with following Message-ID for details:
>8a2ffe17fda3a86b9a5a437e1245276881f1e235.1567680121.git.qemu_oss at crudebyte.com
>
>v2->v3:
>
> * Rebased to master (SHA-1 e4bf03b8ff).
>
> * Auto sense QEMU capability for command line option fsdev.multidevs
> instead of checking for QEMU version 4.2. [patch 1]
>
> * Auto regenerated capabilities data for all archs (fixes capability
> test). [patch 1]
>
> * Added XML test. [patch 2]
>
> * Added argv test. [patch 3]
>
>Message-ID of v2: cover.1584723662.git.qemu_oss at crudebyte.com
>
>Christian Schoenebeck (3):
> qemu: capabilities: add QEMU_CAPS_VIRTFS_MULTIDEVS
> conf: add 'multidevs' option
> qemu: add support for 'multidevs' option
>
> docs/formatdomain.html.in | 40 ++++++++++++-
> docs/schemas/domaincommon.rng | 10 ++++
> src/conf/domain_conf.c | 29 ++++++++++
> src/conf/domain_conf.h | 13 +++++
> src/qemu/qemu_capabilities.c | 2 +
> src/qemu/qemu_capabilities.h | 1 +
> src/qemu/qemu_command.c | 7 +++
> src/qemu/qemu_domain.c | 12 ++++
> .../caps_4.2.0.aarch64.xml | 1 +
> .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 +
> .../caps_4.2.0.x86_64.xml | 1 +
> .../caps_5.0.0.aarch64.xml | 1 +
> .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
> .../caps_5.0.0.x86_64.xml | 1 +
> .../virtio-9p-multidevs.x86_64-latest.args | 45 +++++++++++++++
> .../qemuxml2argvdata/virtio-9p-multidevs.xml | 53 ++++++++++++++++++
> tests/qemuxml2argvtest.c | 2 +
> .../virtio-9p-multidevs.x86_64-latest.xml | 56 +++++++++++++++++++
> tests/qemuxml2xmltest.c | 2 +
> 19 files changed, 277 insertions(+), 1 deletion(-)
> create mode 100644 tests/qemuxml2argvdata/virtio-9p-multidevs.x86_64-latest.args
> create mode 100644 tests/qemuxml2argvdata/virtio-9p-multidevs.xml
> create mode 100644 tests/qemuxml2xmloutdata/virtio-9p-multidevs.x86_64-latest.xml
>
Reviewed-by: Ján Tomko <jtomko at redhat.com>
Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200406/061d403b/attachment-0001.sig>
More information about the libvir-list
mailing list