Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Jan 2005 18:59:20 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Colin Percival <cperciva@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: tcp_isn_tick() / dummynet() callout madness ?
Message-ID:  <Pine.NEB.3.96L.1050130185829.15336L-100000@fledge.watson.org>
In-Reply-To: <41FD24C2.5070700@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 30 Jan 2005, Colin Percival wrote:

> Robert Watson wrote:
> > since the callout_reset() is one of the more
> > expensive parts of this code, Colin has been looking at some locking
> > optimizations to lower the cost.
> 
> To elaborate somewhat: I think I can avoid the spinlock cost when
> callouts reset themselves (which is the case here).  However, while this
> will reduce the time spent in the callouts themselves, it's really only
> a 50% solution -- softclock locks and unlocks the callout spin lock each
> time it launches a callout.  If we're spending 5% of our cpu time in
> these two callouts, then they're actually responsible for using 10% of
> our cpu time; I think I can cut that in half, but in the end we can't
> avoid the cost of a mtx_lock_spin / mtx_unlock_spin pair (in softclock)
> for each callout. 

On some further iteration, it transpired that Poul-Henning's configuration
included WITNESS, and without that things look a bit more reasonable.  We
should still run the callout less often, if we can, and I think the
optimization is useful.

Robert N M Watson




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1050130185829.15336L-100000>