The quilt patch titled Subject: epoll-use-refcount-to-reduce-ep_mutex-contention-v5 has been removed from the -mm tree. Its filename was epoll-use-refcount-to-reduce-ep_mutex-contention-v5.patch This patch was dropped because it had testing failures ------------------------------------------------------ From: Paolo Abeni <pabeni@xxxxxxxxxx> Subject: epoll-use-refcount-to-reduce-ep_mutex-contention-v5 Date: Wed, 8 Mar 2023 22:51:31 +0100 update some comments Link: https://lkml.kernel.org/r/323de732635cc3513c1837c6cbb98f012174f994.1678312201.git.pabeni@xxxxxxxxxx Tested-by: Xiumei Mu <xmu@xxxxxxxxxxx> Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx> Acked-by: Soheil Hassas Yeganeh <soheil@xxxxxxxxxx> Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Carlos Maiolino <cmaiolino@xxxxxxxxxx> Cc: Christian Brauner <brauner@xxxxxxxxxx> Cc: Eric Biggers <ebiggers@xxxxxxxxxx> Cc: Jens Axboe <axboe@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/fs/eventpoll.c~epoll-use-refcount-to-reduce-ep_mutex-contention-v5 +++ a/fs/eventpoll.c @@ -714,6 +714,8 @@ static void ep_free(struct eventpoll *ep * Removes a "struct epitem" from the eventpoll RB tree and deallocates * all the associated resources. Must be called with "mtx" held. * If the dying flag is set, do the removal only if force is true. + * This prevents ep_clear_and_put() from dropping all the ep references + * while running concurrently with eventpoll_release_file(). * Returns true if the eventpoll can be disposed. */ static bool __ep_remove(struct eventpoll *ep, struct epitem *epi, bool force) @@ -941,14 +943,13 @@ void eventpoll_release_file(struct file bool dispose; /* - * Use the 'dying' flag to prevent a concurrent ep_cleat_and_put() from + * Use the 'dying' flag to prevent a concurrent ep_clear_and_put() from * touching the epitems list before eventpoll_release_file() can access * the ep->mtx. */ again: spin_lock(&file->f_lock); if (file->f_ep && file->f_ep->first) { - /* detach from ep tree */ epi = hlist_entry(file->f_ep->first, struct epitem, fllink); epi->dying = true; spin_unlock(&file->f_lock); _ Patches currently in -mm which might be from pabeni@xxxxxxxxxx are