http://phk.freebsd.dk/patch/context_time.patch This is just a proof of concept, it doesn't have all the tricky bits for determining max TSC rate on machines where the cpu clock is fiddled with and it doesn't have a fallback for machines without TSC etc etc. But in your average i386 (and probably amd64) system it should work. I am very interested to hear feedback and benchmarks of this patch. The two most critical measurements are: * "how does it affect workloads which do many context switches" and * "how does this affect CPU time accounting." To measure the latter, make absolutely sure your machine doesn't play power saving tricks with the TSC/cpu clock. A quick sanity check reveals no obvious bogons in cpu time accounting and unixbench's context1 switch shows 23% improvement on my testbox: x _reference + _patched +--------------------------------------------------------------------------+ |x xx x + ++ ++| | |_AM_| |____A___|| +--------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 5 48370 49433 48997 48959.8 380.65693 + 5 59107 61079 60536 60376.4 786.45458 Difference at 95.0% confidence 11416.6 +/- 901.059 23.3183% +/- 1.84041% (Student's t, pooled s = 617.823) -- 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.Received on Mon Nov 28 2005 - 21:11:29 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:48 UTC