Messages in this thread |  | | Date | Tue, 8 May 2001 22:06:43 +0200 | From | Jens Axboe <> | Subject | Re: your mail |
| |
On Tue, May 08 2001, Richard B. Johnson wrote: > > To driver wizards: > > I have a driver which needs to wait for some hardware. > Basically, it needs to have some code added to the run-queue > so it can get some CPU time even though it's not being called. > > It needs to get some CPU time which can be "turned on" or > "turned off" as a result of an interrupt or some external > input from an ioctl(). > > So I thought that the "tasklet" would be ideal. However, the > scheduler "thinks" that a tasklet is an interrupt, so any > attempt to sleep in the tasklet results in a kernel panic, > "ieee scheduling in an interrupt..., BUG sched.c line 688".
Use a kernel thread? If you don't need to access user space, context switches are very cheap.
> So, what am I supposed to do to add a piece of driver code to the > run queue so it gets scheduled occasionally?
Several, grep for kernel_thread.
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |