Changeset b48aeaf in rtems for cpukit

Timestamp:
07/27/16 11:49:41 (8 years ago)
Author:
Konstantin Belousov <kib@…>
Branches:
5, master
Children:
c382cc83
Parents:
464fd5d
git-author:
Konstantin Belousov <kib@…> (07/27/16 11:49:41)
git-committer:
Sebastian Huber <sebastian.huber@…> (10/12/17 05:04:11)
Message:

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.

(No files)

Note: See TracChangeset for help on using the changeset viewer.