Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/arch/sparc

Module Name:    src
Committed By:   mrg
Date:           Thu Jan 13 05:20:27 UTC 2011

Modified Files:
        src/sys/arch/sparc/include: cpu.h
        src/sys/arch/sparc/sparc: cpu.c cpuvar.h locore.s machdep.c
            trap.c vm_machdep.c

Log Message:
introduce a hack to workaround the savefpstate IPI get's NULL
struct fpstate *.

add a new entry point ipi_savefpstate() that is used for this IPI
instead of the plain ipi_savefpstate().  check for %o0 being NULL,
and if so, just return.

add event counters for the savefpstate IPI, and another one for
when it detects the NULL problem.

make the cpu_info struct xmpsg be aligned to a single cache line.

with this change applied (and another minor change in testing) my
SS20 with dual SM75's has survived for 17 hours on -j5,
and has reported 7 NULL savefps.  (the minor change seems to have
a significant effect at reducing this number, but more testing is
needed for it.)

XXX:  this is horrible and we really need to find the real problem
XXX:  but this should let people use sparc smp again, and fixes
XXX:  for the real problem can be tested by seeing if any of the
XXX:  savefp IPI null counter becomes non-zero.

To generate a diff of this commit:
cvs rdiff -u -r1.89 -r1.90 src/sys/arch/sparc/include/cpu.h
cvs rdiff -u -r1.223 -r1.224 src/sys/arch/sparc/sparc/cpu.c
cvs rdiff -u -r1.83 -r1.84 src/sys/arch/sparc/sparc/cpuvar.h
cvs rdiff -u -r1.61 -r1.62 src/sys/arch/sparc/sparc/
cvs rdiff -u -r1.258 -r1.259 src/sys/arch/sparc/sparc/locore.s
cvs rdiff -u -r1.303 -r1.304 src/sys/arch/sparc/sparc/machdep.c
cvs rdiff -u -r1.184 -r1.185 src/sys/arch/sparc/sparc/trap.c
cvs rdiff -u -r1.101 -r1.102 src/sys/arch/sparc/sparc/vm_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index