On 12/01/2017 12:11 PM, Christoph Hellwig wrote: > 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. > You could leave the annotation and do something like: s/ep->lock/ep->wq->lock. And then that would remove the ep->lock saving a bit of space. Thanks, -Jason