On Tue, 2017-10-10 at 18:47 +0200, Sebastian Andrzej Siewior wrote:
> On 2017-10-10 18:24:55 [+0200], To Mike Galbraith wrote:
> > > homer:..debug/tracing # time chrt -f 1 
> > > /usr/local/ltp/conformance/interfaces/clock_settime/clock_settime_8-1.run-test
> > > Ended too late.  1507351636 >> 1507351634
> > > Test FAILED
> > > 
> > > real    0m7.002s
> > > user    0m0.000s
> > > sys     0m0.002s
> > 
> > As per POSIX we should sleep only 5 secs despite the CLOCK_REALTIME
> > change. In RT case however we sleep 7 so we somehow account it which is
> > wrong.
> 
> This should cure it:

Yup, nailed it.  I hadn't gotten around to chasing this one (4 weeks
vacation === baaaackloooog), but did do the promised full ltp run with
fixes applied, and there were no shiny new failures.  So tree should
now be perfect.. modulo the pile of bugs nobody has as yet noticed :)

> diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
> --- a/kernel/time/hrtimer.c
> +++ b/kernel/time/hrtimer.c
> @@ -1258,6 +1258,8 @@ static void __hrtimer_init(struct hrtimer *timer, 
> clockid_t clock_id,
>                       clock_id = CLOCK_MONOTONIC;
>               else if (clock_id == CLOCK_REALTIME_SOFT)
>                       clock_id = CLOCK_MONOTONIC_SOFT;
> +             else if (clock_id == CLOCK_REALTIME_HARD)
> +                     clock_id = CLOCK_MONOTONIC;
>       }
>  
>       base = hrtimer_clockid_to_base(clock_id);
>  
> Sebastian

Reply via email to