Subject: Re: [gwr@jericho.mc.com (Gordon W. Ross): NFS, mountroot]
To: None <port-sun3@sun-lamp.CS.Berkeley.EDU, gwr@jericho.mc.com>
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.
chris
------------------------------------------------------------------------------