diff options
author | kib <kib@FreeBSD.org> | 2015-11-23 07:09:35 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-11-23 07:09:35 +0000 |
commit | e0c4faece4ce54570904909a5ede55c60f35fe5f (patch) | |
tree | 86f12545db0b9e76efce54eb215d79ed458d2be6 /sys/compat/ia32/ia32_sysvec.c | |
parent | d427e0a9ba651eeab98ce6516fef233ea7041714 (diff) | |
download | FreeBSD-src-e0c4faece4ce54570904909a5ede55c60f35fe5f.zip FreeBSD-src-e0c4faece4ce54570904909a5ede55c60f35fe5f.tar.gz |
Split kerne timekeep ABI structure vdso_sv_tk out of the struct
sysentvec. This allows the timekeep data to be shared between similar
ABIs which cannot share sysentvec.
Make the timekeep_push_vdso() tick callback to the timekeep structures
instead of sysentvecs. If several sysentvec share the vdso_sv_tk
structure, we would update the userspace data several times on each
tick, without the change.
Only allocate vdso_sv_tk in the exec_sysvec_init() sysinit when
sysentvec is marked with the new SV_TIMEKEEP flag. This saves
allocation and update of unneeded vdso_sv_tk for ABIs which do not
provide userspace gettimeofday yet, which are PowerPCs arches right
now.
Make vdso_sv_tk allocator public, namely split out and export
alloc_sv_tk() and alloc_sv_tk_compat32(). ABIs which share timekeep
data now can allocate it manually and share as appropriate.
Requested by: nwhitehorn
Tested by: nwhitehorn, pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Diffstat (limited to 'sys/compat/ia32/ia32_sysvec.c')
-rw-r--r-- | sys/compat/ia32/ia32_sysvec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/compat/ia32/ia32_sysvec.c b/sys/compat/ia32/ia32_sysvec.c index 51a9e9f..c580e5d 100644 --- a/sys/compat/ia32/ia32_sysvec.c +++ b/sys/compat/ia32/ia32_sysvec.c @@ -125,7 +125,7 @@ struct sysentvec ia32_freebsd_sysvec = { .sv_maxssiz = &ia32_maxssiz, .sv_flags = SV_ABI_FREEBSD | SV_IA32 | SV_ILP32 | #ifdef __amd64__ - SV_SHP + SV_SHP | SV_TIMEKEEP #else 0 #endif |