All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>, Dor Laor <dlaor@redhat.com>,
	Avi Kivity <avi@redhat.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Eric Van Hensbergen <ericvanhensbergen@us.ibm.com>,
	kvm-devel <kvm@vger.kernel.org>, Chris Wright <chrisw@redhat.com>
Subject: Re: A new direction for vmchannel?
Date: Sun, 25 Jan 2009 11:58:01 -0600	[thread overview]
Message-ID: <497CA829.5050105@codemonkey.ws> (raw)
In-Reply-To: <20090125141657.GA30222@redhat.com>

Daniel P. Berrange wrote:
> On Sat, Jan 24, 2009 at 11:52:06AM -0600, Anthony Liguori wrote:
>   
>>> Regular
>>> files don't offer that kind of ability ordinarily, and not clear whether 
>>> fifo's would be provided for in p9fs between host/guest ?
>>>  
>>>       
>> I'm going to put together a patch this weekend and I'll include a 
>> streaming example.  Basically, you just ignore the file offset and 
>> read/write to the file to your heart's content.
>>     
>
> Basically my use case would be that you have an existing application
> that supports UNIX domain sockets, and / or TCP sockets, and you wish
> to also have it run acros the host <-> guest channel. Although we're
> not using sockets here, being able to easily integrate into an app 
> written around a sockets model is the high level goal.
>   

It would be pretty trivial to have a small guest daemon that runs and 
makes a file system stream available as a unix socket.  For instance, 
you would have:

/qemufs/org/libvirt/qemud/stream0

The daemon would create a unix socket, 
/qemufs/org/libvirt/qemud/stream0.sock, and would spawn a thread that 
constantly read from /qemufs/org/libvirt/qemud/stream0 providing the 
data in the stream0.sock's buffer.  I think that's a pretty reasonable 
compromise if that interface is strongly required.

Maybe even just a library to provide that level of functionality?  So 
you could have a function that was essentially 
vmc_open_as_stream("/org/libvirt/qemud/stream0") and the library would 
spawn a thread and create a unix domain socketpair() and return the 
appropriate end.  That eliminates the need to have a daemon running.

Regards,

Anthony Liguori

Regards,

Anthony Liguori

> Daniel
>   


WARNING: multiple messages have this Message-ID (diff)
From: Anthony Liguori <anthony@codemonkey.ws>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Eric Van Hensbergen <ericvanhensbergen@us.ibm.com>,
	Chris Wright <chrisw@redhat.com>, Gleb Natapov <gleb@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: Sun, 25 Jan 2009 11:58:01 -0600	[thread overview]
Message-ID: <497CA829.5050105@codemonkey.ws> (raw)
In-Reply-To: <20090125141657.GA30222@redhat.com>

Daniel P. Berrange wrote:
> On Sat, Jan 24, 2009 at 11:52:06AM -0600, Anthony Liguori wrote:
>   
>>> Regular
>>> files don't offer that kind of ability ordinarily, and not clear whether 
>>> fifo's would be provided for in p9fs between host/guest ?
>>>  
>>>       
>> I'm going to put together a patch this weekend and I'll include a 
>> streaming example.  Basically, you just ignore the file offset and 
>> read/write to the file to your heart's content.
>>     
>
> Basically my use case would be that you have an existing application
> that supports UNIX domain sockets, and / or TCP sockets, and you wish
> to also have it run acros the host <-> guest channel. Although we're
> not using sockets here, being able to easily integrate into an app 
> written around a sockets model is the high level goal.
>   

It would be pretty trivial to have a small guest daemon that runs and 
makes a file system stream available as a unix socket.  For instance, 
you would have:

/qemufs/org/libvirt/qemud/stream0

The daemon would create a unix socket, 
/qemufs/org/libvirt/qemud/stream0.sock, and would spawn a thread that 
constantly read from /qemufs/org/libvirt/qemud/stream0 providing the 
data in the stream0.sock's buffer.  I think that's a pretty reasonable 
compromise if that interface is strongly required.

Maybe even just a library to provide that level of functionality?  So 
you could have a function that was essentially 
vmc_open_as_stream("/org/libvirt/qemud/stream0") and the library would 
spawn a thread and create a unix domain socketpair() and return the 
appropriate end.  That eliminates the need to have a daemon running.

Regards,

Anthony Liguori

Regards,

Anthony Liguori

> Daniel
>   

  reply	other threads:[~2009-01-25 17:58 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-23 14:45 A new direction for vmchannel? Anthony Liguori
2009-01-23 14:45 ` [Qemu-devel] " Anthony Liguori
2009-01-23 17:12 ` Chris Wright
2009-01-23 17:12   ` [Qemu-devel] " Chris Wright
2009-01-23 17:37   ` Anthony Liguori
2009-01-23 17:37     ` [Qemu-devel] " Anthony Liguori
2009-01-23 20:43 ` Gleb Natapov
2009-01-23 20:43   ` [Qemu-devel] " Gleb Natapov
2009-01-23 20:58   ` Anthony Liguori
2009-01-23 20:58     ` [Qemu-devel] " Anthony Liguori
2009-01-24  0:02     ` Dor Laor
2009-01-24  0:02       ` Dor Laor
2009-01-24 10:22       ` Alexander Graf
2009-01-24 10:22         ` Alexander Graf
2009-01-24 22:28         ` Dor Laor
2009-01-24 22:28           ` Dor Laor
2009-01-24 17:19 ` Daniel P. Berrange
2009-01-24 17:19   ` [Qemu-devel] " Daniel P. Berrange
2009-01-24 17:52   ` Anthony Liguori
2009-01-24 17:52     ` [Qemu-devel] " Anthony Liguori
2009-01-24 18:39     ` Gleb Natapov
2009-01-24 18:39       ` [Qemu-devel] " Gleb Natapov
2009-01-24 18:47       ` Anthony Liguori
2009-01-24 18:47         ` [Qemu-devel] " Anthony Liguori
2009-01-24 19:30       ` Anthony Liguori
2009-01-24 19:30         ` [Qemu-devel] " Anthony Liguori
2009-01-24 21:00         ` Jamie Lokier
2009-01-24 21:00           ` Jamie Lokier
2009-01-24 21:22           ` Anthony Liguori
2009-01-24 21:22             ` Anthony Liguori
2009-01-25 14:16     ` Daniel P. Berrange
2009-01-25 14:16       ` [Qemu-devel] " Daniel P. Berrange
2009-01-25 17:58       ` Anthony Liguori [this message]
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=497CA829.5050105@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=berrange@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.