|
Revision tags: release/13.4.0-p5, release/13.5.0-p1, release/14.2.0-p3, release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0 |
|
| #
15ee14d0 |
| 24-Jul-2024 |
Konstantin Belousov <[email protected]> |
rtld: avoid division in __thr_map_stacks_exec()
(cherry picked from commit 31f688a26d82ce00d1ec7ca9ed17b9914bf5176f)
|
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
| #
1d386b48 |
| 16-Aug-2023 |
Warner Losh <[email protected]> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
4d846d26 |
| 10-May-2023 |
Warner Losh <[email protected]> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
|
Revision tags: release/13.2.0, release/12.4.0 |
|
| #
e03c7f50 |
| 13-Sep-2022 |
Konstantin Belousov <[email protected]> |
libthr: extract code to get main stack base and size into helpers
Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differenti
libthr: extract code to get main stack base and size into helpers
Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D36540
show more ...
|
| #
e2879ece |
| 12-Sep-2022 |
Konstantin Belousov <[email protected]> |
libc, libthr: use AT_USRSTACK{BASE,LIM} instead of sysctl("kern.usrstack") and get_rlimit(RLIMIT_STACK)
Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Fo
libc, libthr: use AT_USRSTACK{BASE,LIM} instead of sysctl("kern.usrstack") and get_rlimit(RLIMIT_STACK)
Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D36540
show more ...
|
| #
ebf7a015 |
| 12-Sep-2022 |
Konstantin Belousov <[email protected]> |
libthr: use nitems() for mib length
Suggested by: imp Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision:
libthr: use nitems() for mib length
Suggested by: imp Reviewed by: brooks, imp (previous version) Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D36540
show more ...
|
|
Revision tags: release/13.1.0 |
|
| #
f75b1ff6 |
| 17-Jan-2022 |
Mark Johnston <[email protected]> |
Revert "libthr: Use kern.stacktop for thread stack calculation."
The current ASLR stack gap feature will be removed, and with that the need for this change, and the kern.stactop sysctl, is gone. Mo
Revert "libthr: Use kern.stacktop for thread stack calculation."
The current ASLR stack gap feature will be removed, and with that the need for this change, and the kern.stactop sysctl, is gone. Moreover, the approach taken in this revision does not provide compatibility for old copies of libthr.so, and the revision should have also updated __libc_map_stacks_exec().
This reverts commit 78df56ccfcb40013a3e6904bd6d39836220c3550.
Reviewed by: kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33704
show more ...
|
|
Revision tags: release/12.3.0 |
|
| #
78df56cc |
| 13-Oct-2021 |
Dawid Gorecki <[email protected]> |
libthr: Use kern.stacktop for thread stack calculation.
Use the new kern.stacktop sysctl to retrieve the address of stack top instead of kern.usrstack. kern.usrstack does not have any knowledge of t
libthr: Use kern.stacktop for thread stack calculation.
Use the new kern.stacktop sysctl to retrieve the address of stack top instead of kern.usrstack. kern.usrstack does not have any knowledge of the stack gap, so this can cause problems with thread stacks. Using kern.stacktop sysctl should fix most of those problems. kern.usrstack is used as a fallback when kern.stacktop cannot be read.
Rename usrstack variables to stacktop to reflect this change.
Fixes problems with firefox and thunderbird not starting with stack gap enabled.
PR: 239873 Reviewed by: kib Obtained from: Semihalf Sponsored by: Stormshield MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D31898
show more ...
|
|
Revision tags: release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
| #
5e53a4f9 |
| 26-Nov-2017 |
Pedro F. Giffuni <[email protected]> |
lib: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using mis-identified many licenses so this was mostly a manual - error pr
lib: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using mis-identified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
show more ...
|
|
Revision tags: release/10.4.0, release/11.1.0 |
|
| #
0b2f3f20 |
| 20-May-2017 |
Eric van Gyzen <[email protected]> |
libthr: Use CLI flags instead of pragmas to disable warnings
People tweaking the build system or compilers tend to look into the Makefile and not into the source. Having some warning controls in th
libthr: Use CLI flags instead of pragmas to disable warnings
People tweaking the build system or compilers tend to look into the Makefile and not into the source. Having some warning controls in the Makefile and some in the source code is surprising.
Pragmas have the advantage that they leave the warnings enabled for more code, but that advantage isn't very relevant in these cases.
Requested by: kib Reviewed by: kib MFC after: 3 days Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D10832
show more ...
|
| #
d2335a57 |
| 19-May-2017 |
Eric van Gyzen <[email protected]> |
libthr: fix warnings at WARNS=6
Fix warnings about the following when WARNS=6 (which I will commit soon):
- casting away const - no previous 'extern' declaration for non-static variable - others as
libthr: fix warnings at WARNS=6
Fix warnings about the following when WARNS=6 (which I will commit soon):
- casting away const - no previous 'extern' declaration for non-static variable - others as explained by #pragmas and comments - unused parameters
The last is the only functional change.
Reviewed by: kib MFC after: 3 days Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D10808
show more ...
|
|
Revision tags: release/11.0.1, release/11.0.0 |
|
| #
32793011 |
| 08-Apr-2016 |
Konstantin Belousov <[email protected]> |
Use __FBSDID() for .c files from lib/libthr/thread.
Sponsored by: The FreeBSD Foundation
|
|
Revision tags: release/10.3.0 |
|
| #
bd43f069 |
| 08-Feb-2016 |
Konstantin Belousov <[email protected]> |
If libthr.so is dlopened without RTLD_GLOBAL flag, the libthr symbols do not participate in the global symbols namespace, but rtld locks are still replaced and functions are interposed. In particula
If libthr.so is dlopened without RTLD_GLOBAL flag, the libthr symbols do not participate in the global symbols namespace, but rtld locks are still replaced and functions are interposed. In particular, __pthread_map_stacks_exec is resolved to the libc version. If a library is loaded later, which requires adjustment of the stack protection mode, rtld calls into libc __pthread_map_stacks_exec due to the symbols scope. The libc version might recurse into binder and recursively acquire rtld bind lock, causing the hang.
Make libc __pthread_map_stacks_exec() interposed, which synchronizes rtld locks and version of the stack exec hook when libthr loaded, regardless of the symbol scope control or symbol resolution order.
The __pthread_map_stacks_exec() symbol is removed from the private version in libthr since libc symbol now operates correctly in presence of libthr.
Reported and tested by: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
show more ...
|
|
Revision tags: release/10.2.0, release/10.1.0 |
|
| #
6c8ce3bf |
| 13-Aug-2014 |
Konstantin Belousov <[email protected]> |
Add a knob LIBPTHREAD_BIGSTACK_MAIN, which instructs libthr to leave the whole RLIMIT_STACK-sized region of the kernel-allocated stack as the stack of main thread.
By default, the main thread stack
Add a knob LIBPTHREAD_BIGSTACK_MAIN, which instructs libthr to leave the whole RLIMIT_STACK-sized region of the kernel-allocated stack as the stack of main thread.
By default, the main thread stack is clamped at 2MB (4MB on 64bit ABIs) and the rest is used for other threads stack allocation. Since there is no programmatic way to adjust the size of the main thread stack, pthread_attr_setstacksize() is too late, the knob allows user to manage the main stack size both for single-threaded and multi-threaded processes with the rlimit.
Reported by: "Ivan A. Kosarev" <[email protected]> Tested by: dim Sponsored by: The FreeBSD Foundation MFC after: 3 days
show more ...
|
| #
f6abec6c |
| 13-Aug-2014 |
Konstantin Belousov <[email protected]> |
Style.
Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
|
Revision tags: release/9.3.0, release/10.0.0, release/9.2.0, release/8.4.0, release/9.1.0, release/8.3.0_cvs, release/8.3.0, release/9.0.0, release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0 |
|
| #
fad128db |
| 10-Jan-2011 |
Konstantin Belousov <[email protected]> |
For the process that already loaded libthr but still not initialized threading, fall back to libc method of performing __pthread_map_stacks_exec() job.
Reported and tested by: Mykola Dzham <i levsha
For the process that already loaded libthr but still not initialized threading, fall back to libc method of performing __pthread_map_stacks_exec() job.
Reported and tested by: Mykola Dzham <i levsha me>
show more ...
|
| #
da2fcff7 |
| 09-Jan-2011 |
Konstantin Belousov <[email protected]> |
Implement the __pthread_map_stacks_exec() for libthr.
Stack creation code is changed to call _rtld_get_stack_prot() to get the stack protection right. There is a race where thread is created during
Implement the __pthread_map_stacks_exec() for libthr.
Stack creation code is changed to call _rtld_get_stack_prot() to get the stack protection right. There is a race where thread is created during dlopen() of dso that requires executable stacks. Then, _rtld_get_stack_prot() may return PROT_READ | PROT_WRITE, but thread is still not linked into the thread list. In this case, the callback misses the thread stack, and rechecks the required protection afterward.
Reviewed by: davidxu
show more ...
|
| #
a9b764e2 |
| 13-Sep-2010 |
David Xu <[email protected]> |
Convert thread list lock from mutex to rwlock.
|
|
Revision tags: release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, 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, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0, release/6.2.0_cvs, release/6.2.0, release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
| #
37a6356b |
| 04-Apr-2006 |
David Xu <[email protected]> |
WARNS level 4 cleanup.
|
|
Revision tags: release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0 |
|
| #
a091d823 |
| 02-Apr-2005 |
David Xu <[email protected]> |
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 ...
|
| #
c5a6625e |
| 06-Mar-2005 |
Joe Marcus Clarke <[email protected]> |
Increase the default stacksizes:
32-bit 64-bit main thread 2 MB 4 MB other threads 1 MB 2 MB
Approved by: mtm Adapted from: libpthread
|
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
| #
6004362e |
| 27-Nov-2004 |
David Schultz <[email protected]> |
Don't include sys/user.h merely for its side-effect of recursively including other headers.
|
|
Revision tags: release/5.3.0_cvs, release/5.3.0, release/4.10.0_cvs, release/4.10.0, release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0, release/4.9.0_cvs, release/4.9.0, release/5.1.0_cvs, release/5.1.0 |
|
| #
ca1c469c |
| 26-May-2003 |
Mike Makonnen <[email protected]> |
Decouple the thread stack [de]allocating functions from the 'dead threads list' lock. It's not really necessary and we don't need the added complexity or potential for deadlocks.
Approved by: re/bla
Decouple the thread stack [de]allocating functions from the 'dead threads list' lock. It's not really necessary and we don't need the added complexity or potential for deadlocks.
Approved by: re/blanket libthr
show more ...
|
| #
71d09bc8 |
| 25-May-2003 |
Mike Makonnen <[email protected]> |
Start locking up the active and dead threads lists. The active threads list is protected by a spinlock_t, but the dead list uses a pthread_mutex because it is necessary to synchronize other threads w
Start locking up the active and dead threads lists. The active threads list is protected by a spinlock_t, but the dead list uses a pthread_mutex because it is necessary to synchronize other threads with the garbage collector thread. Lock/Unlock macros are used so it's easier to make changes to the locks in the future.
The 'dead thread list' lock is intended to replace the gc mutex. This doesn't have any practical ramifications. It simply makes it clearer what the purpose of the lock is. The gc will use this lock, instead of the gc mutex, to synchronize access to the dead list with other threads.
Modify _pthread_exit() to use these two new locks instead of GIANT_LOCK, and also to properly lock and protect thread state changes, especially with respect to a joining thread.
The gc thread was also re-arranged to be more organized and less nested.
_pthread_join() was also modified to use the thread list locks. However, locking and unlocking here needs special care because a thread could find itself in a position where it's joining an exiting thread that is waiting on the dead list lock, which this thread (joiner) holds. If the joiner doesn't take care to lock *and* unlock in the same order they (the joiner and the joinee) could deadlock against each other.
Approved by: re/blanket libthr
show more ...
|
|
Revision tags: release/4.8.0_cvs, release/4.8.0 |
|
| #
bb535300 |
| 01-Apr-2003 |
Jeff Roberson <[email protected]> |
- Add libthr but don't hook it up to the regular build yet. This is an adaptation of libc_r for the thr system call interface. This is beta quality code.
|