> 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.
