#
1.11 |
|
06-Jul-2020 |
pirofti |
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@
|
Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
|
#
1.10 |
|
08-Jul-2011 |
martynas |
Revert (leaving the complex math part alone). Some stuff is depending on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
|
#
1.9 |
|
08-Jul-2011 |
martynas |
Move fabs(3), frexp(3), and modf(3) to libm--nothing has been using them in libc for a very long time. OK guenther@.
|
Revision tags: OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
|
#
1.8 |
|
21-Apr-2009 |
martynas |
remove from gen so that lint doesn't check gen if assembly versions are available. spotted by theo
|
#
1.7 |
|
19-Apr-2009 |
martynas |
- ldexp implementation has issues. switch to the one from libm - remove frexp in hppa64, cloned from hppa - move generic ieee754 implementations of modf and ldexp to gen ok kettenis@, "looks good" millert@
|
Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE
|
#
1.6 |
|
24-Jul-2008 |
martynas |
- move isinf, isnan dups to gen, since most is ieee 754 - is{inf,nan} should be macros for real-floating, so rename to __is{inf,nan}, per C99 - implement C99 __fpclassify(), __fpclassifyf(), __isfinite(), __isfinitef(), __isnormal(), __isnormalf(), __signbit(), __signbitf() - long functions added, but not yet enabled, till ieee.h is fixed - implement vax equivalents of the functions - reimplement isinff, isnanf in a better way, and move to libc - add qnan bytes for all archs - bump major man pages will follow ok millert@. arm bits looked over by drahn@ discussed w/ theo, who showed the right direction, to put these functions in libc
|
Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
|
#
1.5 |
|
02-Mar-2007 |
miod |
Move landisk to hardware floating point. At the moment the FPU context is always saved upon context switches, as FPU registers are heavily used for long long computations (don't ask). Gcc default to -m4.
Credits to drahn@ otto@ and deraadt@ for feedback and help testing.
Upgrade procedure if you don't want to use the damn snapshots: - build and install new kernel, reboot off it - build new gcc, do not install it yet - make includes - install new gcc - build and install lib/csu and lib/libc - make build
|
#
1.4 |
|
06-Nov-2006 |
drahn |
Move (back) to softfloat on sh for now.
|
#
1.3 |
|
11-Oct-2006 |
drahn |
and I forgot ldexp.c
|
#
1.2 |
|
11-Oct-2006 |
drahn |
build modf.c
|
#
1.1 |
|
10-Oct-2006 |
miod |
branches: 1.1.1; Initial revision
|
Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.10 |
|
08-Jul-2011 |
martynas |
Revert (leaving the complex math part alone). Some stuff is depending on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
|
#
1.9 |
|
08-Jul-2011 |
martynas |
Move fabs(3), frexp(3), and modf(3) to libm--nothing has been using them in libc for a very long time. OK guenther@.
|
Revision tags: OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE
|
#
1.8 |
|
21-Apr-2009 |
martynas |
remove from gen so that lint doesn't check gen if assembly versions are available. spotted by theo
|
#
1.7 |
|
19-Apr-2009 |
martynas |
- ldexp implementation has issues. switch to the one from libm - remove frexp in hppa64, cloned from hppa - move generic ieee754 implementations of modf and ldexp to gen ok kettenis@, "looks good" millert@
|
Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE
|
#
1.6 |
|
24-Jul-2008 |
martynas |
- move isinf, isnan dups to gen, since most is ieee 754 - is{inf,nan} should be macros for real-floating, so rename to __is{inf,nan}, per C99 - implement C99 __fpclassify(), __fpclassifyf(), __isfinite(), __isfinitef(), __isnormal(), __isnormalf(), __signbit(), __signbitf() - long functions added, but not yet enabled, till ieee.h is fixed - implement vax equivalents of the functions - reimplement isinff, isnanf in a better way, and move to libc - add qnan bytes for all archs - bump major man pages will follow ok millert@. arm bits looked over by drahn@ discussed w/ theo, who showed the right direction, to put these functions in libc
|
Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE
|
#
1.5 |
|
02-Mar-2007 |
miod |
Move landisk to hardware floating point. At the moment the FPU context is always saved upon context switches, as FPU registers are heavily used for long long computations (don't ask). Gcc default to -m4.
Credits to drahn@ otto@ and deraadt@ for feedback and help testing.
Upgrade procedure if you don't want to use the damn snapshots: - build and install new kernel, reboot off it - build new gcc, do not install it yet - make includes - install new gcc - build and install lib/csu and lib/libc - make build
|
#
1.4 |
|
06-Nov-2006 |
drahn |
Move (back) to softfloat on sh for now.
|
#
1.3 |
|
11-Oct-2006 |
drahn |
and I forgot ldexp.c
|
#
1.2 |
|
11-Oct-2006 |
drahn |
build modf.c
|
#
1.1 |
|
10-Oct-2006 |
miod |
branches: 1.1.1; Initial revision
|