Remove $FreeBSD$: two-line .h patternRemove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
libthr: Add missing END() directive for umtx_op_err (amd64)Like r353929, related to D22122. No functional change.Reviewed by: emaste, kib (earlier version both)
Merge all the copies of _tcb_ctor and _tcb_dtor.The amd64, i386, and sparc64 versions were identical, with the onedifference where the former two used inline asm instead of _tcb_get. Ihave compar
Merge all the copies of _tcb_ctor and _tcb_dtor.The amd64, i386, and sparc64 versions were identical, with the onedifference where the former two used inline asm instead of _tcb_get. Ihave compared the function before and after replacing the asm with _tcb_getand found the object files to be identical.The arm, mips, and powerpc versions were almost identical. The onlydifference was the powerpc version used an alignment of 1 where arm andmips used 16. As this is an increase in alignment is will be safe.Along with this arm, mips, and powerpc all passed, when initial was true,the value returned from _tcb_get as the first argument to_rtld_allocate_tls. This would then return this pointer back to the caller.We can remove these extra calls by checking if initial is set and settingthe thread control block directly. As this is what the sparc64 code doeswe can use it directly.As after these observations all the architectures can now have identicalcode we can merge them into a common file.Differential Revision: https://reviews.freebsd.org/D1556Reviewed by: kibSponsored by: The FreeBSD Foundation
show more ...
Add section .note.GNU-stack for assembly files used by 386 and amd64.
Replace function _umtx_op with _umtx_op_err, the later function directlyreturns errno, because errno can be mucked by user's signal handler andmost of pthread api heavily depends on errno to be cor
Replace function _umtx_op with _umtx_op_err, the later function directlyreturns errno, because errno can be mucked by user's signal handler andmost of pthread api heavily depends on errno to be correct, this changeshould improve stability of the thread library.
Simplify _get_curthread() and _tcb_ctor because libc and rtld nowalready allocate thread pointer space in tls block for initial thread.Only i386 and amd64 have been done, others still have to be te
Simplify _get_curthread() and _tcb_ctor because libc and rtld nowalready allocate thread pointer space in tls block for initial thread.Only i386 and amd64 have been done, others still have to be tested.
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 isimproved massivly.Okayed by: jeff, mtm, rwatson, scottl
Add AMD64 support code.