Re: [PATCH v2 0/5] Implement referring call lists for CB_OFFLOAD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2025-03-01 at 13:31 -0500, cel@xxxxxxxxxx wrote:
> From: Chuck Lever <chuck.lever@xxxxxxxxxx>
> 
> I've built a naive proof-of-concept of the csa_referring_call_list
> argument of the CB_SEQUENCE operation, and hooked it up for the
> CB_OFFLOAD callback operation.
> 
> This has been pushed to my kernel.org "fix-async-copy" branch for
> folks to play around with.
> 
> I've done some basic testing with a server that ensures the
> CB_OFFLOAD callback is sent before the COPY reply, while running a
> network capture. Operation appears correct, Wireshark is happy
> with the construction of the XDR, and the CB_SEQUENCE arguments
> match the SEQUENCE operation in the COPY COMPOUND.
> 
> I'd like to include this series in nfsd-testing.
> 
> Changes since RFC:
> - Add a field to struct nfsd4_slot that records its table index
> - Include a few additional COPY-related fixes
> - Some operational testing has been done
> 
> Chuck Lever (5):
>   NFSD: OFFLOAD_CANCEL should mark an async COPY as completed
>   NFSD: Shorten CB_OFFLOAD response to NFS4ERR_DELAY
>   NFSD: Implement CB_SEQUENCE referring call lists
>   NFSD: Record each NFSv4 call's session slot index
>   NFSD: Use a referring call list for CB_OFFLOAD
> 
>  fs/nfsd/nfs4callback.c | 132 +++++++++++++++++++++++++++++++++++++++--
>  fs/nfsd/nfs4proc.c     |  16 ++++-
>  fs/nfsd/nfs4state.c    |  38 ++++++------
>  fs/nfsd/state.h        |  23 +++++++
>  fs/nfsd/xdr4.h         |   4 ++
>  fs/nfsd/xdr4cb.h       |   5 +-
>  6 files changed, 193 insertions(+), 25 deletions(-)
> 

I think this all looks good for a first pass, and should be OK for
COPY. You can add:


    Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>


I think we'll eventually want this for longer-lived stateids too.
Specifically:

    CB_RECALL
    CB_LAYOUTRECALL
    CB_NOTIFY_LOCK

The main thing missing for that is the ability to free referring call
records once we ensure that the client has seen the reply. For
instance, if nfsd records a referring call on slot:seq 1:2, then once
it sees a SEQUENCE for 1:3, then it doesn't need to keep around the
referring call for 1:2. The server knows that call is no longer in
flight so it's no longer needed.

If we don't do that, then we could end up with rather long referring
call lists, with a bunch of long-completed calls.





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux