TCP ISN increment without periodic callout

Alexander Motin mav at FreeBSD.org
Fri May 6 16:48:23 UTC 2011


Hi.

Our TCP ISN mechanism uses callouts with 100Hz rate to implement linear
ISN increment. For many systems it is the most active callout now. It
was less important before, but now it uses additional timer interrupts
in cases when new event timers subsystem could skip them, allowing CPU
to remain in deeper sleep state, saving power.

I've implemented simple patch, removing that periodic callout and
updating ISN directly inside tcp_new_isn() function, taking to account
how much time (ticks) passed since the last call:
http://people.freebsd.org/~mav/no_isn_callout.patch

Comparison on 3-CPU system shows idle interrupt rate reduction from
140Hz to 70Hz with this patch.

Any comments/objections?

-- 
Alexander Motin


More information about the freebsd-net mailing list