Re: BAR Conflict

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2011-08-04 21:18, Konrad Rzeszutek Wilk wrote:
> On Thu, Aug 04, 2011 at 08:11:45AM -0600, Bjorn Helgaas wrote:
>> On Thu, Aug 4, 2011 at 1:28 AM, Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote:
>>> On 2011-08-04 05:14, Konrad Rzeszutek Wilk wrote:
>>>>>>>>> and kvm does not want to go further. dmesg, /proc/iomem and lspci are at
>>>>>>>>> the end of this email.
>>>>>>>>> The memory reserved by BIOS-e820
>>>>>>>>> [    0.000000]  BIOS-e820: 00000000fa000000 - 00000000fc000000
>>>>>>>>> (reserved)
>>>>>>>>> Quadro 2000 is 05:00.0 and its conflicting BAR is
>>>>>>>>>        Region 3: Memory at f8000000 (64-bit, prefetchable) [disabled]
>>>>>>>>> [size=64M]
>>>>>>>>> and its upstream bridge 00:1c.00
>>>>> OK, if it's safe to ignore for PCI allocations, then ignore the
>>>>> reservation. But I think that should be done automatically if somehow
>>>>> possible, not by the user via a kernel parameter.
>>>>>
>>>>> Is there a simple way to test such a policy without significant
>>>>> refactoring of the e820 code?
>>>>
>>>> Why not just make the kvm PCI passthrough code check the MMIO
>>>> of the card and make an "gap" in the E820 for that region. In essence
>>>> creating a PCI I/O region?
>>>>
>>>> Why does QEMU setup up that reserved region? Can it move it?
>>>
>>> I really don't think this is KVM business. The fact that also nouveau
>>> and nvidia's blob complain or even stumble (Maxim is checking if the
>>> hack also heals the latter) and both are using a standard PCI core
>>> service to request the card resources strongly suggests that the problem
>>> should not be attacked by some ad-hoc workaround in KVM.
>>
>> I tend to agree that it would be better to have a more general change
>> in the way we handle E820 because there are similar issues that don't
>> involve KVM.
>>
>> For example, see
>> https://bugzilla.kernel.org/show_bug.cgi?id=31602#c32; there we need
>> to reserve a PNP device region of 0xd0000000-0xdfffffff, but the
>> reservation fails because we have a previous 0xd0000000-0xd3ffffff
>> reservation from E820.  We might hack around it for now by doing the
>> PNP reservation in pieces, but I think it would be cleaner to do
>> something different with the E820 stuff.
> 
> Ah, so the BIOS _is_ confused. OK. My take was that in this case
> the QEMU is confused by not setting the E820 correctly and hence this shows up.
> So fix QEMU so that it will setup the E820 right?
> 
> And sure making the Linux kernel be able to handle this would be an extra
> bonus - especially to deal with confused BIOSes.

This is a host-side issue, not a guest-side one. No QEMU here, no
SeaBIOS (rather the "usual" kind of BIOS you get with physical HW).

The problem shows up when any kind of *host-side* driver (including
KVM's device pass-through code) requests the PCI resources of that device.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux