Messages in this thread | | | From | "Ashok Raj" <> | Subject | affinity and tasklets... | Date | Mon, 17 Dec 2001 10:32:46 -0800 |
| |
Hello
when i call tasklet_schedule() to do deferred processing, looking at the code it seems like it queues it to the current processor. So typically when a cpu takes interrupt and the isr queues a tasklet, it gets queued to the same processor that took the interrupt.
Assume iam running many protocols on a single piece of hw using the same physical fibre link. Say running Network and storage etc. Most Virtual Interface Hardware, and the new IB technologies allow doing this.
The way the interrupt processing is done is a little bit different, in the sense the intr are ganged. e.g it could report 2 different drivers have completions to process. Now both of those can be processed in parallel, since they share no data.
In a MP case, we would like 2 separate processors taking the completion processing. But running tasklets dont seem to suit this since it basically queues on the same CPU that is currently running, and this means both get queued to the same tasklet_vec[cpu]. But i want each to run on a separate CPU. is using softirq the right method? or could i have cpu affinity for tasklets? (i know there is afficinity for interrupts, but iam not aware of this for tasklets.)
any help is greatly appreciated.
ashokraj
- 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/
| |