Re: Error assigning BAR 0 to hotplugged device

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

 



[+cc Yinghai]

On Wed, Jul 16, 2014 at 11:19 AM, Chuck Tuffli <ctuffli@xxxxxxxxx> wrote:
> On Tue, Jul 8, 2014 at 12:37 PM, Chuck Tuffli <ctuffli@xxxxxxxxx> wrote:
>> On a system with a recent Fedora kernel (3.14.9-200.fc20.x86_64), a
>> hotplugged PCI device is unable to get memory mapped IO:
>> ...
>> [  183.247377] pcieport 0000:9a:00.0: BAR 15: can't assign mem pref
>> (size 0x100000)
>> [  183.247384] pcieport 0000:9b:15.0: BAR 14: can't assign mem (size 0x100000)
>> [  183.247388] pcieport 0000:9b:15.0: BAR 15: can't assign mem pref
>> (size 0x100000)
>> [  183.247394] pci 0000:a5:00.0: BAR 6: can't assign mem pref (size 0x10000)
>> [  183.247397] pci 0000:a5:00.0: BAR 0: can't assign mem (size 0x4000)
>>
>> The device is connected to a switch supporting hotplug (i.e. SltCap
>> includes HotPlug+) and I have added
>> pci=realloc,hpmemsize=16M
>> to the kernel boot parameters. This appears to have increased the
>> prefetchable memory but not the memory mapped IO:
>
> Further investigation suggests that pbus_size_mem() never really gets
> a chance to increase the bridge aperture by the hpmemsize value
> because find_free_bus_resource() returns NULL. This apparently happens
> because the function "skip[s] the bus resources which have already
> been assigned (that is, have non-NULL parent resource)". Specifically,
> it checks
>
>     if (r && (r->flags & type_mask) == type && !r->parent)
>
> and in my configuration, finds that r->parent != NULL for the memory
> mapped IO resource. Wouldn't r->parent be non-NULL in most cases other
> than for bridges in the root complex? If so, does that imply hpmemsize
> would only be used for bridges advertising hot plug in the root
> complex?

Thanks for chasing this down.  I'm going to be on vacation for a few
weeks and won't be able to work on this until I return.  I added
Yinghai, who will probably have a suggestion for you.

Bjorn
--
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