#
d82e6535 |
| 06-Jul-2020 |
pirofti <pirofti@openbsd.org> |
Add support for timeconting in userland.
This diff exposes parts of clock_gettime(2) and gettimeofday(2) to userland via libc eliberating processes from the need for a context switch everytime they
Add support for timeconting in userland.
This diff exposes parts of clock_gettime(2) and gettimeofday(2) to userland via libc eliberating processes from the need for a context switch everytime they want to count the passage of time.
If a timecounter clock can be exposed to userland than it needs to set its tc_user member to a non-zero value. Tested with one or multiple counters per architecture.
The timing data is shared through a pointer found in the new ELF auxiliary vector AUX_openbsd_timekeep containing timehands information that is frequently updated by the kernel.
Timing differences between the last kernel update and the current time are adjusted in userland by the tc_get_timecount() function inside the MD usertc.c file.
This permits a much more responsive environment, quite visible in browsers, office programs and gaming (apparently one is are able to fly in Minecraft now).
Tested by robert@, sthen@, naddy@, kmos@, phessler@, and many others!
OK from at least kettenis@, cheloha@, naddy@, sthen@
show more ...
|
#
6151004e |
| 30-Oct-2018 |
guenther <guenther@openbsd.org> |
Add C11's timespec_get(3); minor bump for libc.
Tweaked diff from brad@ manpage tweaks florian@ and jmc@ ok deraadt@ millert@
|
#
3a628b46 |
| 05-Sep-2017 |
schwarze <schwarze@openbsd.org> |
New POSIX xlocale implementation written from scratch. Complete in the sense that all POSIX *locale(3) and *_l(3) functions are included, but in OpenBSD, we of course only really care about LC_CTYPE
New POSIX xlocale implementation written from scratch. Complete in the sense that all POSIX *locale(3) and *_l(3) functions are included, but in OpenBSD, we of course only really care about LC_CTYPE and we only support ASCII and UTF-8.
With important help from kettenis@, guenther@, and jca@. Repeated testing in ports bulk builds by naddy@. Additional testing by jca@, sebastia@, dcoppa@, and others. OK kettenis@ dcoppa@, and guenther@ on an earlier version. Riding guenther@'s libc/librthread major bump.
show more ...
|
#
fe38b55c |
| 07-May-2016 |
guenther <guenther@openbsd.org> |
Use a Thread Information Block in both single and multi-threaded programs. This stores errno, the cancelation flags, and related bits for each thread and is allocated by ld.so or libc.a. This is an
Use a Thread Information Block in both single and multi-threaded programs. This stores errno, the cancelation flags, and related bits for each thread and is allocated by ld.so or libc.a. This is an ABI break from 5.9-stable!
Make libpthread dlopen'able by moving the cancelation wrappers into libc and doing locking and fork/errno handling via callbacks that libpthread registers when it first initializes. 'errno' *must* be declared via <errno.h> now!
Clean up libpthread's symbol exports like libc.
On powerpc, offset the TIB/TCB/TLS data from the register per the ELF spec.
Testing by various, particularly sthen@ and patrick@ ok kettenis@
show more ...
|
#
14437dc7 |
| 19-Sep-2015 |
guenther <guenther@openbsd.org> |
Don't wrap initialized variables: binutils appears to be mishandling them on arm and m88k
problems with optind observed by jsg@
|
#
d17652bc |
| 12-Sep-2015 |
guenther <guenther@openbsd.org> |
Wrap <time.h> so that internal calls go direct and symbols not in C99 are weak Add prototypes to localtime.c for offtime(), time2posix(), posix2time() to reduce noise with -Wmissing-prototypes Elimi
Wrap <time.h> so that internal calls go direct and symbols not in C99 are weak Add prototypes to localtime.c for offtime(), time2posix(), posix2time() to reduce noise with -Wmissing-prototypes Eliminate unnecessary #includes
show more ...
|
#
15a0f535 |
| 11-Sep-2015 |
guenther <guenther@openbsd.org> |
Add PROTO_WRAP() for (almost) all the syscalls that libpthread doesn't override so that internal calls go direct
ok deraadt@
|