From: Chuck Lever III <chuck.lever@oracle.com>
To: Benjamin Coddington <bcodding@redhat.com>
Cc: Chuck Lever <cel@kernel.org>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH RFC 00/13] NFSD backchannel fixes
Date: Fri, 26 Jan 2024 13:56:00 +0000 [thread overview]
Message-ID: <185A3262-97EE-4637-A169-05F01B7FFBA4@oracle.com> (raw)
In-Reply-To: <0DCE1190-19FA-46BD-822D-6984F0B5B296@redhat.com>
> On Jan 25, 2024, at 5:09 PM, Benjamin Coddington <bcodding@redhat.com> wrote:
>
> On 25 Jan 2024, at 11:28, Chuck Lever wrote:
>
>> The first three patches fix bugs that prevent NFSD's backchannel
>> from reliably retransmitting after a client reconnects. These fixes
>> might be appropriate for 6.8-rc.
>>
>> Following that are some new trace points that might be helpful for
>> field troubleshooting.
>>
>> Then there are some minor clean-ups.
>>
>> I am still testing this series, and there is one msleep() call that
>> needs some thought. Thoughts, comments, opinions, rotten fruit? You
>> know the drill.
>>
>> ---
>>
>> Chuck Lever (13):
>> NFSD: Reset cb_seq_status after NFS4ERR_DELAY
>> NFSD: Reschedule CB operations when backchannel rpc_clnt is shut down
>> NFSD: Retransmit callbacks after client reconnects
>> NFSD: Add nfsd_seq4_status trace event
>> NFSD: Replace dprintks in nfsd4_cb_sequence_done()
>> NFSD: Rename nfsd_cb_state trace point
>> NFSD: Add callback operation lifetime trace points
>> SUNRPC: Remove EXPORT_SYMBOL_GPL for svc_process_bc()
>> NFSD: Remove unused @reason argument
>> NFSD: Replace comment with lockdep assertion
>> NFSD: Remove BUG_ON in nfsd4_process_cb_update()
>> SUNRPC: Remove stale comments
>> NFSD: Remove redundant cb_seq_status initialization
>>
>>
>> fs/nfsd/nfs4callback.c | 81 +++++++++++++-------
>> fs/nfsd/nfs4state.c | 1 +
>> fs/nfsd/trace.h | 162 ++++++++++++++++++++++++++++++++++++++-
>> include/trace/misc/nfs.h | 34 ++++++++
>> net/sunrpc/svc.c | 1 -
>> net/sunrpc/xprtsock.c | 9 ---
>> 6 files changed, 250 insertions(+), 38 deletions(-)
>
>
> These are great, looking forward to see how 02/13 waits for reconnection.
> Seems like a wait_on_bit or wait_on_var triggered from nfsd4_init_conn()
> would do, but that's just my wild speculation.
Thanks for having a look!
Well Jeff pointed out that we don't want to put a workqueue worker
thread to sleep, so wait_on_* would work but is not an appropriate
long-term solution.
I'd rather prefer to have a mechanism where the callback RPC tasks
can be "hard" and then they would wait in the RPC client for the
reconnect. The issue then is how connection establishment is
indicated so that the waiting tasks are woken at the right time.
--
Chuck Lever
prev parent reply other threads:[~2024-01-26 13:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 16:28 [PATCH RFC 00/13] NFSD backchannel fixes Chuck Lever
2024-01-25 16:28 ` [PATCH RFC 01/13] NFSD: Reset cb_seq_status after NFS4ERR_DELAY Chuck Lever
2024-01-25 20:07 ` Jeff Layton
2024-01-25 16:28 ` [PATCH RFC 02/13] NFSD: Reschedule CB operations when backchannel rpc_clnt is shut down Chuck Lever
2024-01-25 20:19 ` Jeff Layton
2024-01-25 20:29 ` Chuck Lever
2024-01-25 16:28 ` [PATCH RFC 03/13] NFSD: Retransmit callbacks after client reconnects Chuck Lever
2024-01-25 20:24 ` Jeff Layton
2024-01-25 16:29 ` [PATCH RFC 04/13] NFSD: Add nfsd_seq4_status trace event Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 05/13] NFSD: Replace dprintks in nfsd4_cb_sequence_done() Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 06/13] NFSD: Rename nfsd_cb_state trace point Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 07/13] NFSD: Add callback operation lifetime trace points Chuck Lever
2024-01-25 21:49 ` Benjamin Coddington
2024-01-26 14:12 ` Chuck Lever
2024-01-26 14:27 ` Benjamin Coddington
2024-01-25 16:29 ` [PATCH RFC 08/13] SUNRPC: Remove EXPORT_SYMBOL_GPL for svc_process_bc() Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 09/13] NFSD: Remove unused @reason argument Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 10/13] NFSD: Replace comment with lockdep assertion Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 11/13] NFSD: Remove BUG_ON in nfsd4_process_cb_update() Chuck Lever
2024-01-25 16:29 ` [PATCH RFC 12/13] SUNRPC: Remove stale comments Chuck Lever
2024-01-25 16:30 ` [PATCH RFC 13/13] NFSD: Remove redundant cb_seq_status initialization Chuck Lever
2024-01-25 20:41 ` [PATCH RFC 00/13] NFSD backchannel fixes Jeff Layton
2024-01-25 22:09 ` Benjamin Coddington
2024-01-26 13:56 ` Chuck Lever III [this message]
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=185A3262-97EE-4637-A169-05F01B7FFBA4@oracle.com \
--to=chuck.lever@oracle.com \
--cc=bcodding@redhat.com \
--cc=cel@kernel.org \
--cc=linux-nfs@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox