igb(4) Pondering a bind to cpu patch

Sean Bruno seanbru at yahoo-inc.com
Wed Apr 25 00:11:29 UTC 2012


http://people.freebsd.org/~sbruno/if_igb.c.txt

Scenario I've just seen:

8 core machine
2 igb(4) interfaces
set num_queues=4

igb0:0 --> cpu0
igb0:1 --> cpu1
igb0:2 --> cpu2
igb0:3 --> cpu3

igb1:0 --> cpu0
igb1:1 --> cpu1
igb1:2 --> cpu2
igb1:3 --> cpu3

I suspect, that we need a static global to keep track of what cpu last
was last bound to a queue.  My patch does do this, but I don't know if
its the right thing.

Since I'm doing multiple interfaces, I need to make sure I don't
schedule a queue to a non existent cpu, so take a modulo of the counter
and the number of cpus in the box.  

Perhaps not the most elegant solution, but its a thing?

Sean



More information about the freebsd-net mailing list