[comp.protocols.nfs] How many nfsd's awake on NFS request - REVISITED

cosc038@csc.canterbury.ac.nz (03/19/91)

In a recent thread in this newsgroup one of the issues discussed was
about whether all nfsd's, or just one, are awoken when an NFS request
was received.  I seem to remember that one conclusion was that in SunOS
4.X only one nfsd process is awoken when an NFS request is received, but
this doesn't seem to be the _default_ behaviour.  This behavious is
controlled by the kernel variable nfs_wakeup_one_nfsd.  In both SunOs
4.0.3 on a sun3, and SunOS 4.1.1 on a sparc2, the value of this variable
is 0, indicating that all nfsds are awoken when an NFS request is
received.  I'm pretty sure that nfs_wakeup_one_nfsd is 0 in systems
shipped by Sun (i.e.  that the reason nfs_wakeup_one_nfsd is 0 is not
because of some local effect on the kernels). 

So, what are the implications of setting nfs_wakeup_one_nfsd to 1? I
note that there is a variable called nfs_wakeup_one_biod which has the
value 1 for both kernels mentioned above. 

-- 
Paul Ashton
Email(internet): paul@cosc.canterbury.ac.nz
NZ Telecom:     Office: +64 3 667 001 x6350
NZ Post:        Dept of Computer Science
                University of Canterbury, Christchurch, New Zealand

seth@ctr.columbia.edu (Seth Robertson) (03/21/91)

[ Highly paraphrased: ]

> Why is nfs_wakeup_one_nfsd set to zero?  nfs_wakeup_one_biod is set
> to one?

I just looked at this under 4.0.3 (my 4.1.X source is delayed, grr.)
and it appears that there is a problem with the wakeup_one() routine
(the XXX comment says that it should be redone to use
so_wupault->wup_func (a function called instead of wakeup)) On the
other hand, I can find no place in the kernel where this variable is
set and the only place it was used was in this one file.

However, this does not answer the question of whether setting this to
one will cause it not to work or whether so_wupault->wup_func (which
is called if set) is used and whether it wakes up all or just one.


As a test, I set nfs_wakeup_one_nfsd to one and made some nfs
operations.  Nothing obviously broke and the access times via nfs
seemed equivalent on a gross scale...


Does anybody else have a better idea of what is happening?

                                        -Seth Robertson
                                         seth@ctr.columbia.edu