Another TODO list : nfsd
I love todo-lists. They are liberating. If you don't know what to work on next, you write a TODO list. Then you just work through the things on the list. Or maybe you don't, but having written them all down, they no longer rattle around in your brain and distract you from more important things.
Anyway, to the point. Someone recently asked me what my priorities for the Linux NFS server were and while I'm not spending a lot of time on it at the moment, there are things that I would like to see done, so I wrote a little todo list. And having written it, I might as well share it. So here it is...
BULLET - auto-adjust the number of nfsd threads. I'd really like the sysadmin not to have to choose a number, but it should still be possible to set a maximum. I imagine: BULLET - slow growth when there is high load and we have never had this many running before BULLET - slow decay in numbers when <50% are in use fast growth when we have dropped below the highwater mark and load is high BULLET - A maximum that is somehow based on the requested number of threads BULLET - Some way of measuring if extra threads in actually improving throughput, and feed that in to the growth calculations.
BULLET - Find a way to overcome the current bottle neck when replying to requests on a udp socket.
BULLET - explore whether it would help to make the scheduling of nfsd threads more SMP (and NUMA) aware.
BULLET - Finalise and implement upcall changes to support new NFSv4 features like auth-type selection and fs_locations
BULLET - make exporting of filesystem via NFSv4 work more smoothly (mountd should automatically create the 'virtual filesystem' thing).