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.