Deadlock in the NFS client

Rick Macklem rmacklem at uoguelph.ca
Thu Mar 14 01:20:30 UTC 2013


I wrote:
> Does having a large # of nfsiod threads cause any serious problem for most
> systems these days?
>
> I'd be tempted to recode nfs_asyncio() as above and then, instead of nfs_iodmin
> and nfs_iodmax, I'd simply have:
> - a fixed number of nfsiod threads (this could be a tunable, with the
>        understanding that it should be large for good performance)

I'm probably getting ahead of myself here, since changing nfs_asyncio() may/may not
fix the deadlock, but I thought I'd comment further on the above.

It may be possible to add a new nfs_iod_target (the desired # of nfsiod threads)
and adjust that dynamically based on the ratio of the # of times nfs_asyncio() returns:
  #EIO/#0 --> when there are too many EIO returns, increase nfs_iod_target
          --> very few EIO returns, decrease nfs_iod_target
- Use nfs_iodmin, nfs_iodmax as the limits for nfs_iod_target and set
  nfs_iodmax much larger than it currently is, by default, with
  nfs_iod_target set to what nfs_iodmax is currently set to, by default.

rick



More information about the freebsd-fs mailing list