device polling takes more CPU hits??

Marko Zec zec at tel.fer.hr
Tue Jul 27 04:52:03 PDT 2004


James,

what timecounter method are you using, i8254 or TSC? The polling code 
frequently calls microuptime(), which is very expensive (slow) with i8254, 
while being reasonable fast with TSC. Since you are running with quite high 
system clock (4 kHz), using i8254 could be causing the problems you've 
described.

Cheers,

Marko



On Monday 26 July 2004 22:27, Don Bowman wrote:
> From: James [mailto:haesu at towardex.com]
>
> > I have two boxes behind em0 that I can use to generate
> > 250kpps to another vlan
> > within em0 card as a test, so that bge0 is not involved in
> > the stress test.
> > Even when doing so, CPU load climbs higher with device
> > polling turned on.
> > Opened up systat, etc to check the interrupts, and em0 is
> > generating 0
> > interrupts with device polling on (as obvious), but general
> > interrupt load
> > climbs rock high.. so I don't know what's causing it to
> > climb. Cleared the
> > firewall rules as well as a test... no difference :(
> >
> > Oh also, just FYI, each vlan interface has link0 set, since
> > em(4) supports
> > hardware 802.1q tag/detagging.
>
> The CPU time during the 'polling' is charged to interrupt,
> even though it occurs during softclock. That's why you
> see 0 interrupts, but high CPU usage in interrupt.
> Did u try lowering the 'register' access?
>
> --don


More information about the freebsd-net mailing list