freebsd-nq/sys/ia64/ia64
David Xu 4e32b7b3cc Add a lwpid field into per-cpu structure, the lwpid represents current
running thread's id on each cpu. This allow us to add in-kernel adaptive
spin for user level mutex. While spinning in user space is possible,
without correct thread running state exported from kernel, it hardly
can be implemented efficiently without wasting cpu cycles, however
exporting thread running state unlikely will be implemented soon as
it has to design and stablize interfaces. This implementation is
transparent to user space, it can be disabled dynamically. With this
change, mutex ping-pong program's performance is improved massively on
SMP machine. performance of mysql super-smack select benchmark is increased
about 7% on Intel dual dual-core2 Xeon machine, it indicates on systems
which have bunch of cpus and system-call overhead is low (athlon64, opteron,
and core-2 are known to be fast), the adaptive spin does help performance.

Added sysctls:
    kern.threads.umtx_dflt_spins
        if the sysctl value is non-zero, a zero umutex.m_spincount will
        cause the sysctl value to be used a spin cycle count.
    kern.threads.umtx_max_spins
        the sysctl sets upper limit of spin cycle count.

Tested on: Athlon64 X2 3800+, Dual Xeon 5130
2006-12-20 04:40:39 +00:00
..
autoconf.c Create nexus in configure_first() instead of in configure(). This 2005-05-29 23:44:22 +00:00
busdma_machdep.c Add a newline to the printf(). 2006-10-15 16:52:59 +00:00
clock.c Fix previous revision: 2006-10-19 00:53:35 +00:00
context.S
db_machdep.c Simplify the pager support in DDB. Allowing different db commands to 2006-07-12 21:22:44 +00:00
dump_machdep.c Fix a buglet that was present in the ia64 code and that got inherited 2005-07-02 19:57:31 +00:00
efi.c
elf_machdep.c s/R_IA64_/R_IA_64_/g as per the ia64 psABI. 2006-01-17 21:03:22 +00:00
emulate.c Partial support for branch long emulation. This only emulates the 2006-06-29 19:59:18 +00:00
exception.S Improve SMP support: 2005-08-06 20:28:19 +00:00
gdb_machdep.c
genassym.c Revert previous commit. PC_CONS_BUFR is not used nor needed by 2006-11-18 21:48:13 +00:00
in_cksum.c
interrupt.c Now that printf() needs the PCPU, set it up before we call printf(). 2006-11-18 21:52:26 +00:00
locore.S s/R_IA64_/R_IA_64_/g as per the ia64 psABI. 2006-01-17 21:03:22 +00:00
machdep.c Add a lwpid field into per-cpu structure, the lwpid represents current 2006-12-20 04:40:39 +00:00
mca.c Allocate memory for the MCA state information with M_NOWAIT. We can 2006-02-07 02:02:14 +00:00
mem.c
mp_machdep.c Now that printf() needs the PCPU, set it up before we call printf(). 2006-11-18 21:52:26 +00:00
nexus.c o Eliminate nexus_print_resources(). Use resource_list_print_type() 2006-10-23 00:38:58 +00:00
pal.S
pmap.c Make pmap_enter() responsible for setting PG_WRITEABLE instead 2006-11-12 21:48:34 +00:00
ptrace_machdep.c
sal.c Fix the problem with the IPI for the lazy context switching of the 2005-08-13 21:08:32 +00:00
sapic.c
setjmp.S
ssc.c Add missing includes of priv.h. 2006-11-06 17:43:10 +00:00
sscdisk.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
support.S o Add keyword volatile for user mutex owner field. 2006-10-17 02:24:47 +00:00
sys_machdep.c
syscall.S
trap.c Make KSE a kernel option, turned on by default in all GENERIC 2006-10-26 21:42:22 +00:00
uio_machdep.c
uma_machdep.c
unaligned.c Back out alpha/alpha/trap.c:1.124, osf1_ioctl.c:1.14, osf1_misc.c:1.57, 2005-09-28 07:03:03 +00:00
unwind.c
vm_machdep.c Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00