Re: [PATCH RESEND v4] fs/epoll: Remove unnecessary wakeups of nested epoll that in ET mode

From: Andrew Morton
Date: Fri Sep 27 2019 - 22:29:43 EST


On Wed, 25 Sep 2019 09:56:03 +0800 hev <r@xxxxxx> wrote:

> From: Heiher <r@xxxxxx>
>
> Take the case where we have:
>
> t0
> | (ew)
> e0
> | (et)
> e1
> | (lt)
> s0
>
> t0: thread 0
> e0: epoll fd 0
> e1: epoll fd 1
> s0: socket fd 0
> ew: epoll_wait
> et: edge-trigger
> lt: level-trigger
>
> We only need to wakeup nested epoll fds if something has been queued to the
> overflow list, since the ep_poll() traverses the rdllist during recursive poll
> and thus events on the overflow list may not be visible yet.
>
> Test code:

Look sane to me. Do you have any performance testing results which
show a benefit?

epoll maintainership isn't exactly a hive of activity nowadays :(
Roman, would you please have time to review this?