summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/sys/timetc.h
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2016-07-27 11:49:41 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-12 07:04:11 +0200
commitb48aeaf4cfdbc289a53ff78f06452298845f8d3a (patch)
tree88919ecbb4cc8da0a950f7aae59d11f1fc11f7b1 /cpukit/score/include/sys/timetc.h
parenttimecounter: Merge FreeBSD change r303384 (diff)
downloadrtems-b48aeaf4cfdbc289a53ff78f06452298845f8d3a.tar.bz2
timecounter: Merge FreeBSD change r303387
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 Update #3175.
Diffstat (limited to 'cpukit/score/include/sys/timetc.h')
0 files changed, 0 insertions, 0 deletions