From: Pranith Kumar <bobby.prani@gmail.com>
To: target-maintainer@vger.kernel.org
Cc: Pranith Kumar <bobby.prani@gmail.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [RFC PATCH 0/2] eventpoll: scale nested leaf additions
Date: Mon, 19 Oct 2026 11:29:31 -0700 [thread overview]
Message-ID: <cover.1792432666.git.bobby.prani@gmail.com> (raw)
Adding an ordinary file to an epoll watched by another epoll takes
epnested_mutex. Workers adding different files to different epoll
instances therefore serialize on one global lock, even though their
reverse-path checks do not conflict.
The first patch freezes the epoll topology with a shared rwsem during
these leaf additions and uses a hashed per-file mutex to serialize
checks for the same target file. An epoll topology change takes the
rwsem for write and retains epnested_mutex for cycle and path checks.
The second patch separates the generation stamp and topology rwsem
onto cache lines of their own on SMP builds. In the tested ARM64
layout, this also separates them from epnested_mutex.
The series was built and tested on linux-next tag next-20261016
(7.3-rc7 based). Four workers each ran 2,000 epoll
add/delete pairs in nested and flat modes. Throughput:
Kernel Nested pairs/s Gain % Flat pairs/s Gain %
Unpatched linux-next 1,558,641 0.0% 6,736,037 0.00%
Parallel additions 5,325,959 +241.7% 6,771,375 +0.52%
Parallel + alignment 5,487,081 +252.0% 6,780,276 +0.66%
This patch was developed with AI assistance.
Pranith Kumar (2):
eventpoll: parallelize independent nested leaf additions
eventpoll: separate nested-check objects by cache line
fs/eventpoll.c | 116 ++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 90 insertions(+), 26 deletions(-)
base-commit: 2efb7a11f1aa4d2dc285fe2680cca22cb9f72f64
--
2.47.3
next reply other threads:[~2026-10-19 18:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-19 18:29 Pranith Kumar [this message]
2026-10-19 18:29 ` [RFC PATCH 1/2] eventpoll: parallelize independent " Pranith Kumar
2026-10-19 18:29 ` [RFC PATCH 2/2] eventpoll: separate nested-check objects by cache line Pranith Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1792432666.git.bobby.prani@gmail.com \
--to=bobby.prani@gmail.com \
--cc=brauner@kernel.org \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=target-maintainer@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®