freebsd-skq/sys
Konstantin Belousov aea810386d Implement mechanism to export some kernel timekeeping data to
usermode, using shared page.  The structures and functions have vdso
prefix, to indicate the intended location of the code in some future.

The versioned per-algorithm data is exported in the format of struct
vdso_timehands, which mostly repeats the content of in-kernel struct
timehands. Usermode reading of the structure can be lockless.
Compatibility export for 32bit processes on 64bit host is also
provided. Kernel also provides usermode with indication about
currently used timecounter, so that libc can fall back to syscall if
configured timecounter is unknown to usermode code.

The shared data updates are initiated both from the tc_windup(), where
a fast task is queued to do the update, and from sysctl handlers which
change timecounter. A manual override switch
kern.timecounter.fast_gettime allows to turn off the mechanism.

Only x86 architectures export the real algorithm data, and there, only
for tsc timecounter. HPET counters page could be exported as well, but
I prefer to not further glue the kernel and libc ABI there until
proper vdso-based solution is developed.

Minimal stubs neccessary for non-x86 architectures to still compile
are provided.

Discussed with:	bde
Reviewed by:	jhb
Tested by:	flo
MFC after:	1 month
2012-06-22 07:06:40 +00:00
..
amd64 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
arm Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
boot MFV: Update zlib to 1.2.7. 2012-06-21 21:47:08 +00:00
bsm
cam Make cam_periph_hold() behavior consistent: drop taken reference and 2012-06-21 15:14:51 +00:00
cddl Introduce "feature flags" for ZFS pools (bump SPA version to 5000). 2012-06-11 11:35:22 +00:00
compat
conf Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
contrib Merge ACPICA 20120620. 2012-06-22 00:40:44 +00:00
crypto
ddb
dev Add PCI IDs for Ivy Bridge 2012-06-21 22:06:57 +00:00
fs Enable deadlock avoidance code for NFS client. 2012-06-21 09:26:06 +00:00
gdb
geom Always reconstruct partition entries in the PMBR when Boot Camp is 2012-06-14 11:17:54 +00:00
gnu/fs Fix build: 2012-05-23 06:49:50 +00:00
i386 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
ia64 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
isa
kern Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
kgssapi
libkern Fix unloading of libiconv module. 2012-06-11 17:42:39 +00:00
mips Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
modules - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
net - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
net80211 Extend the radiotap code to be aware of the size of any extra vendor 2012-06-18 02:08:04 +00:00
netatalk
netgraph Make radix lookup on src and dst flow addresses optional 2012-06-18 13:56:36 +00:00
netinet Remove redundant #ifdef. Reported by gnn@. 2012-06-21 12:51:24 +00:00
netinet6 Pass flowid explicitly through the stack instead of taking it from 2012-06-14 06:54:48 +00:00
netipsec
netipx
netnatm
netncp
netsmb When checking if file descriptor number is valid, explicitely check for 'fd' 2012-06-13 22:12:10 +00:00
nfs
nfsclient
nfsserver
nlm
ofed - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
opencrypto
pc98 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
pci
powerpc Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
rpc
security
sparc64 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
sys Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
teken
tools
ufs Fix unbounded-length malloc, controlled from usermode. The added check 2012-06-21 09:20:07 +00:00
vm Selectively inline vm_page_dirty(). 2012-06-20 23:25:47 +00:00
x86 Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
xdr
xen
Makefile