diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2016-07-27 11:49:41 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-12 07:04:11 +0200 |
commit | b48aeaf4cfdbc289a53ff78f06452298845f8d3a (patch) | |
tree | 88919ecbb4cc8da0a950f7aae59d11f1fc11f7b1 /cpukit/score/include | |
parent | timecounter: Merge FreeBSD change r303384 (diff) | |
download | rtems-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')
0 files changed, 0 insertions, 0 deletions