affinity and tasklets...

Ashok Raj (ashokr2@attbi.com)
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/