Software interrupt thread for msg and event handler should be binded to each CPU,
and since it is not required to sync between those threads, INTR_MPSAFE is the
correct flag.
Submitted by: Hongjiang Zhang <honzhan microsoft com>
Differential D4800
Hyperv: vmbus: Use INTR_MPSAFE in swi_add and bind swi thread to each CPU. honzhan_microsoft.com on Jan 6 2016, 2:42 AM. Authored by Tags None Referenced Files
Details Software interrupt thread for msg and event handler should be binded to each CPU, Submitted by: Hongjiang Zhang <honzhan microsoft com>
Diff Detail
Event Timeline
Comment Actions I find another way to remove SWI. We can add "struct task" for each CPU, and schedule a task in hard interrupt handler via taskqueue_enqueue(taskqueue_fast, task[curcpu]). Then we don't need spawn a thread for each CPU. In such way, the code logic is actual more simple. Comment Actions Using per-cpu taskq thread is used to avoid 'remote schedule', i.e. ipi. By reusing taskqueue_fast, you end up w/ only one event handler thread; that's obviously not what we want for the upcoming vRSS support. Comment Actions The change is for message which is mainly the commands to setup channel, remove channel, etc. they are not performance critical like event handling. Or they are not related to NIC performance. |