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

From: Jeff Layton

Date: Mon Feb 23 2026 - 12:17:42 EST


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@xxxxxxxxxx>
---
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@xxxxxxxxxx

---
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@xxxxxxxxxx>