[PATCH v2 0/4] sunrpc: cache infrastructure scalability improvements

Jeff Layton posted 4 patches 1 month, 1 week ago
include/linux/sunrpc/cache.h |   7 +-
net/sunrpc/cache.c           | 189 ++++++++++++++++++++-----------------------
2 files changed, 95 insertions(+), 101 deletions(-)
[PATCH v2 0/4] sunrpc: cache infrastructure scalability improvements
Posted by Jeff Layton 1 month, 1 week ago
The first patch fixes a pre-existing bug that Neil spotted during the
review of v1. The next two patches convert the global spinlock and
waitqueue to be per-cache_detail instead.

The last patch splits up the cache_detail->queue into two lists: one to
hold cache_readers and one for cache_requests. This simplifies the code,
and the new sequence number that helps the readers track position may
help with implementing netlink upcalls.

Please consider these for v7.1.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v2:
- Don't spinlock around rp->next_seqno updates
- Fix potential cache_request leak in cache_release()
- Link to v1: https://lore.kernel.org/r/20260220-sunrpc-cache-v1-0-47d04014c245@kernel.org

---
Jeff Layton (4):
      sunrpc: fix cache_request leak in cache_release
      sunrpc: convert queue_lock from global spinlock to per-cache-detail lock
      sunrpc: convert queue_wait from global to per-cache-detail waitqueue
      sunrpc: split cache_detail queue into request and reader lists

 include/linux/sunrpc/cache.h |   7 +-
 net/sunrpc/cache.c           | 189 ++++++++++++++++++++-----------------------
 2 files changed, 95 insertions(+), 101 deletions(-)
---
base-commit: 8fd7d969255c89fb28cd9f34e0d729150da79d68
change-id: 20260220-sunrpc-cache-fe4cd44413d3

Best regards,
-- 
Jeff Layton <jlayton@kernel.org>
Re: [PATCH v2 0/4] sunrpc: cache infrastructure scalability improvements
Posted by Chuck Lever 1 month, 1 week ago
From: Chuck Lever <chuck.lever@oracle.com>

On Mon, 23 Feb 2026 12:09:57 -0500, Jeff Layton wrote:
> The first patch fixes a pre-existing bug that Neil spotted during the
> review of v1. The next two patches convert the global spinlock and
> waitqueue to be per-cache_detail instead.
> 
> The last patch splits up the cache_detail->queue into two lists: one to
> hold cache_readers and one for cache_requests. This simplifies the code,
> and the new sequence number that helps the readers track position may
> help with implementing netlink upcalls.
> 
> [...]

Applied to nfsd-testing, replacing v1. Thanks!

[1/4] sunrpc: fix cache_request leak in cache_release
      commit: dad5f78046759eb5c95970198eb9865550eb6227
[2/4] sunrpc: convert queue_lock from global spinlock to per-cache-detail lock
      commit: c94ad34b7ecd5928cf3fdb6ea4fcf6ef55765e97
[3/4] sunrpc: convert queue_wait from global to per-cache-detail waitqueue
      commit: 951696964e9c370a5f91d5e3e136d39aa08d912c
[4/4] sunrpc: split cache_detail queue into request and reader lists
      commit: 3557b9c71039b2435b383fc57283a0b847b40144

--
Chuck Lever