All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Coddington <ben.coddington@hammerspace.com>
To: Trond Myklebust <trondmy@kernel.org>, Anna Schumaker <anna@kernel.org>
Cc: linux-nfs@vger.kernel.org, Mike Snitzer <snitzer@kernel.org>
Subject: [PATCH 0/2] NFSv4/pnfs: Keep data server connections across deviceid eviction
Date: Fri, 18 Sep 2026 08:21:00 -0400	[thread overview]
Message-ID: <cover.1789733774.git.bcodding@hammerspace.com> (raw)

This applies on top of the flexfiles striping series:

  [PATCH v4 00/24] NFS: flexfiles device notifications and caching for
  wide striped layouts
  https://lore.kernel.org/linux-nfs/cover.1789474702.git.bcodding@hammerspace.com

and uses the hashed, address-keyed data server cache that series adds.

A metadata server that does not support deviceid notifications makes the
client set NFS_DEVICEID_NOCACHE, and a NOCACHE deviceid node is freed as
soon as the last layout referring to it is returned.  That takes the data
server's nfs_client and every transport underneath it along with it:

  nfs4_put_deviceid_node()
    ff_layout_free_deviceid_node()
      nfs4_pnfs_ds_put()
        destroy_ds()
          nfs_put_client()
            rpc_shutdown_client()

The next I/O rebuilds all of it: a synchronous connect and NULL ping
inline in pg_init(), plus the remaining nconnect-1 transports
reconnecting lazily as RPCs land on them.  I have a report of a wide
stripe at nconnect=16 spending upwards of ten seconds on this before I/O
can proceed, and paying it again on every layout cycle.

Keep the nfs4_pnfs_ds hashed once its last user goes away, and reap it later
if nothing claims it.

Benjamin Coddington (2):
  NFSv4/pnfs: Give the data server cache its own reference
  NFSv4/pnfs: Let unused data server connections linger

 fs/nfs/pnfs.c     |   4 +-
 fs/nfs/pnfs.h     |   4 ++
 fs/nfs/pnfs_nfs.c | 110 +++++++++++++++++++++++++++++++++++++++++++---
 3 files changed, 112 insertions(+), 6 deletions(-)

-- 
2.53.0


             reply	other threads:[~2026-09-18 12:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18 12:21 Benjamin Coddington [this message]
2026-09-18 12:21 ` [PATCH 1/2] NFSv4/pnfs: Give the data server cache its own reference Benjamin Coddington
2026-09-18 12:21 ` [PATCH 2/2] NFSv4/pnfs: Let unused data server connections linger Benjamin Coddington

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.1789733774.git.bcodding@hammerspace.com \
    --to=ben.coddington@hammerspace.com \
    --cc=anna@kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=snitzer@kernel.org \
    --cc=trondmy@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.