[+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