On 31.08.2022 16:10, Volodymyr Babchuk wrote: > This lock protects alldevs_list of struct pci_seg. As this, it should > be used when we are adding, removing on enumerating PCI devices > assigned to a PCI segment. > > Radix tree that stores PCI segment has own locking mechanism, also > pci_seg structures are only allocated and newer freed, so we need no > additional locking to access pci_seg structures. But we need a lock > that protects alldevs_list field. > > This enables more granular locking instead of one huge pcidevs_lock > that locks entire PCI subsystem. Please note that pcidevs_lock() is > still used, we are going to remove it in subsequent patches.
Just a thought: To limit the scope of the steps taken, would it be a possibility (and useful) to move from the global to the per-segment lock, extending what this per-segment lock is actually protecting? And only then take further steps, as already done in later parts of this series? Jan
