All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Alexander Graf <agraf@suse.de>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH] Enable non page boundary BAR device assignment
Date: Thu, 10 Dec 2009 12:35:05 +0200	[thread overview]
Message-ID: <4B20CED9.3090908@redhat.com> (raw)
In-Reply-To: <D656731F-F5D3-481E-82DD-756443A03860@suse.de>

On 12/09/2009 11:06 PM, Alexander Graf wrote:
>
> Am 09.12.2009 um 21:49 schrieb "Michael S. Tsirkin" <mst@redhat.com>:
>
>> On Wed, Dec 09, 2009 at 06:38:54PM +0100, Alexander Graf wrote:
>>> While trying to get device passthrough working with an emulex hba, kvm
>>> refused to pass it through because it has a BAR of 256 bytes:
>>>
>>>        Region 0: Memory at d2100000 (64-bit, non-prefetchable) 
>>> [size=4K]
>>>        Region 2: Memory at d2101000 (64-bit, non-prefetchable) 
>>> [size=256]
>>>        Region 4: I/O ports at b100 [size=256]
>>>
>>> Since the page boundary is an arbitrary optimization to allow 1:1 
>>> mapping of
>>> physical to virtual addresses, we can still take the old MMIO 
>>> callback route.
>>>
>>> So let's add a second code path that allows for size & 0xFFF != 0 
>>> sized regions
>>> by looping it through userspace.
>>>
>>> I verified that it works by passing through an e1000 with this 
>>> additional patch
>>> applied and the card acted the same way it did without this patch:
>>>
>>>             map_func = assigned_dev_iomem_map;
>>> -            if (cur_region->size & 0xFFF) {
>>> +            if (i != PCI_ROM_SLOT){
>>>                 fprintf(stderr, "PCI region %d at address 0x%llx "
>>>
>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>
>> Good idea.
>>
>> One thing I am concerned with, is that some users might
>> see performance degradation and not see the error message.
>> Maybe we can have a flag to optionally fail unless
>> passthrough can be fast? I'm not really sure it's worth it
>> to add such a flag though - what do others think?
>
> It only kicks in on small BARs which are usually not _that_ 
> performance critical. We're mostly talking about ack and status bits.
>

Well, ack and status are pretty important if accessed every interrupt.

> Also not failing > failing IMHO :). Even if it's not as fast as native.

Yes.

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


  reply	other threads:[~2009-12-10 10:35 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-09 17:38 [PATCH] Enable non page boundary BAR device assignment Alexander Graf
2009-12-09 20:49 ` Michael S. Tsirkin
2009-12-09 21:06   ` Alexander Graf
2009-12-10 10:35     ` Avi Kivity [this message]
2009-12-10  5:16 ` Muli Ben-Yehuda
2009-12-10  9:35   ` Alexander Graf
2009-12-10 10:21     ` Muli Ben-Yehuda
2009-12-10  9:43   ` Michael S. Tsirkin
2009-12-10  9:52     ` Alexander Graf
2009-12-10 10:08       ` Alexander Graf
2009-12-10 10:27         ` Michael S. Tsirkin
2009-12-10 10:31           ` Alexander Graf
2009-12-10 10:42             ` Michael S. Tsirkin
2009-12-10 10:23       ` Muli Ben-Yehuda
2009-12-10 10:31         ` Alexander Graf
2009-12-10 10:37           ` Muli Ben-Yehuda
2009-12-10 10:56             ` Michael S. Tsirkin
2009-12-10 11:09               ` Alexander Graf
2009-12-10 11:21                 ` Michael S. Tsirkin
2009-12-10 12:12                   ` Gleb Natapov
2009-12-10 11:28               ` Muli Ben-Yehuda
2009-12-10 11:34                 ` Alexander Graf
2009-12-10 11:46                   ` Michael S. Tsirkin
2009-12-10 11:37                 ` Michael S. Tsirkin
  -- strict thread matches above, loose matches on Subject: below --
2009-12-10 23:06 Alexander Graf
2009-12-11 11:05 ` Michael S. Tsirkin
2009-12-15 18:16   ` Alexander Graf
2009-12-15 18:20     ` Michael S. Tsirkin
2009-12-15 18:24       ` Alexander Graf
2009-12-16 20:12         ` Muli Ben-Yehuda

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=4B20CED9.3090908@redhat.com \
    --to=avi@redhat.com \
    --cc=agraf@suse.de \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    /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.