Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 06 May 2011 19:16:08 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        freebsd-net <freebsd-net@freebsd.org>
Subject:   TCP ISN increment without periodic callout
Message-ID:  <4DC41EC8.5060607@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4DC41EC8.5060607>