mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
sched/fair: Add READ_ONCE() and use existing helper function to access ->avg_irq
Use existing helper function cpu_util_irq() instead of open-coding access to ->avg_irq. During review it was noted that ->avg_irq could be updated by a different CPU than the one which is trying to access it. ->avg_irq is updated with WRITE_ONCE(), use READ_ONCE to access it in order to avoid any compiler optimizations. Signed-off-by: Shrikanth Hegde <sshegde@linux.vnet.ibm.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org> Link: https://lore.kernel.org/r/20240101154624.100981-3-sshegde@linux.vnet.ibm.com
This commit is contained in:
parent
8b936fc1d8
commit
a6965b3188
|
@ -9246,10 +9246,8 @@ static inline bool others_have_blocked(struct rq *rq)
|
||||||
if (thermal_load_avg(rq))
|
if (thermal_load_avg(rq))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
|
if (cpu_util_irq(rq))
|
||||||
if (READ_ONCE(rq->avg_irq.util_avg))
|
|
||||||
return true;
|
return true;
|
||||||
#endif
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3136,7 +3136,7 @@ static inline bool uclamp_rq_is_idle(struct rq *rq)
|
||||||
#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
|
#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
|
||||||
static inline unsigned long cpu_util_irq(struct rq *rq)
|
static inline unsigned long cpu_util_irq(struct rq *rq)
|
||||||
{
|
{
|
||||||
return rq->avg_irq.util_avg;
|
return READ_ONCE(rq->avg_irq.util_avg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
|
|
Loading…
Reference in a new issue