[Skiboot] [PATCH] core/pci: Introduce virtual device and filter cache

Gavin Shan gwshan at linux.vnet.ibm.com
Tue Sep 13 18:01:14 AEST 2016

On Mon, Sep 12, 2016 at 10:59:18AM +1000, Alistair Popple wrote:
>On Thu, 8 Sep 2016 05:19:32 PM Gavin Shan wrote:
>> This introduces virtual device and filter cache to speed up the
>> searching for PCI virtual device and config space register filter
>> in PCI config access path. With this applied, the original bandwidth
>> is regained during the NPU1 bandwidth testing.
>Have you done any profiling that shows the virtual pci filters are the source 
>of the slow down? I am quite confused why this is an issue as once the links 
>are setup nothing should be touching the virtual config spaces (apart from a 
>watchdog thread running once a second in the nvidia device driver).

Alistair, I didn't do the profiling. As the code change included in
this patch is just introduce a virtual PCI device and filter cache.
Both of them are used in PCI config access with help of the virtual
PCI filters. It proves we have lots of PCI config traffic hitting the
virtual PCI filters indirectly, right?

>I am concerned the slow down may be due to some other reason such as link 
>training not work correctly so would like some confirmation that slow config 
>space access is what is causing this. Also if the slow down is due to frequent 
>config space accesses then we should be looking to reduce the frequency of 
>accesses. There is probably also plenty of scope to further optimise these 
>code paths as they were assumed to be on a fairly slow path when written.

Yeah, I agree the PCI config access is the slow path. I'm not sure why
we have huge PCI config traffic during the testing. I will rerun the test
with more code to reveal how much PCI config read/write are issued and
their distribution when I get a chance. It's not high priority as I think :-)


More information about the Skiboot mailing list