On Wed, Oct 16, 2024 at 03:05:38PM -0400, Brian Geffon wrote: > On Wed, Oct 16, 2024 at 03:10:34PM +0200, Christian Brauner wrote: > > On Fri, 26 Apr 2024 16:05:48 +0800, Xuewen Yan wrote: > > > Now, the epoll only use wake_up() interface to wake up task. > > > However, sometimes, there are epoll users which want to use > > > the synchronous wakeup flag to hint the scheduler, such as > > > Android binder driver. > > > So add a wake_up_sync() define, and use the wake_up_sync() > > > when the sync is true in ep_poll_callback(). > > > > > > [...] > > > > Applied to the vfs.misc branch of the vfs/vfs.git tree. > > Patches in the vfs.misc branch should appear in linux-next soon. > > > > Please report any outstanding bugs that were missed during review in a > > new review to the original patch series allowing us to drop it. > > > > It's encouraged to provide Acked-bys and Reviewed-bys even though the > > patch has now been applied. If possible patch trailers will be updated. > > > > Note that commit hashes shown below are subject to change due to rebase, > > trailer updates or similar. If in doubt, please check the listed branch. > > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git > > branch: vfs.misc > > This is a bug that's been present for all of time, so I think we should: > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > Cc: stable@xxxxxxxxxxxxxxx This is in as 900bbaae ("epoll: Add synchronous wakeup support for ep_poll_callback"). How do maintainers feel about: Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Cc: stable@xxxxxxxxxxxxxxx > > I sent a patch which adds a benchmark for nonblocking pipes using epoll: > https://lore.kernel.org/lkml/20241016190009.866615-1-bgeffon@xxxxxxxxxx/ > > Using this new benchmark I get the following results without this fix > and with this fix: > > $ tools/perf/perf bench sched pipe -n > # Running 'sched/pipe' benchmark: > # Executed 1000000 pipe operations between two processes > > Total time: 12.194 [sec] > > 12.194376 usecs/op > 82005 ops/sec > > > $ tools/perf/perf bench sched pipe -n > # Running 'sched/pipe' benchmark: > # Executed 1000000 pipe operations between two processes > > Total time: 9.229 [sec] > > 9.229738 usecs/op > 108345 ops/sec > > > > > [1/1] epoll: Add synchronous wakeup support for ep_poll_callback > > https://git.kernel.org/vfs/vfs/c/2ce0e17660a7 Thanks, Brian