From owner-cvs-src@FreeBSD.ORG Sat Apr 2 01:20:02 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 700BA16A4CE; Sat, 2 Apr 2005 01:20:02 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7E8C643D2F; Sat, 2 Apr 2005 01:20:01 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j321K12F006182; Sat, 2 Apr 2005 01:20:01 GMT (envelope-from davidxu@repoman.freebsd.org) Received: (from davidxu@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j321K1j6006181; Sat, 2 Apr 2005 01:20:01 GMT (envelope-from davidxu) Message-Id: <200504020120.j321K1j6006181@repoman.freebsd.org> From: David Xu Date: Sat, 2 Apr 2005 01:20:01 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/lib/libthr Makefile pthread.map src/lib/libthr/arch/alpha/alpha _curthread.c pthread_md.c src/lib/libthr/arch/alpha/include pthread_md.h src/lib/libthr/arch/amd64 Makefile.inc ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Apr 2005 01:20:02 -0000 davidxu 2005-04-02 01:20:01 UTC FreeBSD src repository Modified files: lib/libthr Makefile lib/libthr/arch/alpha Makefile.inc lib/libthr/arch/amd64 Makefile.inc lib/libthr/arch/i386 Makefile.inc lib/libthr/arch/ia64 Makefile.inc lib/libthr/arch/powerpc Makefile.inc lib/libthr/arch/sparc64 Makefile.inc lib/libthr/sys Makefile.inc thr_error.c lib/libthr/thread Makefile.inc thr_atfork.c thr_attr.c thr_barrier.c thr_barrierattr.c thr_cancel.c thr_clean.c thr_concurrency.c thr_cond.c thr_create.c thr_detach.c thr_exit.c thr_info.c thr_init.c thr_join.c thr_kern.c thr_main_np.c thr_mutex.c thr_mutex_prioceiling.c thr_mutex_protocol.c thr_once.c thr_printf.c thr_private.h thr_resume_np.c thr_rwlock.c thr_self.c thr_sem.c thr_seterrno.c thr_setschedparam.c thr_sig.c thr_spec.c thr_spinlock.c thr_stack.c thr_suspend_np.c thr_syscalls.c Added files: lib/libthr pthread.map lib/libthr/arch/alpha/alpha pthread_md.c lib/libthr/arch/alpha/include pthread_md.h lib/libthr/arch/amd64/amd64 pthread_md.c lib/libthr/arch/amd64/include pthread_md.h lib/libthr/arch/arm Makefile.inc lib/libthr/arch/arm/arm pthread_md.c lib/libthr/arch/arm/include pthread_md.h lib/libthr/arch/i386/i386 pthread_md.c lib/libthr/arch/i386/include pthread_md.h lib/libthr/arch/ia64/ia64 pthread_md.c lib/libthr/arch/ia64/include pthread_md.h lib/libthr/arch/powerpc/include pthread_md.h lib/libthr/arch/powerpc/powerpc pthread_md.c lib/libthr/arch/sparc64/include pthread_md.h lib/libthr/arch/sparc64/sparc64 pthread_md.c lib/libthr/thread thr_condattr.c thr_fork.c thr_getschedparam.c thr_kill.c thr_list.c thr_mutexattr.c thr_pspinlock.c thr_sigmask.c thr_single_np.c thr_switch_np.c thr_symbols.c thr_umtx.c thr_umtx.h Removed files: lib/libthr/arch/alpha/alpha _curthread.c lib/libthr/arch/amd64/amd64 _setcurthread.c lib/libthr/arch/i386/i386 _curthread.S _setcurthread.c lib/libthr/arch/ia64/ia64 _curthread.c lib/libthr/arch/powerpc/powerpc _curthread.c lib/libthr/arch/sparc64/sparc64 _setcurthread.c lib/libthr/thread thr_condattr_destroy.c thr_condattr_init.c thr_find_thread.c thr_mattr_init.c thr_mattr_kind_np.c thr_mutexattr_destroy.c thr_subr.c Log: Import my recent 1:1 threading working. some features improved includes: 1. fast simple type mutex. 2. __thread tls works. 3. asynchronous cancellation works ( using signal ). 4. thread synchronization is fully based on umtx, mainly, condition variable and other synchronization objects were rewritten by using umtx directly. those objects can be shared between processes via shared memory, it has to change ABI which does not happen yet. 5. default stack size is increased to 1M on 32 bits platform, 2M for 64 bits platform. As the result, some mysql super-smack benchmarks show performance is improved massivly. Okayed by: jeff, mtm, rwatson, scottl Revision Changes Path 1.9 +12 -6 src/lib/libthr/Makefile 1.2 +2 -2 src/lib/libthr/arch/alpha/Makefile.inc 1.3 +0 -55 src/lib/libthr/arch/alpha/alpha/_curthread.c (dead) 1.1 +53 -0 src/lib/libthr/arch/alpha/alpha/pthread_md.c (new) 1.1 +75 -0 src/lib/libthr/arch/alpha/include/pthread_md.h (new) 1.2 +2 -2 src/lib/libthr/arch/amd64/Makefile.inc 1.2 +0 -101 src/lib/libthr/arch/amd64/amd64/_setcurthread.c (dead) 1.1 +57 -0 src/lib/libthr/arch/amd64/amd64/pthread_md.c (new) 1.1 +103 -0 src/lib/libthr/arch/amd64/include/pthread_md.h (new) 1.1 +7 -0 src/lib/libthr/arch/arm/Makefile.inc (new) 1.1 +54 -0 src/lib/libthr/arch/arm/arm/pthread_md.c (new) 1.1 +106 -0 src/lib/libthr/arch/arm/include/pthread_md.h (new) 1.2 +2 -2 src/lib/libthr/arch/i386/Makefile.inc 1.4 +0 -17 src/lib/libthr/arch/i386/i386/_curthread.S (dead) 1.18 +0 -136 src/lib/libthr/arch/i386/i386/_setcurthread.c (dead) 1.1 +84 -0 src/lib/libthr/arch/i386/i386/pthread_md.c (new) 1.1 +116 -0 src/lib/libthr/arch/i386/include/pthread_md.h (new) 1.2 +2 -2 src/lib/libthr/arch/ia64/Makefile.inc 1.4 +0 -59 src/lib/libthr/arch/ia64/ia64/_curthread.c (dead) 1.1 +58 -0 src/lib/libthr/arch/ia64/ia64/pthread_md.c (new) 1.1 +78 -0 src/lib/libthr/arch/ia64/include/pthread_md.h (new) 1.2 +2 -2 src/lib/libthr/arch/powerpc/Makefile.inc 1.1 +80 -0 src/lib/libthr/arch/powerpc/include/pthread_md.h (new) 1.2 +0 -58 src/lib/libthr/arch/powerpc/powerpc/_curthread.c (dead) 1.1 +58 -0 src/lib/libthr/arch/powerpc/powerpc/pthread_md.c (new) 1.3 +2 -2 src/lib/libthr/arch/sparc64/Makefile.inc 1.1 +87 -0 src/lib/libthr/arch/sparc64/include/pthread_md.h (new) 1.4 +0 -59 src/lib/libthr/arch/sparc64/sparc64/_setcurthread.c (dead) 1.1 +56 -0 src/lib/libthr/arch/sparc64/sparc64/pthread_md.c (new) 1.1 +365 -0 src/lib/libthr/pthread.map (new) 1.3 +2 -2 src/lib/libthr/sys/Makefile.inc 1.2 +7 -12 src/lib/libthr/sys/thr_error.c 1.9 +12 -10 src/lib/libthr/thread/Makefile.inc 1.2 +7 -10 src/lib/libthr/thread/thr_atfork.c 1.3 +336 -233 src/lib/libthr/thread/thr_attr.c 1.3 +50 -72 src/lib/libthr/thread/thr_barrier.c 1.2 +47 -32 src/lib/libthr/thread/thr_barrierattr.c 1.11 +106 -86 src/lib/libthr/thread/thr_cancel.c 1.3 +9 -3 src/lib/libthr/thread/thr_clean.c 1.2 +3 -0 src/lib/libthr/thread/thr_concurrency.c 1.16 +241 -373 src/lib/libthr/thread/thr_cond.c 1.1 +128 -0 src/lib/libthr/thread/thr_condattr.c (new) 1.2 +0 -53 src/lib/libthr/thread/thr_condattr_destroy.c (dead) 1.2 +0 -58 src/lib/libthr/thread/thr_condattr_init.c (dead) 1.20 +132 -97 src/lib/libthr/thread/thr_create.c 1.9 +21 -30 src/lib/libthr/thread/thr_detach.c 1.17 +36 -118 src/lib/libthr/thread/thr_exit.c 1.5 +0 -62 src/lib/libthr/thread/thr_find_thread.c (dead) 1.1 +222 -0 src/lib/libthr/thread/thr_fork.c (new) 1.3 +77 -0 src/lib/libthr/thread/thr_getschedparam.c (new) 1.4 +48 -41 src/lib/libthr/thread/thr_info.c 1.20 +217 -164 src/lib/libthr/thread/thr_init.c 1.16 +48 -143 src/lib/libthr/thread/thr_join.c 1.19 +49 -94 src/lib/libthr/thread/thr_kern.c 1.1 +67 -0 src/lib/libthr/thread/thr_kill.c (new) 1.1 +342 -0 src/lib/libthr/thread/thr_list.c (new) 1.2 +4 -3 src/lib/libthr/thread/thr_main_np.c 1.2 +0 -56 src/lib/libthr/thread/thr_mattr_init.c (dead) 1.3 +0 -98 src/lib/libthr/thread/thr_mattr_kind_np.c (dead) 1.33 +1381 -585 src/lib/libthr/thread/thr_mutex.c 1.4 +30 -27 src/lib/libthr/thread/thr_mutex_prioceiling.c 1.3 +20 -10 src/lib/libthr/thread/thr_mutex_protocol.c 1.1 +167 -0 src/lib/libthr/thread/thr_mutexattr.c (new) 1.2 +0 -53 src/lib/libthr/thread/thr_mutexattr_destroy.c (dead) 1.2 +55 -10 src/lib/libthr/thread/thr_once.c 1.5 +29 -17 src/lib/libthr/thread/thr_printf.c 1.44 +482 -612 src/lib/libthr/thread/thr_private.h 1.1 +133 -0 src/lib/libthr/thread/thr_pspinlock.c (new) 1.8 +29 -26 src/lib/libthr/thread/thr_resume_np.c 1.8 +262 -315 src/lib/libthr/thread/thr_rwlock.c 1.3 +5 -1 src/lib/libthr/thread/thr_self.c 1.5 +171 -157 src/lib/libthr/thread/thr_sem.c 1.2 +3 -3 src/lib/libthr/thread/thr_seterrno.c 1.9 +85 -72 src/lib/libthr/thread/thr_setschedparam.c 1.13 +197 -47 src/lib/libthr/thread/thr_sig.c 1.1 +52 -0 src/lib/libthr/thread/thr_sigmask.c (new) 1.1 +50 -0 src/lib/libthr/thread/thr_single_np.c (new) 1.3 +85 -74 src/lib/libthr/thread/thr_spec.c 1.11 +60 -110 src/lib/libthr/thread/thr_spinlock.c 1.6 +123 -103 src/lib/libthr/thread/thr_stack.c 1.2 +0 -91 src/lib/libthr/thread/thr_subr.c (dead) 1.3 +49 -3 src/lib/libthr/thread/thr_suspend_np.c 1.1 +55 -0 src/lib/libthr/thread/thr_switch_np.c (new) 1.1 +59 -0 src/lib/libthr/thread/thr_symbols.c (new) 1.9 +216 -403 src/lib/libthr/thread/thr_syscalls.c 1.1 +80 -0 src/lib/libthr/thread/thr_umtx.c (new) 1.1 +81 -0 src/lib/libthr/thread/thr_umtx.h (new)