cvs commit: src/sys/nfsserver nfs.h nfs_srvsock.c nfs_srvsubs.c

Robert Watson rwatson at FreeBSD.org
Sun Mar 7 11:29:33 PST 2004


On Sun, 7 Mar 2004, Brian F. Feldman wrote:

> Alexander Kabaev <kan at FreeBSD.org> wrote:
> > kan         2004/03/07 08:28:31 PST
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     sys/nfsserver        nfs.h nfs_srvsock.c nfs_srvsubs.c 
> >   Log:
> >   Convert from timeout to callout API.
> >   
> >   Submitted by: rwatson
> 
> Does this "fix" the 1KHz interrupts?

Unfortunately, no.  That will require some changes to the NFS code, but
it's not clear how substantial changes are required.  Right now, the
NFS/RPC code polls a workqueue to see if work needs to happen.  With a bit
of restructuring, it could move to a more scheduled model, where it relies
on callout() to schedule things when they need to happen and maintains a
queue or heap of work items.  One of the nice things about the callout
interface is that it makes the MPSAFE choice explicit to the consumer of
the interface...

Another problem with the NFS code is that each of these callouts requires
Giant; removing Giant from these callouts is another good thing to work
on.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Senior Research Scientist, McAfee Research




More information about the cvs-all mailing list