new network device driver polling (IFPOLL_ENABLE)

Sepherosa Ziehau sepherosa at gmail.com
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
X86_64_GENERIC (options IFPOLL_ENABLE)

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
CPUs.

Best Regards,
sephe

-- 
Tomorrow Will Never Die


More information about the Users mailing list