On Tue, May 17, 2016 at 01:24:15PM +0100, Matt Fleming wrote:
> So, if the code looks like the following, either now or in the future,
> 
> static void __schedule(bool preempt)
> {
>       ...
>       /* Clear RQCF_ACT_SKIP */
>       rq->clock_update_flags = 0;
>       ...
>       delta = rq_clock();
> }
 
Sigh, you even said "Clear RQCF_ACT_SKIP", but you not only clear it,
you clear everything. And if you clear the RQCF_UPDATE also (maybe you
shouldn't, but actually it does not matter), of course you will get
a warning...

In addition, it looks like multiple skips are possible, so:

update_rq_clock() {
        rq->clock_update_flags |= RQCF_UPDATE;

        ...
}

instead of clearing the skip flag there.

Reply via email to