Sparc slowdown - problem identified...
brandt at fokus.fraunhofer.de
Fri Aug 15 03:20:46 PDT 2003
it seems I have identified which commit causes the slow down on some
sparcs. The kernel from just before that commit works just fine, the
kernel from just after it is 3x slower on my Ultra-10 (as was also
reported by others). I have no idea why that happens. The only difference
in the time -l report is user and system time going up by a factor of
three and the involuntary context switches doubling.
It is also not (easily) possible to revert that commit, because of other
changes (for example, pci.c:1.220). When I simply revert the change, the
machine gets a missed data trap when accessing register 14 on non-existing
slots, when I add register 14 in the if() at the start of
psycho_read_config, the machine freezes after finding pci1.
Could please someone of the low-level sparc experts look at the problem?
While doing my binary search I also noted a gradual shift in performace
with time in the order of 5% (performance getting worse) in two month.
Wouldn't it be feasable to, let's say, run once or twice a week two simple
benchmarks (one disk bound, the other cpu bound) on a fresh kernel and
have the results available on a web-site, so that we can note such
brandt at fokus.fraunhofer.de, harti at freebsd.org
---------- Forwarded message ----------
Date: Sat, 21 Jun 2003 18:26:08 -0700 (PDT)
From: John-Mark Gurney <jmg at FreeBSD.org>
To: src-committers at FreeBSD.org, cvs-src at FreeBSD.org, cvs-all at FreeBSD.org
Subject: cvs commit: src/sys/sparc64/include bus.h cpufunc.h
src/sys/sparc64/pci psycho.c src/sys/sparc64/sparc64 support.S
jmg 2003/06/21 18:26:08 PDT
FreeBSD src repository
sys/sparc64/include bus.h cpufunc.h
sys/sparc64/sparc64 support.S trap.c
add support for peeking at pci busses on UltraSparc systems. This prevents
data access errors when trying to read/write to non-existant PCI devices.
fix the psycho bridge to use peek for probing devices. This no longer
fakes it if the OFW node doesn't exist (and the reg == 0).
Reviewed by: jake, tmm
Revision Changes Path
1.28 +27 -0 src/sys/sparc64/include/bus.h
1.17 +9 -0 src/sys/sparc64/include/cpufunc.h
1.39 +19 -12 src/sys/sparc64/pci/psycho.c
1.27 +52 -0 src/sys/sparc64/sparc64/support.S
1.64 +25 -0 src/sys/sparc64/sparc64/trap.c
More information about the freebsd-sparc64