Gleb Natapov wrote:
On Sat, Jan 24, 2009 at 11:52:06AM -0600, Anthony Liguori wrote:
For use cases where you are exposing metadata from the host to the guest
this would be a very convenient approach indeed. As asked elsewhere in this
thread, my main thought would be about how well it suits a application that
wants a generic stream based connection between host & guest ?
Efficient integration into a poll(2) based event loop would be key to
that.
You mean for a very large number of files (determining which property
has changed?).
I think what Daniel means is that for file to have stream semantic it is
not enough to ignore offset on read/write, but poll also should behave
similar to how it behaves with char device fd. With regular files poll
will always report that fd is ready for I/O.
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.
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.
Regards,
Anthony Liguori
--
Gleb.
--
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