tcp_isn_tick() / dummynet() callout madness ?
Poul-Henning Kamp
phk at phk.freebsd.dk
Sun Jan 30 23:56:47 PST 2005
In message <20050131011241.F64157 at odysseus.silby.com>, Mike Silbersack writes:
>That sounds neat, but I'm not sure it's a good idea. In the case of tcp
>timers, there are multiple locks that are relevant, if I'm not mistaken.
>I also have this feeling that when mutex contention really matters, under
>serious load, it wouldn't be a good idea to indefinitely delay some
>callouts.
It is a good idea, if nothing else because it prevents us from stalling
softclock on a mutex we cannot get (for a long time).
>I'd propose a simpler approach: Two callout wheels. A "fast" callout
>wheel for short callouts (like tcp_isn_tick), and a "slow" callout wheel,
>for things like tcp timers which we should handle quickly, but won't care
>too much if they get delayed.
That is a worse idea because it almost doubles the overhead.
>Scott, in your reply to this you mention the importance of callouts firing
>on time - do we have such important callouts? Thinking from a system
>resource perspective, are there callouts that free memory, garbage
>collect, etc? It would make sense to give those priority over less
>critical timers which might block.
Yes, timeout firing precision is important.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the freebsd-current
mailing list