All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cam Macdonell <cam@cs.ualberta.ca>
To: Avi Kivity <avi@redhat.com>
Cc: "kvm@vger.kernel.org list" <kvm@vger.kernel.org>,
	Gregory Haskins <ghaskins@novell.com>
Subject: Re: [PATCH v2] Shared memory device with interrupt support
Date: Mon, 18 May 2009 10:50:30 -0600	[thread overview]
Message-ID: <4A1191D6.6090105@cs.ualberta.ca> (raw)
In-Reply-To: <4A1086E6.30405@redhat.com>

Avi Kivity wrote:
> Cam Macdonell wrote:
>>>
>>> If my understanding is correct both the VM's who wants to communicate 
>>> would gives this path in the command line with one of them specifying 
>>> as "server".
>>
>> Exactly, the one with the "server" in the parameter list will wait for 
>> a connection before booting.
> 
> hm, we may be able to eliminate the server from the fast path, at the 
> cost of some complexity.
> 
> When a guest connects to the server, the server creates an eventfd and 
> passes using SCM_RIGHTS to all other connected guests.  The server also 
> passes the eventfds of currently connected guests to the new guest.  
> From now on, the server does not participate in anything; when a quest 
> wants to send an interrupt to one or more other guests, its qemu just 
> writes to the eventfds() of the corresponding guests; their qemus will 
> inject the interrupt, without any server involvement.
> 
> Now, anyone who has been paying attention will have their alarms going 
> off at the word eventfd.  And yes, if the host supports irqfd, the 
> various qemus can associate those eventfds with an irq and pretty much 
> forget about them.  When a qemu triggers an irqfd, the interrupt will be 
> injected directly without the target qemu's involvement.
> 
> I like it.

That certainly sounds like the right direction for multi-VM setup.  I'm 
currently working on the shmem PCI card server discussed in the first 
patch's thread to support broadcast and multicast which will now be 
simpler if qemu handles the *casting.

My usual noob questions:  Do I need to run Greg's tree on the host for 
the necessary irqfd/eventfd suppport?  Are there any examples to work 
from aside from Greg's unit tests?

Thanks,
Cam


  parent reply	other threads:[~2009-05-18 16:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3D9CB4061D1EB3408D4A0B910433453C030BCA8892@inbmail01.lsi.com>
2009-05-16  3:30 ` [PATCH v2] Shared memory device with interrupt support Cam Macdonell
2009-05-17 21:51   ` Avi Kivity
2009-05-18 11:12     ` Gregory Haskins
2009-05-18 11:38       ` Avi Kivity
2009-05-18 16:50     ` Cam Macdonell [this message]
2009-05-18 17:19       ` Avi Kivity
2009-05-18 12:11   ` Kumar, Venkat
2009-05-18 16:20     ` Cam Macdonell
2009-05-19  3:52       ` Kumar, Venkat
2009-05-19 11:20         ` Jayaraman, Bhaskar
2009-05-19 11:35           ` Gregory Haskins
2009-05-07 16:16 Cam Macdonell
2009-05-16  2:45 ` Kumar, Venkat
2009-05-16  3:27   ` Cam Macdonell
2009-05-17 21:39     ` Avi Kivity
2009-05-18 18:54 ` Anthony Liguori
2009-05-19  4:31   ` Avi Kivity
2009-05-19 18:31     ` Anthony Liguori
2009-05-20  9:01       ` Avi Kivity
2009-05-20 13:45         ` Anthony Liguori
2009-05-20 14:26           ` Avi Kivity

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=4A1191D6.6090105@cs.ualberta.ca \
    --to=cam@cs.ualberta.ca \
    --cc=avi@redhat.com \
    --cc=ghaskins@novell.com \
    --cc=kvm@vger.kernel.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.