#
a091d823 |
| 02-Apr-2005 |
David Xu <davidxu@FreeBSD.org> |
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 synchroni
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
show more ...
|
#
9199c09a |
| 06-Jan-2010 |
Warner Losh <imp@FreeBSD.org> |
Merge from head at r201628.
# This hasn't been tested, and there are at least three bad commits # that need to be backed out before the branch will be stable again.
|
#
791f7a99 |
| 05-Jan-2010 |
David Xu <davidxu@FreeBSD.org> |
Remove extra new semaphore stubs, because libc already has them, and ld can find the newest version which is default.
Poked by: kan@
|
#
9b0f1823 |
| 05-Jan-2010 |
David Xu <davidxu@FreeBSD.org> |
Use umtx to implement process sharable semaphore, to make this work, now type sema_t is a structure which can be put in a shared memory area, and multiple processes can operate it concurrently. User
Use umtx to implement process sharable semaphore, to make this work, now type sema_t is a structure which can be put in a shared memory area, and multiple processes can operate it concurrently. User can either use mmap(MAP_SHARED) + sem_init(pshared=1) or use sem_open() to initialize a shared semaphore. Named semaphore uses file system and is located in /tmp directory, and its file name is prefixed with 'SEMD', so now it is chroot or jail friendly. In simplist cases, both for named and un-named semaphore, userland code does not have to enter kernel to reduce/increase semaphore's count. The semaphore is designed to be crash-safe, it means even if an application is crashed in the middle of operating semaphore, the semaphore state is still safely recovered by later use, there is no waiter counter maintained by userland code. The main semaphore code is in libc and libthr only has some necessary stubs, this makes it possible that a non-threaded application can use semaphore without linking to thread library. Old semaphore implementation is kept libc to maintain binary compatibility. The kernel ksem API is no longer used in the new implemenation.
Discussed on: threads@
show more ...
|
Revision tags: release/8.0.0_cvs, release/8.0.0 |
|
#
874108ae |
| 12-Nov-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
MFC @199204
|
#
29670497 |
| 11-Oct-2009 |
Jilles Tjoelker <jilles@FreeBSD.org> |
Make openat(2) a cancellation point.
This is required by POSIX and matches open(2).
Reviewed by: kib, jhb MFC after: 1 month
|
Revision tags: release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0 |
|
#
83a07587 |
| 09-Jun-2008 |
David Xu <davidxu@FreeBSD.org> |
Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros, use stack space to keep cleanup information, this eliminates overhead of calling malloc() and free() in thread library.
Dis
Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros, use stack space to keep cleanup information, this eliminates overhead of calling malloc() and free() in thread library.
Discussed on: thread@
show more ...
|
#
9939a136 |
| 22-Mar-2008 |
David Xu <davidxu@FreeBSD.org> |
Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu time clock id.
|
#
07bbb166 |
| 05-Mar-2008 |
David Xu <davidxu@FreeBSD.org> |
Add more cpu affinity function's symbols.
|
#
57030e10 |
| 03-Mar-2008 |
David Xu <davidxu@FreeBSD.org> |
Implement functions pthread_getaffinity_np and pthread_setaffinity_np to get and set thread's cpu affinity mask.
|
Revision tags: release/7.0.0_cvs, release/7.0.0 |
|
#
47252f4e |
| 06-Feb-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Yet another pointy hat: when I zapped FBSDprivate_1.1, I forgot to move its contents to FBSDprivate_1.0.
|
#
a9b9744f |
| 06-Feb-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Convert pthread.map to the format expected by version_gen.awk, and modify the Makefile accordingly; libthr now explicitly uses libc's Versions.def.
MFC after: 2 weeks
|
#
facfc982 |
| 06-Feb-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Remove incorrectly added FBSDprivate_1.1 namespace, and move symbols which are new in FreeBSD 8 to the appropriate namespace.
|
#
1cbdac26 |
| 06-Feb-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Per discussion on -threads, rename _islocked_np() to _isowned_np().
|
#
5fd410a7 |
| 03-Feb-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add pthread_mutex_islocked_np(), a cheap way to verify that a mutex is locked. This is intended primarily to support the userland equivalent of the various *_ASSERT_LOCKED() macros we have in the ke
Add pthread_mutex_islocked_np(), a cheap way to verify that a mutex is locked. This is intended primarily to support the userland equivalent of the various *_ASSERT_LOCKED() macros we have in the kernel.
MFC after: 2 weeks
show more ...
|
Revision tags: release/6.3.0_cvs, release/6.3.0 |
|
#
06c8eb55 |
| 20-Dec-2007 |
David Xu <davidxu@FreeBSD.org> |
Remove vfork() overloading, it is no longer needed.
|
#
093fcf16 |
| 14-Dec-2007 |
David Xu <davidxu@FreeBSD.org> |
1. Add function pthread_mutex_setspinloops_np to turn a mutex's spin loop count. 2. Add function pthread_mutex_setyieldloops_np to turn a mutex's yield loop count. 3. Make environment variables
1. Add function pthread_mutex_setspinloops_np to turn a mutex's spin loop count. 2. Add function pthread_mutex_setyieldloops_np to turn a mutex's yield loop count. 3. Make environment variables PTHREAD_SPINLOOPS and PTHREAD_YIELDLOOPS to be only used for turnning PTHREAD_MUTEX_ADAPTIVE_NP mutex.
show more ...
|
#
e1636e1f |
| 27-Nov-2007 |
Jason Evans <jasone@FreeBSD.org> |
Add _pthread_mutex_init_calloc_cb() to libthr and libkse, so that malloc(3) (part of libc) can use pthreads mutexes without causing infinite recursion during initialization.
|
#
00fb440c |
| 13-May-2007 |
Daniel Eischen <deischen@FreeBSD.org> |
Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it. Warning, after symbol versioning is enabled, going back is not easy (use WITHOUT_SYMVER at your own risk).
Change the default
Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it. Warning, after symbol versioning is enabled, going back is not easy (use WITHOUT_SYMVER at your own risk).
Change the default thread library to libthr.
There most likely still needs to be a version bump for at least the thread libraries. If necessary, this will happen later.
show more ...
|
#
5f864214 |
| 29-Apr-2007 |
Daniel Eischen <deischen@FreeBSD.org> |
Use C comments since we now preprocess these files with CPP.
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
05c3a5ea |
| 25-Jul-2006 |
David Xu <davidxu@FreeBSD.org> |
1. Don't override underscore version of aio_suspend(), system(), wait(), waitpid() and usleep(), they are internal versions and should not be cancellation points. 2. Make wait3() as a cancellat
1. Don't override underscore version of aio_suspend(), system(), wait(), waitpid() and usleep(), they are internal versions and should not be cancellation points. 2. Make wait3() as a cancellation point. 3. Move raise() and pause() into file thr_sig.c. 4. Add functions _sigsuspend, _sigwait, _sigtimedwait and _sigwaitinfo, remove SIGCANCEL bit in wait-set for those functions, the signal is used internally to implement thread cancellation.
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0 |
|
#
e92b415c |
| 11-May-2006 |
David Xu <davidxu@FreeBSD.org> |
Add symbol versions: FBSD_1.0 and FBSDprivate.
|
Revision tags: release/6.1.0_cvs, release/6.1.0 |
|
#
37a6356b |
| 04-Apr-2006 |
David Xu <davidxu@FreeBSD.org> |
WARNS level 4 cleanup.
|
#
d3de1dca |
| 09-Mar-2006 |
David Xu <davidxu@FreeBSD.org> |
Remove mqueue and timer, now they are in librt.
|
#
5131df80 |
| 04-Jan-2006 |
David Xu <davidxu@FreeBSD.org> |
1. Add SIGEV_THREAD notification for mq_notify. 2. Reuse current timer code and abstract some common code to to support both timer and mqueue.
|