CFT: patch for process shared pthread objects

From: David Xu <davidxu_at_freebsd.org>
Date: Tue, 30 Nov 2010 13:48:11 +0800
Hi,

I finally have worked out first patch to make our pthread library
support process shared pthread objects:

http://people.freebsd.org/~davidxu/pshared/patch1.diff

Many changes are related to redesigned pthread condition variable,
these changes try to eliminate extra context switch when
pthread_cond_signal is called which could reduce performance.
There are two parts in the condition variable implementation.
A pure usermode condition variable and kernel-based condition
variable. All priority protected, inherited mutexs and process
shared mutex will use kernel base condition variable, for a
normal mutex, the usermode condition variable is used.
Both user-mode and kernel-based try to migrate a thread from
condition variable wait queue to mutex wait queue.

Another added feature is robust mutex support,
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_setrobust.html
Which I think is mostly used for process-shared mutex.

In the patch, if mutex attribute is robust, the thread library
also uses kernel base condition variable which does not have
internal lock in userland.

Regards,
David Xu
Received on Tue Nov 30 2010 - 04:48:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:09 UTC