public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Igor Druzhinin <igor.druzhinin@citrix.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: <edk2-devel@lists.01.org>, <jordan.l.justen@intel.com>,
	<lersek@redhat.com>, <ard.biesheuvel@linaro.org>,
	<julien.grall@arm.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH RESEND 1/3] OvmfPkg/XenSupport: remove usage of prefetchable PCI host bridge aperture
Date: Thu, 14 Mar 2019 19:45:56 +0000	[thread overview]
Message-ID: <096a1987-a898-9896-8ffd-9fc8512e25f6@citrix.com> (raw)
In-Reply-To: <20190314174121.GB11621@perard.uk.xensource.com>

On 14/03/2019 17:41, Anthony PERARD wrote:
> Hi,
> 
> On Wed, Mar 06, 2019 at 12:40:54PM +0000, Igor Druzhinin wrote:
>> This aperture doesn't exist in OVMF and trying to use it causes
> 
> I'm trying to understand what you mean by writing "doesn't exist in
> OVMF". Are prefetchable BAR not handled by ScanForRootBridges() ?
> Or is it the emulation of the config space that isn't correct?
> Maybe QEMU should lies about a BAR been prefetchable?

The problem here is: hvmloader places BARs initially disregarding
prefetchable bit in an arbitrary order because essentially there is only
1 aperture for the host bridge in emulated system under Xen (and KVM as
well). In PcatPciRootBridgeParseBars() we construct apertures for high
level OVMF code by reading the BAR placement information after
hvmloader. It often appears that there are prefetchable and
non-prefetchable BARs coexist with each other and make prefetchable and
non-prefetchable apertures overlap. This eventually triggers an
assertion in high level OVMF code because that shouldn't happen.

OVMF for KVM is not using prefetchable BAR at all - see
PciHostBridgeGetRootBridges() in which it passes mNonExistAperture dummy
object to high level code. I think it's wrong to construct a
prefetchable aperture for Xen and this code should be removed as it's
done for QEMU-KVM. Do you think this patch needs to do that?

Igor


  reply	other threads:[~2019-03-14 19:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-06 12:40 [PATCH RESEND 0/3] Xen PCI passthrough fixes Igor Druzhinin
2019-03-06 12:40 ` [PATCH RESEND 1/3] OvmfPkg/XenSupport: remove usage of prefetchable PCI host bridge aperture Igor Druzhinin
2019-03-14 17:41   ` Anthony PERARD
2019-03-14 19:45     ` Igor Druzhinin [this message]
2019-03-19 14:03       ` Anthony PERARD
2019-03-20 11:15         ` Laszlo Ersek
     [not found]   ` <20190322082650.tk65vju74g4gt7vj@MacBook-Air-de-Roger.local>
2019-03-22  9:06     ` [Xen-devel] " Laszlo Ersek
     [not found]       ` <20190324035053.xs3yccnpmn5dy6cl@MacBook-Air-de-Roger.local>
2019-03-25 14:32         ` Igor Druzhinin
2019-03-06 12:40 ` [PATCH RESEND 2/3] OvmfPkg/XenSupport: use a correct PCI host bridge aperture for BAR64 Igor Druzhinin
2019-03-14 17:44   ` Anthony PERARD
2019-03-06 12:40 ` [PATCH RESEND 3/3] OvmfPkg/XenSupport: turn off address decoding before BAR sizing Igor Druzhinin
2019-03-06 13:22   ` Laszlo Ersek
2019-03-06 14:26     ` Igor Druzhinin
2019-03-06 17:39       ` Laszlo Ersek
2019-03-14 17:55   ` Anthony PERARD
2019-03-14 20:09     ` Igor Druzhinin

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-list 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=096a1987-a898-9896-8ffd-9fc8512e25f6@citrix.com \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox