svn commit: r315280 - in head/sys: kern sys
Ngie Cooper
yaneurabeya at gmail.com
Tue Mar 14 22:16:13 UTC 2017
On Tue, Mar 14, 2017 at 12:06 PM, Eric van Gyzen <vangyzen at freebsd.org> wrote:
> Author: vangyzen
> Date: Tue Mar 14 19:06:44 2017
> New Revision: 315280
> URL: https://svnweb.freebsd.org/changeset/base/315280
>
> Log:
> When the RTC is adjusted, reevaluate absolute sleep times based on the RTC
>
> POSIX 2008 says this about clock_settime(2):
>
> If the value of the CLOCK_REALTIME clock is set via clock_settime(),
> the new value of the clock shall be used to determine the time
> of expiration for absolute time services based upon the
> CLOCK_REALTIME clock. This applies to the time at which armed
> absolute timers expire. If the absolute time requested at the
> invocation of such a time service is before the new value of
> the clock, the time service shall expire immediately as if the
> clock had reached the requested time normally.
>
> Setting the value of the CLOCK_REALTIME clock via clock_settime()
> shall have no effect on threads that are blocked waiting for
> a relative time service based upon this clock, including the
> nanosleep() function; nor on the expiration of relative timers
> based upon this clock. Consequently, these time services shall
> expire when the requested relative interval elapses, independently
> of the new or old value of the clock.
>
> When the real-time clock is adjusted, such as by clock_settime(3),
> wake any threads sleeping until an absolute real-clock time.
> Such a sleep is indicated by a non-zero td_rtcgen. The sleep functions
> will set that field to zero and return zero to tell the caller
> to reevaluate its sleep duration based on the new value of the clock.
>
> At present, this affects the following functions:
>
> pthread_cond_timedwait(3)
> pthread_mutex_timedlock(3)
> pthread_rwlock_timedrdlock(3)
> pthread_rwlock_timedwrlock(3)
> sem_timedwait(3)
> sem_clockwait_np(3)
>
> I'm working on adding clock_nanosleep(2), which will also be affected.
>
> Reported by: Sebastian Huber <sebastian.huber at embedded-brains.de>
> Reviewed by: jhb, kib
> MFC after: 2 weeks
> Relnotes: yes
> Sponsored by: Dell EMC
> Differential Revision: https://reviews.freebsd.org/D9791
Thanks for this!
I'll take a look at running "open_posix_testsuite" from LTP and (when
time/appropriate), I'll help out with integrating in the
clock_nanosleep tests from NetBSD
(contrib/netbsd-tests/lib/libc/sys/t_clock_nanosleep.c, ).
Cheers!
-Ngie
More information about the svn-src-all
mailing list