<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libthr/thread/thr_cond.c, branch release/7.0.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>2008-02-24T05:45:17+00:00</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>2008-02-24T05:45:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a9c219fa3cec18ef9f30edec6fa106bf0e2d423d'/>
<id>a9c219fa3cec18ef9f30edec6fa106bf0e2d423d</id>
<content type='text'>
'RELENG_7_0_0_RELEASE'.

This commit was manufactured to restore the state of the 7.0-RELEASE image.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'RELENG_7_0_0_RELEASE'.

This commit was manufactured to restore the state of the 7.0-RELEASE image.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move checking for c_has_waiters into low level _thr_ucond_signal and</title>
<updated>2006-12-12T03:08:49+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-12-12T03:08:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=347126a2e2be1aeb6763dd6ae9ea38cb901eb942'/>
<id>347126a2e2be1aeb6763dd6ae9ea38cb901eb942</id>
<content type='text'>
_thr_ucond_broadcast, clear condition variable pointer in cancellation
info after returing from _thr_ucond_wait, since kernel has already
dropped the internal lock, so we don't need to unlock it in cancellation
handler again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
_thr_ucond_broadcast, clear condition variable pointer in cancellation
info after returing from _thr_ucond_wait, since kernel has already
dropped the internal lock, so we don't need to unlock it in cancellation
handler again.
</pre>
</div>
</content>
</entry>
<entry>
<title>the c_has_waiters is lazily updated, temporarily disable the false</title>
<updated>2006-12-05T07:23:58+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-12-05T07:23:58+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3b8a017442114f23d9a32baa6221ab01d362a717'/>
<id>3b8a017442114f23d9a32baa6221ab01d362a717</id>
<content type='text'>
alarm code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
alarm code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use kernel provided userspace condition variable to implement pthread</title>
<updated>2006-12-04T14:20:41+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-12-04T14:20:41+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2bd2c90703d7be934214476a707df5b24de20190'/>
<id>2bd2c90703d7be934214476a707df5b24de20190</id>
<content type='text'>
condition variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
condition variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Eliminate atomic operations in thread cancellation functions, it should</title>
<updated>2006-11-24T09:57:38+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-11-24T09:57:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f08e1bf68286986422c2c96bd7b594898afb7fa7'/>
<id>f08e1bf68286986422c2c96bd7b594898afb7fa7</id>
<content type='text'>
reduce overheads of cancellation points.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
reduce overheads of cancellation points.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace internal usage of struct umtx with umutex which can supports</title>
<updated>2006-09-06T04:04:10+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-09-06T04:04:10+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=bddd24cd9c3e6144282ff7eaa92a3ad032e5be7b'/>
<id>bddd24cd9c3e6144282ff7eaa92a3ad032e5be7b</id>
<content type='text'>
real-time if we want, no functionality is changed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
real-time if we want, no functionality is changed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not check validity of timeout if a mutex can be acquired immediately.</title>
<updated>2006-04-08T13:24:44+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-04-08T13:24:44+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a97944597be4a2cf8d0e9769628a15d5caaf2cba'/>
<id>a97944597be4a2cf8d0e9769628a15d5caaf2cba</id>
<content type='text'>
Completly drop recursive mutex in pthread_cond_wait and restore recursive
after resumption. Reorganize code to make gcc to generate better code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Completly drop recursive mutex in pthread_cond_wait and restore recursive
after resumption. Reorganize code to make gcc to generate better code.
</pre>
</div>
</content>
</entry>
<entry>
<title>WARNS level 4 cleanup.</title>
<updated>2006-04-04T02:57:49+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2006-04-04T02:57:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=37a6356bbed1e94fd2b0d9d02a29508465584c19'/>
<id>37a6356bbed1e94fd2b0d9d02a29508465584c19</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Import my recent 1:1 threading working. some features improved includes:</title>
<updated>2005-04-02T01:20:00+00:00</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2005-04-02T01:20:00+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a091d823ad89a36935ba6e5568c4720a35f9a99b'/>
<id>a091d823ad89a36935ba6e5568c4720a35f9a99b</id>
<content type='text'>
 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Change the thread ID (thr_id_t) used for 1:1 threading from being a</title>
<updated>2004-07-02T00:40:07+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2004-07-02T00:40:07+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=cd28f17da2f89e4e3f6dc3874912ac7e1947cfc0'/>
<id>cd28f17da2f89e4e3f6dc3874912ac7e1947cfc0</id>
<content type='text'>
pointer to the corresponding struct thread to the thread ID (lwpid_t)
assigned to that thread. The primary reason for this change is that
libthr now internally uses the same ID as the debugger and the kernel
when referencing to a kernel thread. This allows us to implement the
support for debugging without additional translations and/or mappings.

To preserve the ABI, the 1:1 threading syscalls, including the umtx
locking API have not been changed to work on a lwpid_t. Instead the
1:1 threading syscalls operate on long and the umtx locking API has
not been changed except for the contested bit. Previously this was
the least significant bit. Now it's the most significant bit. Since
the contested bit should not be tested by userland, this change is
not expected to be visible. Just to be sure, UMTX_CONTESTED has been
removed from &lt;sys/umtx.h&gt;.

Reviewed by: mtm@
ABI preservation tested on: i386, ia64
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pointer to the corresponding struct thread to the thread ID (lwpid_t)
assigned to that thread. The primary reason for this change is that
libthr now internally uses the same ID as the debugger and the kernel
when referencing to a kernel thread. This allows us to implement the
support for debugging without additional translations and/or mappings.

To preserve the ABI, the 1:1 threading syscalls, including the umtx
locking API have not been changed to work on a lwpid_t. Instead the
1:1 threading syscalls operate on long and the umtx locking API has
not been changed except for the contested bit. Previously this was
the least significant bit. Now it's the most significant bit. Since
the contested bit should not be tested by userland, this change is
not expected to be visible. Just to be sure, UMTX_CONTESTED has been
removed from &lt;sys/umtx.h&gt;.

Reviewed by: mtm@
ABI preservation tested on: i386, ia64
</pre>
</div>
</content>
</entry>
</feed>
