CVSROOT: /cvs Module name: src Changes by: kette...@cvs.openbsd.org 2014/11/30 15:26:15
Modified files: sys/arch/sparc64/include: mdesc.h sys/arch/sparc64/sparc64: autoconf.c lock_machdep.c locore.s mdesc.c Log message: SPARC T4 and later have a pause instruction to voluntarily pause a virtual processor in order to give other strands a chance to run. Use it in __mp_lock_spin_hook() to avoid wasting CPU cycles if we're waiting for the kernel or scheduler locks. This is instruction is patched in, just like we already do for the sleep instruction on SPARC64 VI processors. We look at the hwcap-list property of the cpu nodes in the machine description to decide whether the pause instruction is available.