This patch series adds a paravirtual file system passthrough mechanism to QEMU based on the 9P protocol. With the current implementation, all I/O is implemented in the VCPU thread. We've modified the protocol handlers so that we can support dispatch I/O in a thread pool. The actual thread pool implementation will be posted later
This patch set should work with any recent Linux kernel as virtio-9p has been supported for a few kernel releases now. Export dir is specified using the below Qemu option. -fsdev fstype,id=ID,path=path/to/share \ -device virtio-9p-pci,fsdev=ID,mount_tag=tag \ or -virtfs fstype,path=path/to/share,mount_tag=tag Only supported fstype currently is "local". mount_tag is used to identify the mount point in the kernel. This will be available in Linux kernel via /sys/devices/virtio-pci/virtio1/mount_tag file. Changes from V2: 1) Added new method for specifying export dir. This new method should be more flexible. 2) rebased to qemu master bedd2912c83b1a87a6bfe3f59a892fd65cda7084 Changes from V1: 1) fsstress test suite runs successfully with the patches. That should indicate patches are stable enough to be merged. 2) Added proper error handling to all posix_* calls. 3) Fixed code to follow Qemu coding style. 4) Other bug fixes most of which are folded back into the original patches 5) rebased to qemu master 0aef4261ac0ec9089ade0e3a92f986cb4ba7317e -aneesh