PNFS Todo List
From Linux NFS
Contents |
NFSv4.1 (sessions) Todo List
Client
- [2009-02] mount version negotiation
- Propagate error up to the mount system call (Andy)
- Update mount utils command to reissue the mount with a different version (SteveD)
- [2009-02] New backchannel implementation that handles multiple flavor authentication (Ricardo)
- [2009-02] Documentation
- What functionality is supported? What will a user be able to do?
- [2009-02] Lock Sequencing
- With the advent of Sessions, the open sequencing should be reworked to avoid double sequencing. No need to sequence in the operations if the session is already sequencing (Lower priority)
- [2008-08] Propose design for unified client/LD device cache. (Benny)
Server
- Bug 172 - EXCHANGE_ID does not reply on first request (Andy)
- [2009-02] Client should validate Backchannel attributes
- The client determines the resources used by the backchannel. If the server ignores the client specification, and changes the values, the client shou8ld drop the mount to v4
- Bruce wants a patch for the Documentation directory that explains which features we have implemented and which we have not.
- He wants this done from a user's perspective - what would a fully functional NFSv4.1 sessions client see from the server?
- Document the ramifications of the present implementation
- shortcuts we made.
- Document server owner implementation.
- [2008-10] Never return NFS4ERR_RESOURCE in nfs41/pnfs. Error code was deprecated. Typically need to return NFS4ERR_REQ_TOO_BIG instead.
- [2008-04-10] Add an option to control nfsv4.1 on the server side.
- The motivation is disabling 4.1 on the server without having to rebuild the kernel. Some use cases: a faulty 4.1 client, or one that's crashing the server, or just for easier debugging of the client (4.1 client mounting a 4.0 server).
Ann Arbor 11/08 Review Patches
The following still need to be addressed:
- [11/51] nfsd41-sessions-basic-data-types.patch we'll need at least one per-session max. variable maybe a global max.
- nfsd_compoundargs has a max size for the preallocated ops array. need to define that in a header file use for both nfs4 and nfs41. (preallocated per nfsd thread)
- review storing negotiated back channel session parameters
- [23] nfsd41-xdr-stubs.patch
- review 11-13: add comment about why we don't need nfsd4_enc_ops per minorversion like we do for the decoding vector.
- 0030-nfsd41-destroy_session-operation.patch
- > + shutdown_callback_client(ses->se_client);
- review 11-12: we need ref. counting for that backchannel to support trunking.
- clp->cl_callback.cb_client is shared?
- Write a commit message for [PATCH 36/46] nfsd41: sunrpc: Added rpc server-side backchannel handling
- FIXME: bhalevy: write up commit message
- Need to discuss multiple per client session fore and back channel support.
- Ensure the server passes all of the pynfs4.1 testserver.py tests.
- A bit of work here.
- Ensure the server passes all of the pynfs4.0 testserver.py tests that the unpatched server pases over a v4.0 mount when CONFIG_NFSD_V4_1 is configured, and when it is not.
- A bit of work here.
pNFS Todo List
- [2009-02] Complete file layout server-to-server stateid distribution implementation. pNFS File-based Stateid Distribution Design (Dean)
- [2008-10] Properly define NFS4_DEV_NOTIFY_MAXENTRIES to handle anything that fits in the negotiated max. request size for the backchannel.
- [2008-06-30] Separate pnfsd export and callback API out of export_operations. (Ricardo)
- [2008-06-30] Clean up pnfsd callback vector registration model. Provide for orderly nfsd shutdown to allow the filesystem to recall layouts upon shutdown.
- [2008-04-02] Implement pnfs-aware page sync state model.
- Bug 173 - Need to retry EXCHANGE_ID and CREATE_SESSION to Data Server
kABI
- Identify new exported functions (Ricardo)
- Identify updated data structures (Ricardo)
- How shall the user specify to user pNFS for a mount?
- Today it's based on the previously loaded pNFS module
- Should this be a mount option? Should it always try pNFS if the server supports it?
Done
- [2008-08] Revamp reply cache for nfsv4 and nfsv4.1. (Andy)
- [2008-08] Trond verbally NACKed rpc_call_validate_args, suggest looking into using existing rpc_call_prepare infrastructure instead. (Andy)
- [2008-06-30] Change fs/nfsd/nfs4xdr.c decoding/encoding to table based (bhalevy)
- [2008-04-07] Prepare and send nfs41 patches for review. (bhalevy)
- Depends on support for concurrent 4.0 and 4.1 mounts.
- [2008-04-07] Add an option for nfsv4.1 to the nfs mount program.
- "{nfs,}vers=41" seems to be the most appropriate. See nfs_mount_option_tokens in fs/nfs/super.c. Note that kernel nfs root (in fs/nfs/nfsroot.c does not current (2.6.25-rc8) support root over nfsv4 only "nfsvers=[23]".
- [2008-04-07] Support concurrent nfsv4.0 and 4.1.
- Get rid of global nfs4_procedures and move the pointer to struct nfs_client. (bhalevy)
- nfs_version4 should not be global. We apparently need to either:
- Split nfs_version and nfs_program to nfs_{version,program}4 and nfs_{version,program}41, make them static in fs/nfs/client.c and use either based on minorversion, or
- teach rpc code, e.g. rpc_bind_new_program about minor version (and represent it in struct rpc_version). (bhalevy)
- Manage callback threads for 4.0 and 4.1
- Can either keep a separate use count, or
- bring them up and down together. (rlabiaga)
- Agree on LD API changes for block layout (Fred and Dean) then merge generic pnfs patch (fred-pnfs) into pnfs branch. (bhalevy)
- [2008-04-02] Implement layout stateid as per draft-21+ (andros)