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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html