device polling on 6.2-stable..use? yes/no?

Pieter de Goeje pieter at degoeje.nl
Wed Jun 27 09:16:27 UTC 2007


On Tuesday 26 June 2007, JD Bronson wrote:
> Anyone using device polling on 6.2stable (i386) ?
I have been using it.
> I have been reading up on this and seen some good and some bad but
> nothing definitive.
Basically you improve efficiency at the cost of latency, so expect lower CPU 
usage. To reduce latency one can increase HZ.
>
> I have bge NICs in these machines and they are running as routers,
> and  running pf.
>
> When I enabled it in the kernel and then via rc.conf (since sysctl
> use is depreciated now) ...I can see a difference in "vmstat -i"
> presuming thats the correct way to check.
Yes that would work.
>
> With polling DISABLED...vmstat shows ever increasing values for example:
>
> vmstat -i
> interrupt                          total       rate
> irq4: sio0                             3          0
> irq6: fdc0                            10          0
> irq14: ata0                        12210          0
> irq15: ata1                        78834          2
> irq22: bge0                       430416         11
> irq23: bge1                       917826         24
> cpu0: timer                     75098549       2000
> cpu1: timer                     75092636       1999
> Total                          151630484       4038
>
> and when I do a large network operation (like ftp an ISO) it
> increases and increases....however, with device polling compiled and
> configured (all default values though in sysctl) - I do not see an
> increase in vmstat numbers for the nics...I figured thats good...but
> I might be wrong?
Yup that's good. With polling off, you should never see it increase much 
beyond ~8000 interrupts/sec, the theoretical limit for an 100mbit connection 
with 1500 mtu while doing a big transfer. You can also check with 
systat -vmstat 1.
>
> I dont do anything higher than WAN(10MB) and LAN(100MB).
>
> But if anyone has any suggestions or comments  -especially values to
> adjust in sysctl, please chime in.
If you want lower latency (or if you experience packet loss) you could set
the kern.hz tunable (in loader.conf) to something higher than the default 
1000. I believe that people have been using 10000 for busy routers. Note that 
this will increase CPU load when the system has no packets to process.
>
> TIA
>
> -JD

Cheers,
Pieter de GOeje


More information about the freebsd-questions mailing list