CPU selection for ithreads on 8.3

Navdeep Parhar np at FreeBSD.org
Wed May 2 21:16:26 UTC 2012


There seems to be a regression in 8.3 in the way the kernel selects CPUs
for interrupts.  For example, cxgb(4) on 8.3 ends up with all
its ithreads on the same CPU (CPU7 in this case).

12 root     -68    -     0K   816K WAIT    7   0:55  0.00% intr{irq279: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:52  0.00% intr{irq275: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:47  0.00% intr{irq278: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:43  0.00% intr{irq277: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:43  0.00% intr{irq282: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:41  0.00% intr{irq281: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:32  0.00% intr{irq276: 
cxgbc0}
12 root     -68    -     0K   816K WAIT    7   0:31  0.00% intr{irq280: 
cxgbc0}

Back in the day there used to be code in cxgb to bind different
interrupts to different CPUs but it was removed because the kernel
distributed them across CPUs anyway.  So what changed?  This appears 8.3
specific.  I don't see it on head and I don't have a 9 system readily
available right now.

Regards,
Navdeep


More information about the freebsd-hackers mailing list