[rfc] add non-contiguous CPU ID support to in_rss.c
Adrian Chadd
adrian at freebsd.org
Wed May 21 06:52:29 UTC 2014
Hi Robert,
This patch uses CPU_FIRST() and CPU_NEXT() to iterate over the CPU IDs.
Think this is alright?
-a
Index: sys/netinet/in_rss.c
===================================================================
--- sys/netinet/in_rss.c (revision 266429)
+++ sys/netinet/in_rss.c (working copy)
@@ -176,6 +176,7 @@
rss_init(__unused void *arg)
{
u_int i;
+ u_int cpuid;
/*
* Validate tunables, coerce to sensible values.
@@ -245,11 +246,12 @@
/*
* Set up initial CPU assignments: round-robin by default.
- *
- * XXXRW: Need a mapping to non-contiguous IDs here.
*/
- for (i = 0; i < rss_buckets; i++)
- rss_table[i].rte_cpu = i % rss_ncpus;
+ cpuid = CPU_FIRST();
+ for (i = 0; i < rss_buckets; i++) {
+ rss_table[i].rte_cpu = cpuid;
+ cpuid = CPU_NEXT(cpuid);
+ }
/*
* Randomize rrs_key.
More information about the freebsd-net
mailing list