dumb KSE question
Petri Helenius
pete at he.iki.fi
Sat Jul 12 00:01:12 PDT 2003
Julian Elischer wrote:
>On Fri, 11 Jul 2003, Andrew Gallatin wrote:
>
>
>
>>We have a driver which will block a thread in a cv_timewait_sig()
>>after it calls into driver via an ioctl. Under libc_r, this will
>>naturally block the entire process until the driver wakes it up via a
>>cv_signal().
>>
>>I assume that with KSE, the UTS will schedule another thread to run as
>>a result of calling the cv_timewait_sig()? Ie, it won't block the
>>entire process?
>>
>>
>
>yes, both libthr and libkse will allow your process to continue, sans
>thread.
>
>
>
Would this also work with netgraph? Say an userland process waiting for
"go ahead" signal at an ioctl in netgraph node (no data transfer
neccessary)?
How expensive in relative terms is cv_signal? Should I moderate calls to
it if the above works fine othervise? In most cases the wait list would
be empty, so the question more or less is if I should have a separate
indication
of somebody waiting for the condition or if the infrastructure of cv_* is
optimized enough to do that for me. I would probably be calling cv_signal
every time going out from interrupt context in the driver receiving
packets.
Pete
More information about the freebsd-threads
mailing list