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...
-
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:
- slow growth when there is high load and we have never had this many running before
- slow decay in numbers when <50% are in use fast growth when we have dropped below the highwater mark and load is high
- A maximum that is somehow based on the requested number of threads
- Some way of measuring if extra threads in actually improving throughput, and feed that in to the growth calculations.
- Find a way to overcome the current bottle neck when replying to requests on a udp socket.
- explore whether it would help to make the scheduling of nfsd threads more SMP (and NUMA) aware.
- Finalise and implement upcall changes to support new NFSv4 features like auth-type selection and fs_locations
- make exporting of filesystem via NFSv4 work more smoothly (mountd should automatically create the 'virtual filesystem' thing).
