Messages in this thread | | | Subject | Re: [PATCH 2/5 V2] PCI: pciehp: check and wait port status out of DPC before handling DLLSC and PDC | From | "Kuppuswamy, Sathyanarayanan" <> | Date | Mon, 28 Sep 2020 09:44:36 -0700 |
| |
On 9/28/20 9:43 AM, Sinan Kaya wrote: > On 9/28/2020 7:10 AM, Sinan Kaya wrote: >> On 9/27/2020 10:01 PM, Zhao, Haifeng wrote: >>> Sinan, >>> I explained the reason why locks don't protect this case in the patch description part. >>> Write side and read side hold different semaphore and mutex. >>> >> I have been thinking about it some time but is there any reason why we >> have to handle all port AER/DPC/HP events in different threads? >> >> Can we go to single threaded event loop for all port drivers events? >> >> This will require some refactoring but it wlll eliminate the lock >> nightmares we are having. >> >> This means no sleeping. All sleeps need to happen outside of the loop. >> >> I wanted to see what you all are thinking about this. >> >> It might become a performance problem if the system is >> continuously observing a hotplug/aer/dpc events. >> >> I always think that these should be rare events. > If restructuring would be too costly, the preferred solution should be > to fix the locks in hotplug driver rather than throwing there a random > wait call. Since the current race condition is detected between DPC and hotplug, I recommend synchronizing them.
-- Sathyanarayanan Kuppuswamy Linux Kernel Developer
| |