Messages in this thread | | | Date | Thu, 6 May 1999 17:28:19 +0530 (IST) | From | Prasanna Gokhale <> | Subject | Query about task Queues... |
| |
In case of using task queues for deferred processing in an interrupt handler (isr), A task statically defined as type tq_struct is usually used to queue for dpc by the call to queue_task().
Meanwhile, if another interrupt occurs, the same task can obviously be NOT queued again as long as the previously queued task is not scheduled. Otherwise the scheduler will go in an infinite loop. How do you guarantee in an isr that the previously queued task is already scheduled ?
And obviously, allocating memory for a tq_struct in an isr is not recommended.
Or should I maintain a list of tq_struct structures initially allocated , and pick up an unused one everytime an interrupt occurs.? How is deferred processing(bottom halves) using task queues usually implemented.?
I cannot use bottom halves as I intend the driver to be a dynamically loadable.
- Prasanna Gokhale
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |