Date: Tue, 24 Apr 2012 17:11:07 -0700 From: Sean Bruno <seanbru@yahoo-inc.com> To: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Cc: Jack Vogel <jfvogel@gmail.com>, John Baldwin <jhb@freebsd.org> Subject: igb(4) Pondering a bind to cpu patch Message-ID: <1335312667.11564.13.camel@powernoodle-l7.corp.yahoo.com>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1335312667.11564.13.camel>