tcp_isn_tick() / dummynet() callout madness ?
Colin Percival
cperciva at freebsd.org
Sun Jan 30 10:17:41 PST 2005
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.
Colin Percival
More information about the freebsd-current
mailing list