cvs commit: src/sys/amd64/amd64 cpu_switch.S machdep.c
Nate Lawson
nate at root.org
Tue Oct 18 10:10:40 PDT 2005
Nate Lawson wrote:
> Andrew Gallatin wrote:
>
>> Poul-Henning Kamp writes:
>> > In message <20051018094402.A29138 at 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
More information about the cvs-all
mailing list