Thread (50 messages) 50 messages, 6 authors, 2019-11-19

Re: [PATCH 02/11] powerpc/powernv/ioda: Protect PE list

From: "Oliver O'Halloran" <oohall@gmail.com>
Date: 2019-11-19 13:25:31

On Tue, Nov 19, 2019 at 11:57 PM Frederic Barrat [off-list ref] wrote:
quoted
Do the other accessors of ioda.pe_list also need mutex protection?
pnv_ioda_setup_bus_PE()
pnv_pci_dma_bus_setup()
pnv_pci_init_ioda_phb()
pnv_pci_ioda_setup_PEs()

I think we could also use it there, it wouldn't hurt. Those functions
are called when the kernel is building part of the PCI topology, and
devices are not really active yet, so I don't think it's absolutely
required.

I'm actually not sure my patch is needed either. With hotplug, the
devices can come and go, whereas the PHB remains. So it feels right to
start protecting the list when adding/removing a device. But I don't
think we can really have concurrency and have 2 different operations
adding/removing devices at the same time under the same PHB, at least
for opencapi. Maybe for PCI, if we have multiple slots under the same
PHB. Not sure.
Creation of new pci_dev's is serialised by the global pci rescan and
remove lock so on the creation side it's not an issue. However, we can
release IODA PEs in the pci_dev's release function which might be
called without that lock held. It's pretty hard to hit that case
though since it require something to be holding a ref to the pci_dev
even after the driver's ->remove() function has been called.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help