Subject: Re: [ (Gordon W. Ross): NFS, mountroot]
To: None <port-sun3@sun-lamp.CS.Berkeley.EDU,>
From: Chris G. Demetriou <cgd@postgres.Berkeley.EDU>
List: port-sun3
Date: 02/15/1994 15:55:16
[ glass fwd'd the message from following message to port-sun3 to me for
  comment ]

> I did a little hacking on nfs_mountroot() and noticed that it
> calls functions that sleep!  This is while there is nothing but
> process zero.  Is it OK to sleep at this stage? 

yes, as far as i know.  proc0 is the current proc (as noted by
curproc), and all of the scheduling and timeout functions have been
initted (right before mountroot, in fact!).

> I would think it is NOT allowable because there is no idle process
> to run.

there never *is* an idle process to run.  if there are no runnable
processes the cpu isn't spinning. Rather, it uses 'stop' instruction
to wait for interrupts.

> I'm not sure what happens when nfs_request/sorecieve sleeps
> waiting for an RPC reply, but I think it ends up immediately
> continuing process zero (not waiting for the RPC reply).

Dunno why this would happen; are you sure it does?

> Has the nfs_mountroot code been tested on any other platforms?

unless i'm mistaken, it's being used on the sparc port, too.

> Does it need fixing?

No, i believe it's fine as is.