From: Robert Hancock <hancockrwd@gmail.com>
To: Avi Kivity <avi@redhat.com>
Cc: Chris Wright <chrisw@redhat.com>,
Cam Macdonell <cam@cs.ualberta.ca>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [Qemu-devel] ACPI error when mapping a 2GB BAR w/ 4GB of RAM
Date: Tue, 21 Sep 2010 19:19:12 -0600 [thread overview]
Message-ID: <4C995990.4060602@gmail.com> (raw)
In-Reply-To: <4C96452F.8090802@redhat.com>
On 09/19/2010 11:15 AM, Avi Kivity wrote:
> On 09/17/2010 10:00 PM, Cam Macdonell wrote:
>> After fixing the resource_size_t return value with
>> pci_resource_alignment, I see one other strange behaviour only when
>> using 4GB of RAM and a 2GB BAR. I haven't found any other combination
>> of RAM/BAR size that triggers this bug. I am using 2.6.36-rc3.
>>
>> ACPI Error: The DSDT has been corrupted or replaced - old, new headers
>> below (20100702/tbutils-372)
>> ACPI: DSDT (null) 01F15 (v01 BXPC BXDSDT 00000001 INTL 20090123)
>> ACPI: (null) 00000 (v00 00000000 00000000)
>> ACPI Error: Please send DMI info to linux-acpi@vger.kernel.org
>> If system does not work as expected, please boot with acpi=copy_dsdt
>> (20100702/tbutils-378)
>> ACPI: PCI Interrupt Link [LNKC] disabled and referenced, BIOS bug
>> ACPI Exception: AE_AML_INVALID_RESOURCE_TYPE, Evaluating _CRS
>> (20100702/pci_link-283)
>> ACPI: Unable to set IRQ for PCI Interrupt Link [LNKC]. Try pci=noacpi
>> or acpi=off
>> virtio-pci 0000:00:03.0: PCI INT A: no GSI - using ISA IRQ 11
>> Non-volatile memory driver v1.3
>> Linux agpgart interface v0.103
>> Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
>>
>> with acpi=off, the ACPI error output goes away, but the boot does not
>> get any further.
>>
>> here are the PCI writes from Qemu related to this BAR's assignment in
>> case they are helpful,
>>
>> pci_write_config: (val) 0x80000004 -> 0x18 (addr)
>> IVSHMEM: guest pci addr = 80000000, guest h/w addr = 4312137728, size
>> = 80000000
>> pci_read_config: (val) 0x80000004<- 0x18 (addr)
>> pci_write_config: (val) 0x1 -> 0x1c (addr)
>> IVSHMEM: guest pci addr = 180000000, guest h/w addr = 4312137728, size
>> = 80000000
>> pci_read_config: (val) 0x1<- 0x1c (addr)
>>
>> Any pointers are appreciated,
>>
>
> Looks like the BAR was temporarily mapped @ 2GB which screwed up memory.
>
> Try changing the write order to first write the top half of the BAR,
> then the lower half.
>
> Strange that there is no enable bit in the BAR, so you can't move it
> atomically? Maybe we need to clear PCI_CMD_MEMORY, play with the BAR,
> and reenable PCI_CMD_MEMORY.
I and others have suggested on several occasions that we should be
disabling memory decode during BAR sizing (this previously bit us when
the BAR was moved over top of the MMCONFIG aperture causing it to
swallow up PCI config accesses), but it's ended up being NAKed by Linus
and others as being too dangerous (apparently some host bridges and such
do stupid things like disable RAM access if you do that to them).
I expect you should be able to do this with a 64-bit BAR, perhaps with
ordering changes, but with a 32-bit there's just not enough address
space for it to be likely to fit.
prev parent reply other threads:[~2010-09-22 1:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-17 20:00 [Qemu-devel] ACPI error when mapping a 2GB BAR w/ 4GB of RAM Cam Macdonell
2010-09-17 20:04 ` [Qemu-devel] " Chris Wright
2010-09-17 20:52 ` Cam Macdonell
2010-09-17 20:53 ` Cam Macdonell
2010-09-17 21:15 ` Chris Wright
2010-09-17 21:45 ` Cam Macdonell
2010-09-19 17:08 ` Avi Kivity
2010-09-19 17:15 ` [Qemu-devel] " Avi Kivity
2010-09-22 1:19 ` Robert Hancock [this message]
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=4C995990.4060602@gmail.com \
--to=hancockrwd@gmail.com \
--cc=avi@redhat.com \
--cc=cam@cs.ualberta.ca \
--cc=chrisw@redhat.com \
--cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).