Re: [PATCH v4 00/12] PCI core learns hotplug

From: Alex Chiang
Date: Thu Mar 19 2009 - 13:14:08 EST


* Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>:
> Alex Chiang wrote:
>> We're getting close to the new merge window, and I _think_ this
>> patch series is ready for consideration. Notably:
>>
>> - multiple rescans/removes of devices with and without bridges
>> - verified that resource allocation after multiple remove/rescan
>> cycles is the same as what we had during initial boot
>> - fixes the complete suckage of fakephp (that I created)
>> - doesn't affect existing hotplug drivers
>> - tested on x86 and ia64 platforms
>>
>> Please review, and consider testing. For testing ease, you can pull
>> from my git branch:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/achiang/pci-hotplug.git
>> branch 'test-20090318' is what you want
>>
>
> When I rescan the bus even without remove anything, I got the
> following messages. And enable count of the bridge is incremented
> every time.
>
> [17240.309096] pci 0000:2d:00.0: BAR 6: bogus alignment [0x0-0x0] flags 0x2
> [17240.309135] pcieport-driver 0000:00:01.0: setting latency timer to 64
> [17240.309143] pcieport-driver 0000:00:02.0: setting latency timer to 64
> [17240.309150] pcieport-driver 0000:14:00.0: setting latency timer to 64
> [17240.309159] pcieport-driver 0000:15:00.0: setting latency timer to 64
> [17240.309166] pcieport-driver 0000:15:01.0: setting latency timer to 64
> [17240.309174] pcieport-driver 0000:15:02.0: setting latency timer to 64
> [17240.309182] pci 0000:14:00.3: setting latency timer to 64
> [17240.309189] pcieport-driver 0000:00:03.0: setting latency timer to 64
> [17240.309198] pcieport-driver 0000:2a:00.0: setting latency timer to 64
> [17240.309207] pcieport-driver 0000:2b:02.0: setting latency timer to 64
> [17240.309215] pcieport-driver 0000:2b:04.0: setting latency timer to 64
> [17240.309223] pcieport-driver 0000:00:04.0: setting latency timer to 64
> [17240.309231] pcieport-driver 0000:2e:00.0: setting latency timer to 64
> [17240.309240] pcieport-driver 0000:2f:02.0: setting latency timer to 64
> [17240.309248] pcieport-driver 0000:2f:04.0: setting latency timer to 64
> [17240.309256] pcieport-driver 0000:00:06.0: setting latency timer to 64
> [17240.309264] pcieport-driver 0000:51:00.0: setting latency timer to 64
> [17240.309273] pcieport-driver 0000:52:02.0: setting latency timer to 64
> [17240.309281] pcieport-driver 0000:52:04.0: setting latency timer to 64
> [17240.309291] pci 0000:64:00.0: setting latency timer to 64
> [17240.309300] pcieport-driver 0000:00:1c.0: setting latency timer to 64
> [17240.309308] pci 0000:00:1e.0: setting latency timer to 64

I will investigate these.

> [root@localhost pci]# echo 1 > rescan
> [root@localhost pci]# cat /sys/bus/pci/devices/0000\:2f\:04.0/enable
> 6
> [root@localhost pci]# echo 1 > rescan
> [root@localhost pci]# cat /sys/bus/pci/devices/0000\:2f\:04.0/enable
> 7
> [root@localhost pci]# echo 1 > rescan
> [root@localhost pci]# cat /sys/bus/pci/devices/0000\:2f\:04.0/enable
> 8
> [root@localhost pci]# echo 1 > rescan
> [root@localhost pci]# cat /sys/bus/pci/devices/0000\:2f\:04.0/enable
> 9

Hm, that's because I'm calling pci_enable_bridges()
unconditionally every time even if we didn't add any new bridges,
which is obviously wrong.

I will try and figure out a fix for this.

Thanks for testing.

/ac

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/