On Tue, 19 Dec 2017 13:41:12 +0800 sochin.jiang <sochin.ji...@huawei.com> wrote:
> Hi, guys. > > I'm looking for the hot-plug/unplug features of virtio-9p device > recently, and found there's a lack of support. > > I am wondering why ? Is there a reason. Actually, I write a qmp command > to support fsdev_add, then a device_add qmp will > > successfully add a virtio-9p device(just like virtio-blk). > > Whether there is some concerns that we haven't support this ? hope for a > reply, thanks. > > > sochin. > Hi Sochin, I've just discovered this mail by chance. Please note I'm the only active maintainer for virtio-9p. You really should check the content of MAINTAINERS and Cc the appropriate people. :) Now, back to your question. Yes, there's only some partial support for hot-plug/unplug. Mostly because nobody cared to work on it I guess. So, indeed, we don't have fsdev_add/fsdev_del, ie, we can only rely on shared directories specified on the QEMU command line. On the virtio-9p device side, hotplug is supported, ie, device_add virtio-9p works as expected. Hot-unplug is different as it requires some coordination with the guest. The current status is that it requires the 9p shared directory to be unmounted in the guest: if you do device_del while the directory is mounted in a linux guest, you'll get these messages in the guest syslog: kernel:9pnet_virtio virtio2: p9_virtio_remove: waiting for device in use. If the 9p directory is unmounted at some point, then the hot unplug sequence will eventually succeed. But this shouldn't be done like this: the guest should cancel inflight requests and cause any new I/O requests in the guest to fail right away. I have a tentative patch for the linux driver I can share if you want. Cheers, -- Greg