Interrupts + Polling mode (similar to Linux's NAPI)

Fabien Thomas fabien.thomas at
Tue Apr 28 08:40:52 UTC 2009

To share my results:

I have done at work modification to the polling code to do SMP polling  
(previously posted to this ml).

SMP polling (dynamic group of interface binded to CPU) does not  
significantly improve the throughput (lock contention seems to be the  
cause here).
The main advantage of polling with modern interface is not the PPS  
(which is nearly the same) but the global efficiency of the system  
when using multiple interfaces (which is the case for Firewall).
The best configuration we have found with FreeBSD 6.3 is to do polling  
on one CPU and keep the other CPU free for other processing. In this  
configuration the whole system
is more efficient than with interrupt where all the CPU are busy  
processing interrupt thread.


More information about the freebsd-net mailing list