summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2011-09-30 20:23:18 +0000
committermarius <marius@FreeBSD.org>2011-09-30 20:23:18 +0000
commitc4a8a741fd80ee26b85664d65c614df7abeb15cd (patch)
treeb3a83bd84485238bc0fa008cea1d50da31d975f5 /sys/sparc64
parent0175576bbb095199384c6eb77639d5139105460b (diff)
downloadFreeBSD-src-c4a8a741fd80ee26b85664d65c614df7abeb15cd.zip
FreeBSD-src-c4a8a741fd80ee26b85664d65c614df7abeb15cd.tar.gz
Add a comment about why contrary to what once would think running all of
userland with total store order actually is appropriate.
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/machdep.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/machdep.c b/sys/sparc64/sparc64/machdep.c
index c6252cd..2720448 100644
--- a/sys/sparc64/sparc64/machdep.c
+++ b/sys/sparc64/sparc64/machdep.c
@@ -1015,6 +1015,10 @@ exec_setregs(struct thread *td, struct image_params *imgp, u_long stack)
tf->tf_out[6] = sp - SPOFF - sizeof(struct frame);
tf->tf_tnpc = imgp->entry_addr + 4;
tf->tf_tpc = imgp->entry_addr;
+ /*
+ * While we could adhere to the memory model indicated in the ELF
+ * header, it turns out that just always using TSO performs best.
+ */
tf->tf_tstate = TSTATE_IE | TSTATE_PEF | TSTATE_MM_TSO;
td->td_retval[0] = tf->tf_out[0];
OpenPOWER on IntegriCloud