Re: [PATCH] iommu/vt-d: Introduce a rb_tree for looking up device

From: Huang, Jiaqing
Date: Tue Sep 26 2023 - 04:26:41 EST


On 9/25/2023 4:12 PM, Joerg Roedel wrote:

On Mon, Aug 21, 2023 at 12:16:59AM -0700, Huang Jiaqing wrote:
The existing IO page fault handler locates the PCI device by calling
pci_get_domain_bus_and_slot(), which searches the list of all PCI
devices until the desired PCI device is found. This is inefficient
because the algorithm efficiency of searching a list is O(n). In the
critical path of handling an IO page fault, this can cause a significant
performance bottleneck.
Can you elaborate a little more on the 'significant performance
bottleneck' part? Where do you see this as a problem?

Regards,

Joerg
While lots of dsa devices were enabled, parallel dsa_test with large transfer size
would be executed ineffciently and cause cpu stuck in pci_get_domain_bus_and_slot
by lock competition. The introduced patch could significantly improve the speed and
prevent the CPU from getting sutck. It maybe confusing for "significant performance
bottleneck" since it didn't benefit all the cases, would rephase it in the new patch. Thanks!

BRs,
Jiaqing