Messages in this thread Patch in this message | | | Date | Thu, 21 Apr 2022 12:32:17 +0200 | Subject | Re: [External] Re: [PATCH] sched/core: Avoid obvious double update_rq_clock warning | From | Dietmar Eggemann <> |
| |
On 21/04/2022 09:24, Hao Jia wrote: > On 2022/4/21 Dietmar Eggemann wrote: >> On 20/04/2022 10:29, Hao Jia wrote: >>> On 4/19/22 6:48 PM, Peter Zijlstra wrote: >>>> On Mon, Apr 18, 2022 at 05:09:29PM +0800, Hao Jia wrote:
[...]
> Thanks for your review. > This is very helpful to me. > If CONFIG_SMP is not enabled, should we just clear the RQCF_UPDATED of > one of rq1 and q2? > > like this: > rq1->clock_update_flags &= (RQCF_REQ_SKIP|RQCF_ACT_SKIP);
[...]
We could take care of that within rq_clock_clear_update() if really needed? Anyway, for !CONFIG_SMP builds rq_clock_clear_update() has to be defined outside #ifdef CONFIG_SMP.
-->8--
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 3a77b10d7cc4..614b822c667c 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -2484,6 +2484,17 @@ unsigned long arch_scale_freq_capacity(int cpu) } #endif +#ifdef CONFIG_SCHED_DEBUG +static inline void rq_clock_clear_update(struct rq *rq1, struct rq *rq2) +{ + rq1->clock_update_flags &= (RQCF_REQ_SKIP|RQCF_ACT_SKIP); +#ifdef CONFIG_SMP + rq2->clock_update_flags &= (RQCF_REQ_SKIP|RQCF_ACT_SKIP); +#endif +} +#else +static inline void rq_clock_clear_update(struct rq *rq1, struct rq *rq2) {} +#endif #ifdef CONFIG_SMP @@ -2515,16 +2526,6 @@ static inline bool rq_order_less(struct rq *rq1, struct rq *rq2) extern void double_rq_lock(struct rq *rq1, struct rq *rq2); -#ifdef CONFIG_SCHED_DEBUG -static inline void rq_clock_clear_update(struct rq *rq1, struct rq *rq2) -{ - rq1->clock_update_flags &= (RQCF_REQ_SKIP|RQCF_ACT_SKIP); - rq2->clock_update_flags &= (RQCF_REQ_SKIP|RQCF_ACT_SKIP); -} -#else -static inline void rq_clock_clear_update(struct rq *rq1, struct rq *rq2) {} -#endif - #ifdef CONFIG_PREEMPTION /*
| |