device polling takes more CPU hits??

Don Bowman don at sandvine.com
Mon Jul 26 08:35:56 PDT 2004


From: James [mailto:haesu at towardex.com]
> Hi Don,
> root at r2.bos# sysctl kern.clockrate
> kern.clockrate: { hz = 4000, tick = 250, tickadj = 1, profhz 
> = 1024, stathz = 128 }

That's a pretty high HZ, here's what i have:
kern.clockrate: { hz = 2500, tick = 400, tickadj = 1, profhz = 1024, stathz
= 128 }

I have the same box spec as you, only with em (bge doesn't
support polling, but it has its own interrupt coalescer that works...
you can tune that in the if_bge.h I think, there's some comments).
I'm doing ~800Kpps with polling. My polling params are below.

>         
> root at r2.bos# sysctl kern.polling
> kern.polling.burst: 150
> kern.polling.each_burst: 5
> kern.polling.burst_max: 150
> kern.polling.idle_poll: 1
> kern.polling.poll_in_trap: 1
> kern.polling.user_frac: 50
> kern.polling.reg_frac: 20
> kern.polling.short_ticks: 4909
> kern.polling.lost_polls: 11464
> kern.polling.pending_polls: 0
> kern.polling.residual_burst: 0
> kern.polling.handlers: 1
> kern.polling.enable: 1
> kern.polling.phase: 0
> kern.polling.suspect: 10249
> kern.polling.stalled: 3
>                                                               
>                   root at r2.bos# sysctl machdep.cpu_idle_hlt
> machdep.cpu_idle_hlt: 1
> 

kern.polling.burst: 1000
kern.polling.each_burst: 80
kern.polling.burst_max: 1000
kern.polling.idle_poll: 1
kern.polling.poll_in_trap: 0
kern.polling.user_frac: 5
kern.polling.reg_frac: 120
kern.polling.short_ticks: 29
kern.polling.lost_polls: 55004
kern.polling.pending_polls: 0
kern.polling.residual_burst: 0
kern.polling.handlers: 4
kern.polling.enable: 1
kern.polling.phase: 0
kern.polling.suspect: 50690
kern.polling.stalled: 25


More information about the freebsd-net mailing list