summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-11-23 07:09:35 +0000
committerkib <kib@FreeBSD.org>2015-11-23 07:09:35 +0000
commite0c4faece4ce54570904909a5ede55c60f35fe5f (patch)
tree86f12545db0b9e76efce54eb215d79ed458d2be6 /sys/compat
parentd427e0a9ba651eeab98ce6516fef233ea7041714 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/compat/ia32/ia32_sysvec.c2
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
OpenPOWER on IntegriCloud