em(4) can't enable device polling

I'm trying to enable polling on em0 ( Intel 82583v chip) but not work.

After I compile custom kernel with options DEVICE_POLLING and HZ=1000 trying to set with ifconfig em0 polling but not appear in:
Code:
em0: flags=8867<UP,BROADCAST,DEBUG,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
I'm using 13.1-RELEASE.

If I try with some Realtek nic re(4) everything work fine and can enable polling.

Did I miss something or em(4) and polling not working?
 
The manual page for polling(4) suggests that it works with the em(4) driver.

So I took a look at the device drivers in /usr/src/sys/dev/e1000/if_em.c and /usr/src/sys/dev/rl/if_rl.c.

The RealTek 8129/8139 PCI NIC rl(4) driver has numerous instances of #ifdef DEVICE_POLLING, along with the code segments to support polling. The Intel(R) PRO/1000 Gigabit Ethernet adapter em(4) driver has none.

Then I found this in /usr/src/sys/dev/e1000/README: Device Polling is only valid for non-SMP kernels.

So my best guess is that support for polling in the em(4) driver got dropped when SMP support got added. Maybe somebody more familiar with the landscape and history will comment.
 
gpw928 you are right! there no code segmentation for polling in if_em.c. Last driver em(4) that have polling is in 11.4-RELEASE.
I have old cyberoam hardware with 3 gigabits port (82583v) and 1Ghz single core AMD cpu. Have 400-480Mbits throughput with in-kernel nat. If I could be able to enable polling to got more performance...
 
Back
Top