freebsd-nq/sys
Konstantin Belousov 5760b029ee Prevent parallel tc_windup() calls, both parallel top-level calls from
setclock() and from simultaneous top-level and interrupt.  For this,
tc_windup() is protected with a tc_setclock_mtx spinlock, in the try
mode when called from hardclock interrupt.  If spinlock cannot be
obtained without spinning from the interrupt context, this means that
top-level executes tc_windup() on other core and our try may be
avoided.

The boottimebin and boottime variables should be adjusted from
tc_windup().  To be correct, they must be part of the timehands and
read using lockless protocol.  Remove the globals and reimplement the
getboottime(9)/getboottimebin(9) KPI using the timehands read
protocol.

Tested by:	pho (as part of the whole patch)
Reviewed by:	jhb (same)
Discussed wit:	bde
Sponsored by:	The FreeBSD Foundation
MFC after:	1 month
X-Differential revision:	https://reviews.freebsd.org/D7302
2016-07-27 11:49:41 +00:00
..
amd64 Add more UEFI/e820 memory types from latest specifications. 2016-07-24 09:15:11 +00:00
arm Add more UEFI/e820 memory types from latest specifications. 2016-07-24 09:15:11 +00:00
arm64 Remove an unused variable. 2016-07-25 16:18:20 +00:00
boot Do not use TERM_EMU on arm and arm64 as it doesn't behave well with serial console. 2016-07-19 19:00:22 +00:00
bsm
cam Remove some extraneous printfs. 2016-07-25 19:16:30 +00:00
cddl Merge {amd64,i386}/instr_size.c into x86_instr_size.c. 2016-07-20 00:02:10 +00:00
compat Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
conf hyperv/vmbus: Rename cleaned up bufring code 2016-07-27 09:27:08 +00:00
contrib Update iwmfw(4) to include support for 8260 series units and update 2016-07-25 23:05:25 +00:00
crypto Connect the SHA-512t256 and Skein hashing algorithms to ZFS 2016-05-31 04:12:14 +00:00
ddb Add a small set of logical operators to DDB command language. 2016-05-16 19:42:38 +00:00
dev hyperv/vmbus: Rename cleaned up bufring code 2016-07-27 09:27:08 +00:00
fs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
gdb
geom Do not invoke resize method if geom is being withered. 2016-07-25 09:12:08 +00:00
gnu Revert changes for local testing, inadvertantly commited in r300811. 2016-05-26 23:59:42 +00:00
i386 Add more UEFI/e820 memory types from latest specifications. 2016-07-24 09:15:11 +00:00
isa
kern Prevent parallel tc_windup() calls, both parallel top-level calls from 2016-07-27 11:49:41 +00:00
kgssapi
libkern
mips mips/ddb: fix MIPS backtrace truncation and MIPS32 register printing. 2016-07-12 02:12:31 +00:00
modules hyperv/vmbus: Rename cleaned up bufring code 2016-07-27 09:27:08 +00:00
net Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
net80211 [net80211] teach AMRR to log the initial MCS rate as "MCS X" 2016-07-01 19:58:13 +00:00
netgraph Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
netinet Fix the case for some sysctl descriptions. 2016-07-26 20:20:09 +00:00
netinet6 Fix per-connection L2 caching in fast path 2016-07-22 02:11:49 +00:00
netipsec Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
netnatm
netpfil Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
netsmb
nfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
nfsclient
nfsserver
nlm When sleeping waiting for either local or remote advisory lock, 2016-06-26 20:08:42 +00:00
ofed Fix bug in iwcm that caused a panic in iw_cm_wq when krping is run 2016-06-14 20:58:05 +00:00
opencrypto sys/opencrypto: minor spelling fixes. 2016-05-06 23:37:19 +00:00
pc98
powerpc Use label math instead of hard-coding offsets for return addresses. 2016-07-23 02:27:42 +00:00
riscv Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
rpc Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
security Add AUE_WAIT6 handling to the BSM conversion switch statement, reusing 2016-07-11 13:06:17 +00:00
sparc64 Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
sys Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
teken
tests
tools
ufs Ensure that the UFS directory vnode' vm_object is properly sized 2016-07-20 14:40:56 +00:00
vm Update a comment to reflect r284376. 2016-07-27 03:49:00 +00:00
x86 Don't print same value twice, one in decimal once in hex. This makes 2016-07-18 03:59:03 +00:00
xdr
xen xen: Correct typo in #undef for symbol NBPL 2016-06-06 14:55:46 +00:00
Makefile