new network device driver polling (IFPOLL_ENABLE)

Sepherosa Ziehau sepherosa at
Sat Oct 20 05:38:08 PDT 2012

Hi all,

I am on the way to convert the network device drivers which support
polling(4) to the new polling code.  New polling code supports
multiple hardware queues.  Currently jme(4), igb(4), emx(4) and bnx(4)
have been converted.  jme(4), igb(4) and emx(4) are multiple hardware
queues capable.

To enable/disable the new polling on the supported devices:
ifconfig iface0 npolling
ifconfig iface0 -npolling

npolling/-npolling exist in the ifconfig(8) for many years, so no need
to recompile world :)

Drivers which support new polling will have sysctl nodes to control on
which CPUs to run the polling code.  The default value will try to
spread the work load evenly across CPUs, e.g.
hw.igb0.npoll_rxoff: 0
hw.igb0.npoll_txoff: 0
hw.bnx0.npoll_stfrac: 40
hw.bnx0.npoll_cpuid: 0

New polling's sysctl nodes are at:
sysctl net.ifpoll

New polling code is enabled by default on master in GENERIC and

Rest of the drivers which supports polling(4) will be converted later
on.  Once all drivers are converted, "ifconfig iface0
polling/-polling" will behave same as npolling/-npolling.  "ifconfig
iface0 pollcpu X" will be dropped eventually; you will need to use the
device specific sysctl nodes to put the polling load to the target

Best Regards,

Tomorrow Will Never Die

More information about the Users mailing list