qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Gleb Natapov <gleb@redhat.com>
Cc: Eric Van Hensbergen <ericvanhensbergen@us.ibm.com>,
	Chris Wright <chrisw@redhat.com>, kvm-devel <kvm@vger.kernel.org>,
	Dor Laor <dlaor@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Avi Kivity <avi@redhat.com>
Subject: [Qemu-devel] Re: A new direction for vmchannel?
Date: Sat, 24 Jan 2009 13:30:23 -0600	[thread overview]
Message-ID: <497B6C4F.1040803@codemonkey.ws> (raw)
In-Reply-To: <20090124183912.GA7900@redhat.com>

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.
>   

  parent reply	other threads:[~2009-01-24 19:30 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-23 14:45 [Qemu-devel] A new direction for vmchannel? Anthony Liguori
2009-01-23 17:12 ` [Qemu-devel] " Chris Wright
2009-01-23 17:37   ` Anthony Liguori
2009-01-23 20:43 ` Gleb Natapov
2009-01-23 20:58   ` Anthony Liguori
2009-01-24  0:02     ` Dor Laor
2009-01-24 10:22       ` Alexander Graf
2009-01-24 22:28         ` Dor Laor
2009-01-24 17:19 ` Daniel P. Berrange
2009-01-24 17:52   ` Anthony Liguori
2009-01-24 18:39     ` Gleb Natapov
2009-01-24 18:47       ` Anthony Liguori
2009-01-24 19:30       ` Anthony Liguori [this message]
2009-01-24 21:00         ` Jamie Lokier
2009-01-24 21:22           ` Anthony Liguori
2009-01-25 14:16     ` Daniel P. Berrange
2009-01-25 17:58       ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=497B6C4F.1040803@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=chrisw@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=ericvanhensbergen@us.ibm.com \
    --cc=gleb@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).