All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Cam Macdonell <cam@cs.ualberta.ca>
Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org,
	Anthony Liguori <anthony@codemonkey.ws>
Subject: Re: [PATCH v5 4/5] Inter-VM shared memory PCI device
Date: Wed, 12 May 2010 18:49:42 +0300	[thread overview]
Message-ID: <4BEACE16.9000206@redhat.com> (raw)
In-Reply-To: <AANLkTin8blulBd7ahK-Z1Z-pmLJIuydxeW3M-GAsZHuh@mail.gmail.com>

On 05/10/2010 07:48 PM, Cam Macdonell wrote:
> On Mon, May 10, 2010 at 10:40 AM, Avi Kivity<avi@redhat.com>  wrote:
>    
>> On 05/10/2010 06:41 PM, Cam Macdonell wrote:
>>      
>>>        
>>>> What would happen to any data written to the BAR before the the handshake
>>>> completed?  I think it would disappear.
>>>>
>>>>          
>>> But, the BAR isn't there until the handshake is completed.  Only after
>>> receiving the shared memory fd does my device call pci_register_bar()
>>> in the callback function.  So there may be a case with BAR2 (the
>>> shared memory BAR) missing during initialization.  FWIW, I haven't
>>> encountered this.
>>>
>>>        
>> Well, that violates PCI.  You can't have a PCI device with no BAR, then have
>> a BAR appear.  It may work since the BAR is registered a lot faster than the
>> BIOS is able to peek at it, but it's a race nevertheless.
>>      
> Agreed.  I'll get Anthony's idea up and running.  It seems that is the
> way forward.
>    

What, with the separate allocation and memcpy?  Or another one?

Why can't we complete initialization before exposing the card and BAR?  
Seems to be the simplest solution.

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: Cam Macdonell <cam@cs.ualberta.ca>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: [Qemu-devel] Re: [PATCH v5 4/5] Inter-VM shared memory PCI device
Date: Wed, 12 May 2010 18:49:42 +0300	[thread overview]
Message-ID: <4BEACE16.9000206@redhat.com> (raw)
In-Reply-To: <AANLkTin8blulBd7ahK-Z1Z-pmLJIuydxeW3M-GAsZHuh@mail.gmail.com>

On 05/10/2010 07:48 PM, Cam Macdonell wrote:
> On Mon, May 10, 2010 at 10:40 AM, Avi Kivity<avi@redhat.com>  wrote:
>    
>> On 05/10/2010 06:41 PM, Cam Macdonell wrote:
>>      
>>>        
>>>> What would happen to any data written to the BAR before the the handshake
>>>> completed?  I think it would disappear.
>>>>
>>>>          
>>> But, the BAR isn't there until the handshake is completed.  Only after
>>> receiving the shared memory fd does my device call pci_register_bar()
>>> in the callback function.  So there may be a case with BAR2 (the
>>> shared memory BAR) missing during initialization.  FWIW, I haven't
>>> encountered this.
>>>
>>>        
>> Well, that violates PCI.  You can't have a PCI device with no BAR, then have
>> a BAR appear.  It may work since the BAR is registered a lot faster than the
>> BIOS is able to peek at it, but it's a race nevertheless.
>>      
> Agreed.  I'll get Anthony's idea up and running.  It seems that is the
> way forward.
>    

What, with the separate allocation and memcpy?  Or another one?

Why can't we complete initialization before exposing the card and BAR?  
Seems to be the simplest solution.

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

  reply	other threads:[~2010-05-12 15:49 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
2010-05-11 14:53                                   ` [Qemu-devel] " 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 [this message]
2010-05-12 15:49                       ` 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=4BEACE16.9000206@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.