Anthony Liguori wrote: > Thinking more about this, the difficulty is that poll() only has useful > semantics when you're dealing with a buffered stream of some sort. That > is, poll() is only really capable of asking whether there is data > pending in your read buffer. > > With 9P, you have to explicitly send a read request. You can implement > buffered IO by simply sending constant read requests such that there is > always one read request pending. I don't think it's useful to do this > in the kernel. In linux/Documentation/fs/9p.txt: nodevmap do not map special files - represent them as normal files. This can be used to share devices/named pipes/sockets between hosts. This functionality will be expanded in later versions. Does this mean it can provide the semantics of a named pipe or unix domain socket over 9p? Both would provide suitable poll() behaviour. A unix domain socket sounds especially useful, practically a drop in replacement for the current network vmchannel, without configuration downsides. But what about non-Linux guests? > Unfortunately, there's no way to do async IO in userspace that doesn't > suck so that would make this pretty difficult. We could use a thread > pool, but that's somewhat soul crushing and doesn't scale well. I think > that puts a requirement on v9fs to support linux-aio. It sounds like a weird mashup of unix regular file behaviour and unix socket behaviour. Poll doesn't work, aio might, but you can read/write like a stream? Very un-unix. Even if it can be made to work, that's sufficiently un-unix to reduce its general utility with existing scripting languages, existing monitoring programs etc. -- Jamie -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html