Call for performance evaluation: net.isr.direct (fwd)
Bruce Evans
bde at zeta.org.au
Fri Oct 14 16:20:35 PDT 2005
On Fri, 14 Oct 2005, Poul-Henning Kamp wrote:
> In message <17231.43525.446450.161986 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.
Um, I have already pointed out that NDAs are not necessary.
They (and staic lists) are also not sufficient. E.g., on my A7V-266E
system (AXP on KT266A motherboard), the following breaks the TSC for
timecounting:
# Athlon idle hack for my KT266A.
pciconf -w -b pci0:0:0 0x92 0xf9 # 79 -> f9
pciconf -w -b pci0:0:0 0x95 0x1a # 18 -> 1a
Enough is freely disclosed, and the hardware is perfectly safe, but
only if it configured without the (idle == really idle) setting which
is set by the above hack but not by the BIOS. This setting reduces
the temperature of a mostly-idle AXP system by about 10 degrees C.
IIRC, the (idle == really idle) feature is entirely in the CPU and the
hack just changes the state of the pins that control this feature.
The breakage is much the same for 2 different generations of AXPs (a
'1600 and a '2200) -- it causes jumps in the milliseconds per second
range where without it there is only temperature-related drift in the
nanoseconds per second range. I suspect all AXPs have this feature
so they all have a potentially-broken TSC timecounter.
Bruce
More information about the freebsd-net
mailing list