Date: Tue, 18 Oct 2005 10:09:33 -0700 From: Nate Lawson <nate@root.org> To: Nate Lawson <nate@root.org> Cc: cvs-src@FreeBSD.org, Poul-Henning Kamp <phk@phk.freebsd.dk>, src-committers@FreeBSD.org, Andrew Gallatin <gallatin@cs.duke.edu>, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/amd64/amd64 cpu_switch.S machdep.c Message-ID: <43552C4D.7060802@root.org> In-Reply-To: <435527DD.3040007@root.org> References: <20051018094402.A29138@grasshopper.cs.duke.edu> <68671.1129643256@critter.freebsd.dk> <17237.286.236279.883806@grasshopper.cs.duke.edu> <435527DD.3040007@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Nate Lawson wrote: > Andrew Gallatin wrote: > >> Poul-Henning Kamp writes: >> > In message <20051018094402.A29138@grasshopper.cs.duke.edu>, Andrew >> Gallatin wri >> > tes: >> > > >It is a shame we can't find a way to use the TSC as a >> timecounter on >> > >SMP systems. It seems that about 40% of the context switch time is >> > >spent just waiting for the PIO read of the ACPI-fast or i8254 to >> > >return. >> > > No, the shame is that the scheduler tries to partition time rather >> > than cpu cycles because that approximation got goldplated in some >> > random standard years back. >> >> Sorry if I mi-spoke. I guess the shame twofold. >> First we insist on not trying keep the TSC in sync and so we don't use >> it for SMP timekeeping like other OSes do, which means that getting a >> micro-second granularity timestamp is orders of magnitude more >> expensive for us. To compound the problem, we insist on using the >> expensive non-TSC binuptime() to get a runtime measurement on each >> context switch, rather than being able to use something cheap like >> ticks, or a per-cpu cycle counter. > > > I have good information that in the near future, most designs will have > guaranteed synchronized TSC across all CPUs. Oops, I not only meant "synchronized" but also "the same value". -- Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43552C4D.7060802>