All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Cam Macdonell <cam@cs.ualberta.ca>
Cc: Anthony Liguori <anthony@codemonkey.ws>,
	kvm@vger.kernel.org, qemu-devel@nongnu.org
Subject: Re: [PATCH v5 4/5] Inter-VM shared memory PCI device
Date: Tue, 11 May 2010 17:53:04 +0300	[thread overview]
Message-ID: <4BE96F50.1040506@redhat.com> (raw)
In-Reply-To: <AANLkTilesGTWMgWLTfIqgNVqYSLQi4qGnvBwb7O5I1AJ@mail.gmail.com>

On 05/11/2010 05:17 PM, Cam Macdonell wrote:
>
>> The master is the shared memory area.  It's a completely separate entity
>> that is represented by the backing file (or shared memory server handing out
>> the fd to mmap).  It can exists independently of any guest.
>>      
> I think the master/peer idea would be necessary if we were sharing
> guest memory (sharing guest A's memory with guest B).  Then if the
> master (guest A) dies, perhaps something needs to happen to preserve
> the memory contents.

Definitely.  But we aren't...

>    But since we're sharing host memory, the
> applications in the guests can race to determine the master by
> grabbing a lock at offset 0 or by using lowest VM ID.
>
> Looking at it another way, it is the applications using shared memory
> that may or may not need a master, the Qemu processes don't need the
> concept of a master since the memory belongs to the host.
>    

Exactly.  Furthermore, even in a master/slave relationship, there will 
be different masters for different sub-areas, it would be a pity to 
expose all this in the hardware abstraction.  This way we have an 
external device, and PCI HBAs which connect to it - just like a 
multi-tailed SCSI disk.


-- 
error compiling committee.c: too many arguments to function


WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: Cam Macdonell <cam@cs.ualberta.ca>
Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH v5 4/5] Inter-VM shared memory PCI device
Date: Tue, 11 May 2010 17:53:04 +0300	[thread overview]
Message-ID: <4BE96F50.1040506@redhat.com> (raw)
In-Reply-To: <AANLkTilesGTWMgWLTfIqgNVqYSLQi4qGnvBwb7O5I1AJ@mail.gmail.com>

On 05/11/2010 05:17 PM, Cam Macdonell wrote:
>
>> The master is the shared memory area.  It's a completely separate entity
>> that is represented by the backing file (or shared memory server handing out
>> the fd to mmap).  It can exists independently of any guest.
>>      
> I think the master/peer idea would be necessary if we were sharing
> guest memory (sharing guest A's memory with guest B).  Then if the
> master (guest A) dies, perhaps something needs to happen to preserve
> the memory contents.

Definitely.  But we aren't...

>    But since we're sharing host memory, the
> applications in the guests can race to determine the master by
> grabbing a lock at offset 0 or by using lowest VM ID.
>
> Looking at it another way, it is the applications using shared memory
> that may or may not need a master, the Qemu processes don't need the
> concept of a master since the memory belongs to the host.
>    

Exactly.  Furthermore, even in a master/slave relationship, there will 
be different masters for different sub-areas, it would be a pity to 
expose all this in the hardware abstraction.  This way we have an 
external device, and PCI HBAs which connect to it - just like a 
multi-tailed SCSI disk.


-- 
error compiling committee.c: too many arguments to function

  reply	other threads:[~2010-05-11 14:53 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-21 17:53 [PATCH v5 0/5] PCI Shared Memory device Cam Macdonell
2010-04-21 17:53 ` [Qemu-devel] " Cam Macdonell
2010-04-21 17:53 ` [PATCH v5 1/5] Device specification for shared memory PCI device Cam Macdonell
2010-04-21 17:53   ` [Qemu-devel] " Cam Macdonell
2010-04-21 17:53   ` [PATCH v5 2/5] Support adding a file to qemu's ram allocation Cam Macdonell
2010-04-21 17:53     ` [Qemu-devel] " Cam Macdonell
2010-04-21 17:53     ` [PATCH v5 3/5] Add functions for assigning ioeventfd and irqfds Cam Macdonell
2010-04-21 17:53       ` [Qemu-devel] " Cam Macdonell
2010-04-21 17:53       ` [PATCH v5 4/5] Inter-VM shared memory PCI device Cam Macdonell
2010-04-21 17:53         ` [Qemu-devel] " Cam Macdonell
2010-04-21 18:00         ` [PATCH v5 5/5] shared memory server for inter-VM shared memory Cam Macdonell
2010-04-21 18:00           ` [Qemu-devel] " Cam Macdonell
2010-05-05 16:57         ` [PATCH v5 4/5] RESEND: Inter-VM shared memory PCI device Cam Macdonell
2010-05-05 16:57           ` [Qemu-devel] " Cam Macdonell
2010-05-06 17:32         ` [PATCH v5 4/5] " Anthony Liguori
2010-05-06 17:32           ` [Qemu-devel] " Anthony Liguori
2010-05-06 17:59           ` Cam Macdonell
2010-05-06 17:59             ` [Qemu-devel] " Cam Macdonell
2010-05-10 11:59         ` Avi Kivity
2010-05-10 11:59           ` [Qemu-devel] " Avi Kivity
2010-05-10 15:22           ` Cam Macdonell
2010-05-10 15:22             ` [Qemu-devel] " Cam Macdonell
2010-05-10 15:28             ` Avi Kivity
2010-05-10 15:28               ` [Qemu-devel] " Avi Kivity
2010-05-10 15:38               ` Anthony Liguori
2010-05-10 15:38                 ` [Qemu-devel] " Anthony Liguori
2010-05-10 16:20                 ` Cam Macdonell
2010-05-10 16:20                   ` [Qemu-devel] " Cam Macdonell
2010-05-10 16:52                   ` Anthony Liguori
2010-05-10 16:52                     ` [Qemu-devel] " Anthony Liguori
2010-05-18 16:58                     ` Cam Macdonell
2010-05-18 16:58                       ` [Qemu-devel] " Cam Macdonell
2010-05-18 17:27                       ` Avi Kivity
2010-05-18 17:27                         ` [Qemu-devel] " Avi Kivity
2010-05-10 16:59                 ` Avi Kivity
2010-05-10 16:59                   ` [Qemu-devel] " Avi Kivity
2010-05-10 17:25                   ` Anthony Liguori
2010-05-10 17:25                     ` [Qemu-devel] " Anthony Liguori
2010-05-10 17:43                     ` Cam Macdonell
2010-05-10 17:43                       ` [Qemu-devel] " Cam Macdonell
2010-05-10 17:52                       ` Anthony Liguori
2010-05-10 17:52                         ` [Qemu-devel] " Anthony Liguori
2010-05-10 18:01                         ` Cam Macdonell
2010-05-10 18:01                           ` [Qemu-devel] " Cam Macdonell
2010-05-11  7:59                         ` Avi Kivity
2010-05-11  7:59                           ` [Qemu-devel] " Avi Kivity
2010-05-11 13:10                           ` Anthony Liguori
2010-05-11 13:10                             ` [Qemu-devel] " Anthony Liguori
2010-05-11 14:03                             ` Avi Kivity
2010-05-11 14:03                               ` [Qemu-devel] " Avi Kivity
2010-05-11 14:17                               ` Cam Macdonell
2010-05-11 14:17                                 ` [Qemu-devel] " Cam Macdonell
2010-05-11 14:53                                 ` Avi Kivity [this message]
2010-05-11 14:53                                   ` Avi Kivity
2010-05-11 15:51                                   ` Anthony Liguori
2010-05-11 15:51                                     ` [Qemu-devel] " Anthony Liguori
2010-05-11 16:39                                     ` Cam Macdonell
2010-05-11 16:39                                       ` [Qemu-devel] " Cam Macdonell
2010-05-11 17:05                                       ` Anthony Liguori
2010-05-11 17:05                                         ` [Qemu-devel] " Anthony Liguori
2010-05-11 17:50                                         ` Cam Macdonell
2010-05-11 17:50                                           ` [Qemu-devel] " Cam Macdonell
2010-05-11 18:13                                         ` Avi Kivity
2010-05-11 18:13                                           ` [Qemu-devel] " Avi Kivity
2010-05-12 15:32                                           ` Cam Macdonell
2010-05-12 15:32                                             ` [Qemu-devel] " Cam Macdonell
2010-05-12 15:48                                             ` Avi Kivity
2010-05-12 15:48                                               ` [Qemu-devel] " Avi Kivity
2010-05-11 18:09                                     ` Avi Kivity
2010-05-11 18:09                                       ` [Qemu-devel] " Avi Kivity
2010-05-11  7:55                     ` Avi Kivity
2010-05-11  7:55                       ` [Qemu-devel] " Avi Kivity
2010-05-10 15:41               ` Cam Macdonell
2010-05-10 15:41                 ` [Qemu-devel] " Cam Macdonell
2010-05-10 16:40                 ` Avi Kivity
2010-05-10 16:40                   ` [Qemu-devel] " Avi Kivity
2010-05-10 16:48                   ` Cam Macdonell
2010-05-10 16:48                     ` [Qemu-devel] " Cam Macdonell
2010-05-12 15:49                     ` Avi Kivity
2010-05-12 15:49                       ` [Qemu-devel] " Avi Kivity
2010-05-12 16:14                       ` Cam Macdonell
2010-05-12 16:14                         ` [Qemu-devel] " Cam Macdonell
2010-05-12 16:45                         ` Avi Kivity
2010-05-12 16:45                           ` [Qemu-devel] " Avi Kivity
2010-05-10 23:17           ` Cam Macdonell
2010-05-10 23:17             ` [Qemu-devel] " Cam Macdonell
2010-05-11  8:03             ` Avi Kivity
2010-05-11  8:03               ` [Qemu-devel] " Avi Kivity
2010-05-13 21:10           ` Cam Macdonell
2010-05-13 21:10             ` [Qemu-devel] " Cam Macdonell
2010-05-15  6:05             ` Avi Kivity
2010-05-15  6:05               ` [Qemu-devel] " Avi Kivity
2010-05-10 10:43       ` [PATCH v5 3/5] Add functions for assigning ioeventfd and irqfds Avi Kivity
2010-05-10 10:43         ` [Qemu-devel] " Avi Kivity
2010-05-10 15:13         ` Cam Macdonell
2010-05-10 15:13           ` [Qemu-devel] " Cam Macdonell
2010-05-10 15:17           ` Avi Kivity
2010-05-10 15:17             ` [Qemu-devel] " Avi Kivity
2010-05-10 10:39     ` [PATCH v5 2/5] Support adding a file to qemu's ram allocation Avi Kivity
2010-05-10 10:39       ` [Qemu-devel] " Avi Kivity
2010-05-10 15:32       ` Cam Macdonell
2010-05-10 15:32         ` [Qemu-devel] " Cam Macdonell

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=4BE96F50.1040506@redhat.com \
    --to=avi@redhat.com \
    --cc=anthony@codemonkey.ws \
    --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.