Bakeathon 2007 Issues List
From Linux NFS
- Complete server export getdeviceinfo/getdevicelist implementation [Marc/Dean]
- Number of sessions slots hardcoded to be number of rpc slots. Need ability to dynamically change this value. rpc_slots is ceiling on sessions_slots. Dynamic slot allocation on client and server. [Ricardo]
- Sessions priority on sessions slot table. Change to use priority wait queue for slot table. (will do fair scheduling) [Ricardo]
- Session/sunrpc retry behavior [Ricardo]
- Somewhat solved in 2.6.23, but need to rebind connection to session. It should be breaking the connection (Trond mentioned this already is done).
- Status: Open
- Session interupt issues
- On interupt, client sends async OP_SEQUENCE. Based on result,fix up seqid. Slot should not be released until seqid is correct.
- If next op fails the session is retried. Session error marks session as invalid. Tearing down session and starting again is too big a hammer.
- Status: Open
- Create clientid
- Client currently using ip address for MDS and NULL for data server (for client ip address). We need to ensure a value for the client is given to the data server. One proposal is to use the hostname of the client (instead of the ip address) for both the MDS and DS, possibly limiting its length to 64 bytes. Patch created for 2.6.18 which sends hostname (first 16 bytes) to DS's. [??]
- Status: Open - critical
- Destroy clientid.
- It always takes 2 SESSIONID requests to create a client. The first is the previous client and the second is a new string for the identifier. A possible solution is to ensure we call DESTROY_CLIENTID once the last [Ricardo]
- Status: ??
- Client layout synchronization issues. (Need more info) [Benny]
- 2.6.18 client port to 2.6.2X-XX [Andy, Ricardo]
- Managing layout segment (alloc/inject layout) [Andy, Benny]
- Status: Open - optimization
- Layout device/lease [?]
- Layouts and devices need to be destroyed when lease ends
- Status: Open - critical
- Inefficient Delegation and Layout recall [?]
- Implement hash table keyed on filehandle to lookup state information on delegation and layout recalls.
- Status: Open - optimization
- Continue to use devicelist on mount? [??]
- Status: Closed - (yes, for the forseeable future)
- MDS/DS I/O syncronization, need to determine if 'commit' needs to be sent to data servers and/or MDS [??]
- Interface to layout driver is fine (sends list of dirty pages) but need flag to indicate if those pages were written to a data server or MDS (might also need another flag to say that once they are committed they also need to be layoutcommitted)
- Status: Open - critical
- Layoutget clienttiming [Andy pay attention as code ported forward]
- Put when write/read chunk size determined (nfs_pageio_init_write/read)
- Status: Closed - (Andy moved timing of layoutget as stated)
- On OPEN, call LAYOUTGET with zero offset and extent values. This indicates to the server/fs to give whatever layout range it wishes.
- Status: Open - optimization
- Asyncronous layoutget
- Status: Closed - (Requires investigation of performance benefit)
- Server 4.1 replay cache [?]
- Status: Open - [Extra 4.1 correctness work, not required for kernel acceptance]
- Layout driver API and layout driver callback API needs to be streamlined and optimized [?]
- Avoid having layout driver calling NFS common code directly, it should use the layout driver callback API.
- Status: Open - optimization
- Must call layoutcommit before removing pages from page cache.
- Status: Open - [Extra 4.1 correctness work, not required for kernel acceptance]
- devicelist crashes kernel if use 4KB pages [?]
- Need to dynamically allocate devlist
- Status: Open - critical