Call for performance evaluation: net.isr.direct (fwd)
Poul-Henning Kamp
phk at phk.freebsd.dk
Fri Oct 14 08:44:38 PDT 2005
In message <17231.50841.442047.622878 at grasshopper.cs.duke.edu>, Andrew Gallatin
writes:
> > >What if somebody were to port the linux TSC syncing code, and use it
> > >to decide whether or not set kern.timecounter.smp_tsc=1? Would you
> > >object to that?
> >
> > Yes, I would object to that.
> >
> > Even to this day new CPU chips come out where TSC has flaws that
> > prevent it from being used as timecounter, and we do not have (NDA)
> > access to the data that would allow us to build a list of safe
> > hardware.
>
>Bear in mind that I have no clue about timekeeping. I got into this
>just because I noticed using a TSC timecounter reduces context switch
>latency by 40% or more on all the SMP platforms I have access to:
>
>1.0GHz dual PIII : 50% reduction vs i8254
>3.06GHz 1 HTT P4 : 55% vs ACPI-safe, 70% vs i8254)
>2.0GHz dual amd64: 43% vs ACPI-fast, 60% vs i8254)
The solution is not faster but less reliable timekeeping, the
solution is to move the scheduler(s) away from using time as an
approximation of cpu cycles.
>However, if the linux solution is not
>correct, then somebody with timekeeping knowledge needs to get
>involved. Is this you?
The linux "solution" is not correct, and timekeeping knowledge I
have, but the solution is in the scheduler where my clue is limited.
>BTW, is an algorithm like Solaris' the "best compromise" you mention
>above? Or is it just keeping the TSC in sync? They seem to maintain
>a high resolution timer based on tsc, and keep it in sync every
>second, and fixup drift on different cpus, and the TSC
>being reset after suspend/resume.
>http://cvs.opensolaris.org/source/xref/usr/src/uts/i86pc/os/timestamp.c
Solaris don't change the tsc frequency by a factor 8 without giving
the OS a chance to know about it.
--
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-net
mailing list