On Thu, Nov 30, 2017 at 05:18:07PM -0500, Jason Baron wrote: > Yes, but for those cases it uses the ep->poll_wait waitqueue not the > ep->wq, which is guarded by the ep->wq->lock. True. So it looks like we have one waitqueue in the system that is special in providing its own synchronization for waitqueues while entirely ignoring the waitqueue code documentation that states that waitqueues are internally synchronized. We could drop the lockdep annotation, updated the documentation and not add any validation of the assumptions, or just make epoll fit the scheme used by everyone else. So either we can drop these patches, or I need to fix up more of the epoll code.