tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
re: dev/ic/com.c, callouts and cv_wait
> I have used cv_wait from kernel threads before, but I have never
> attempted to do use them from a callout (I don't think). Did I miss
> something, or is this case not allowed??
callouts run from softint threads, and softint threads are a
limited resource -- only one per level per cpu, so if one of
them blocks waiting for something, it means *all* processing
at that level is blocked until the resource is back. we tend
to disallow this usage because it can lead to weird locking
and hang/starvation issues.
you may want to create a dedicated kernel thread to run the
real processing in, using the callout to trigger that thread
perhaps, or avoid it entirely and directly triggering the
thread from whatever is triggering the softint now.
there's also workqueue(9) that might supply much of the setup
you need.
.mrg.
Home |
Main Index |
Thread Index |
Old Index