All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Avi Kivity <avi@redhat.com>
Cc: Cam Macdonell <cam@cs.ualberta.ca>,
	qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [PATCH] Inter-VM shared memory PCI device
Date: Thu, 11 Mar 2010 15:32:52 +0100	[thread overview]
Message-ID: <201003111532.53022.arnd@arndb.de> (raw)
In-Reply-To: <4B98EB2D.4010606@redhat.com>

On Thursday 11 March 2010, Avi Kivity wrote:
> >> That would be much slower.  The current scheme allows for an
> >> ioeventfd/irqfd short circuit which allows one guest to interrupt
> >> another without involving their qemus at all.
> >>      
> > Yes, the serial line approach would be much slower, but my point
> > was that we can do signaling over "something else", which could
> > well be something building on irqfd.
> 
> Well, we could, but it seems to make things more complicated?  A card 
> with shared memory, and another card with an interrupt interconnect?

Yes, I agree that it's more complicated if you have a specific application
in mind that needs one of each, and most use cases that want shared memory
also need an interrupt mechanism, but it's not always the case:

- You could use ext2 with -o xip on a private mapping of a shared host file
in order to share the page cache. This does not need any interrupts.

- If you have more than two parties sharing the segment, there are different
ways to communicate, e.g. always send an interrupt to all others, or have
dedicated point-to-point connections. There is also some complexity in
trying to cover all possible cases in one driver.

I have to say that I also really like the idea of futex over shared memory,
which could potentially make this all a lot simpler. I don't know how this
would best be implemented on the host though.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Avi Kivity <avi@redhat.com>
Cc: Cam Macdonell <cam@cs.ualberta.ca>,
	qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: [Qemu-devel] Re: [PATCH] Inter-VM shared memory PCI device
Date: Thu, 11 Mar 2010 15:32:52 +0100	[thread overview]
Message-ID: <201003111532.53022.arnd@arndb.de> (raw)
In-Reply-To: <4B98EB2D.4010606@redhat.com>

On Thursday 11 March 2010, Avi Kivity wrote:
> >> That would be much slower.  The current scheme allows for an
> >> ioeventfd/irqfd short circuit which allows one guest to interrupt
> >> another without involving their qemus at all.
> >>      
> > Yes, the serial line approach would be much slower, but my point
> > was that we can do signaling over "something else", which could
> > well be something building on irqfd.
> 
> Well, we could, but it seems to make things more complicated?  A card 
> with shared memory, and another card with an interrupt interconnect?

Yes, I agree that it's more complicated if you have a specific application
in mind that needs one of each, and most use cases that want shared memory
also need an interrupt mechanism, but it's not always the case:

- You could use ext2 with -o xip on a private mapping of a shared host file
in order to share the page cache. This does not need any interrupts.

- If you have more than two parties sharing the segment, there are different
ways to communicate, e.g. always send an interrupt to all others, or have
dedicated point-to-point connections. There is also some complexity in
trying to cover all possible cases in one driver.

I have to say that I also really like the idea of futex over shared memory,
which could potentially make this all a lot simpler. I don't know how this
would best be implemented on the host though.

	Arnd

  reply	other threads:[~2010-03-11 14:32 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-05 23:52 [PATCH] Support adding a file to qemu's ram allocation Cam Macdonell
2010-03-05 23:52 ` [Qemu-devel] " Cam Macdonell
2010-03-05 23:52 ` [PATCH] Inter-VM shared memory PCI device Cam Macdonell
2010-03-05 23:52   ` [Qemu-devel] " Cam Macdonell
2010-03-07 22:53   ` Paul Brook
2010-03-08  1:45     ` Jamie Lokier
2010-03-08  1:45       ` Jamie Lokier
2010-03-08  9:48       ` Alexander Graf
2010-03-08  9:48         ` Alexander Graf
2010-03-08  9:54         ` Jamie Lokier
2010-03-08  9:54           ` Jamie Lokier
2010-03-08 10:57           ` Alexander Graf
2010-03-08 10:57             ` Alexander Graf
2010-03-09 21:41           ` Anthony Liguori
2010-03-09 21:41             ` Anthony Liguori
2010-03-08 13:04       ` Paul Brook
2010-03-08 13:04         ` Paul Brook
2010-03-09 19:00         ` Jamie Lokier
2010-03-09 19:00           ` Jamie Lokier
2010-03-08  9:52     ` Avi Kivity
2010-03-08  9:52       ` Avi Kivity
2010-03-08 13:03       ` Paul Brook
2010-03-08 13:03         ` Paul Brook
2010-03-08 13:16         ` Avi Kivity
2010-03-08 13:16           ` Avi Kivity
2010-03-09 20:11           ` Jamie Lokier
2010-03-09 20:11             ` Jamie Lokier
2010-03-09 21:44           ` Anthony Liguori
2010-03-09 21:44             ` [Qemu-devel] " Anthony Liguori
2010-03-10  9:25             ` Avi Kivity
2010-03-10  9:25               ` [Qemu-devel] " Avi Kivity
2010-03-10 17:13               ` Anthony Liguori
2010-03-10 17:13                 ` Anthony Liguori
2010-03-10 17:30                 ` Avi Kivity
2010-03-10 17:30                   ` Avi Kivity
2010-03-10 17:41                   ` Paul Brook
2010-03-10 17:41                     ` Paul Brook
2010-03-11  6:33                     ` Avi Kivity
2010-03-11  6:33                       ` Avi Kivity
2010-03-11 12:21                       ` Paul Brook
2010-03-11 12:21                         ` Paul Brook
2010-03-09 20:12         ` Jamie Lokier
2010-03-09 20:12           ` Jamie Lokier
2010-03-10  0:03           ` Paul Brook
2010-03-10  0:03             ` Paul Brook
2010-03-10  4:38             ` Cam Macdonell
2010-03-10  4:38               ` [Qemu-devel] " Cam Macdonell
2010-03-10  9:29               ` Avi Kivity
2010-03-10  9:29                 ` [Qemu-devel] " Avi Kivity
2010-03-10 11:13                 ` Paul Brook
2010-03-10 11:13                   ` Paul Brook
2010-03-11  3:10             ` Jamie Lokier
2010-03-11  3:10               ` Jamie Lokier
2010-03-11  4:37               ` Nick Piggin
2010-03-11  4:37                 ` Nick Piggin
2010-03-11 14:38                 ` malc
2010-03-11 14:38                   ` [Qemu-devel] " malc
2010-03-08  9:56   ` Avi Kivity
2010-03-08  9:56     ` [Qemu-devel] " Avi Kivity
2010-03-08 17:57     ` Cam Macdonell
2010-03-08 17:57       ` [Qemu-devel] " Cam Macdonell
2010-03-09 10:29       ` Avi Kivity
2010-03-09 10:29         ` [Qemu-devel] " Avi Kivity
     [not found]         ` <8286e4ee1003090724m1ef0b571g8b705a24e36e1753@mail.gmail.com>
2010-03-09 15:27           ` Cam Macdonell
2010-03-09 15:27             ` [Qemu-devel] " Cam Macdonell
2010-03-09 17:28             ` Avi Kivity
2010-03-09 17:28               ` [Qemu-devel] " Avi Kivity
2010-03-09 17:34               ` Anthony Liguori
2010-03-09 17:34                 ` [Qemu-devel] " Anthony Liguori
2010-03-09 18:34               ` Cam Macdonell
2010-03-09 18:34                 ` [Qemu-devel] " Cam Macdonell
2010-03-10  9:21                 ` Avi Kivity
2010-03-10  9:21                   ` [Qemu-devel] " Avi Kivity
2010-03-10 16:36                   ` Cam Macdonell
2010-03-10 16:36                     ` [Qemu-devel] " Cam Macdonell
2010-03-11  6:49                     ` Avi Kivity
2010-03-11  6:49                       ` [Qemu-devel] " Avi Kivity
2010-03-09 12:49       ` Arnd Bergmann
2010-03-09 12:49         ` [Qemu-devel] " Arnd Bergmann
2010-03-09 13:03         ` Avi Kivity
2010-03-09 13:03           ` [Qemu-devel] " Avi Kivity
2010-03-09 16:44           ` Cam Macdonell
2010-03-09 16:44             ` [Qemu-devel] " Cam Macdonell
2010-03-10 14:04             ` Arnd Bergmann
2010-03-10 14:04               ` [Qemu-devel] " Arnd Bergmann
2010-03-11  6:50               ` Avi Kivity
2010-03-11  6:50                 ` [Qemu-devel] " Avi Kivity
2010-03-11 12:57                 ` Arnd Bergmann
2010-03-11 12:57                   ` [Qemu-devel] " Arnd Bergmann
2010-03-11 13:07                   ` Avi Kivity
2010-03-11 13:07                     ` [Qemu-devel] " Avi Kivity
2010-03-11 14:32                     ` Arnd Bergmann [this message]
2010-03-11 14:32                       ` Arnd Bergmann
2010-03-08  9:53 ` [PATCH] Support adding a file to qemu's ram allocation Avi Kivity
2010-03-08  9:53   ` [Qemu-devel] " 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=201003111532.53022.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=avi@redhat.com \
    --cc=cam@cs.ualberta.ca \
    --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.