On Fri, 22 Jan 2010 17:13:09 -0500 (EST) Rick Macklem wrote: > On Fri, 22 Jan 2010, Rick Macklem wrote: > >> >> There should probably be some sort of 3 way handshake between >> the code in nfs_asyncio() after calling nfs_nfsnewiod() and the >> code near the beginning of nfssvc_iod(), but I think the following >> somewhat cheesy fix might do the trick: >> > [stuff deleted] > I know it's a little weird to reply to my own posting, but I think > this might be a reasonable patch (I have only tested it for a few > minutes at this point). > > I basically redefined nfs_iodwant[] as a tri-state variable (although > it was a struct proc *, it was only tested NULL/non-NULL). > 0 - was NULL > 1 - was non-NULL > -1 - just created by nfs_asyncio() and will be used by it > > I'll keep testing it, but hopefully someone else can test and/or > review it... rick
I applied your patch to FreeBSD8.0 (the box I get on weekend :-), mounted 10 shares, set vfs.nfs.iodmaxidle=10 (to have nfsiod creation more frequently) and have been running tests for 4 hours -- just to check the patch does not break anything. No issues have been detected. It would be very nice to have this patch committed. -- Mikolaj Golub _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"