Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Oct 1995 14:00:00 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, matt@lkg.dec.com
Cc:        hackers@freebsd.org, se@zpr.uni-koeln.de
Subject:   Re: IPX now available
Message-ID:  <199510170400.OAA23474@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> Device drivers will
>> need to be able to sleep in their probe and attach routines for other
>> reasons.  When tsleep() at probe and attach time is implemented,
>> complicated time-dependent orderings (aka races :-) will be easy to
>> implemented - just sleep until the modules that you depend on are
>> loaded.

>It depends on when drivers will be probed but if we assume it's before
>the process initialization, then this begs for kernel threads.  While
>highly desirable, I think kernel threads would be overkill if added
>just for this.  Instead, use of timeout() and proper sync points would
>achieve the same capability at far less implementation cost.

timeout() is no use if there is nothing to give up control to.  I think
some sort of threading is required, and I want something that has the
same interface for drivers that are probed early and ones that are
probed after the system is running normally.  tsleep() is good enough
for the latter case and its interface is probably be good enough for
early use.  tsleep() itself could do something like
`if (cold) next_mini_thread(); else normal_stuff();'.

Br4uce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510170400.OAA23474>