mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 07:51:31 -04:00
sched: Use hrtimer_highres_enabled()
Use the static branch based variant and thereby avoid following three pointers. Signed-off-by: Thomas Gleixner <tglx@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260224163429.203610956@kernel.org
This commit is contained in:
committed by
Peter Zijlstra
parent
0a93d30861
commit
c3a92213eb
@@ -146,12 +146,6 @@ static inline ktime_t hrtimer_expires_remaining(const struct hrtimer *timer)
|
||||
return ktime_sub(timer->node.expires, hrtimer_cb_get_time(timer));
|
||||
}
|
||||
|
||||
static inline int hrtimer_is_hres_active(struct hrtimer *timer)
|
||||
{
|
||||
return IS_ENABLED(CONFIG_HIGH_RES_TIMERS) ?
|
||||
timer->base->cpu_base->hres_active : 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HIGH_RES_TIMERS
|
||||
extern unsigned int hrtimer_resolution;
|
||||
struct clock_event_device;
|
||||
|
||||
@@ -3019,25 +3019,19 @@ extern unsigned int sysctl_numa_balancing_hot_threshold;
|
||||
* - enabled by features
|
||||
* - hrtimer is actually high res
|
||||
*/
|
||||
static inline int hrtick_enabled(struct rq *rq)
|
||||
static inline bool hrtick_enabled(struct rq *rq)
|
||||
{
|
||||
if (!cpu_active(cpu_of(rq)))
|
||||
return 0;
|
||||
return hrtimer_is_hres_active(&rq->hrtick_timer);
|
||||
return cpu_active(cpu_of(rq)) && hrtimer_highres_enabled();
|
||||
}
|
||||
|
||||
static inline int hrtick_enabled_fair(struct rq *rq)
|
||||
static inline bool hrtick_enabled_fair(struct rq *rq)
|
||||
{
|
||||
if (!sched_feat(HRTICK))
|
||||
return 0;
|
||||
return hrtick_enabled(rq);
|
||||
return sched_feat(HRTICK) && hrtick_enabled(rq);
|
||||
}
|
||||
|
||||
static inline int hrtick_enabled_dl(struct rq *rq)
|
||||
static inline bool hrtick_enabled_dl(struct rq *rq)
|
||||
{
|
||||
if (!sched_feat(HRTICK_DL))
|
||||
return 0;
|
||||
return hrtick_enabled(rq);
|
||||
return sched_feat(HRTICK_DL) && hrtick_enabled(rq);
|
||||
}
|
||||
|
||||
extern void hrtick_start(struct rq *rq, u64 delay);
|
||||
@@ -3047,22 +3041,9 @@ static inline bool hrtick_active(struct rq *rq)
|
||||
}
|
||||
|
||||
#else /* !CONFIG_SCHED_HRTICK: */
|
||||
|
||||
static inline int hrtick_enabled_fair(struct rq *rq)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int hrtick_enabled_dl(struct rq *rq)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int hrtick_enabled(struct rq *rq)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline bool hrtick_enabled_fair(struct rq *rq) { return false; }
|
||||
static inline bool hrtick_enabled_dl(struct rq *rq) { return false; }
|
||||
static inline bool hrtick_enabled(struct rq *rq) { return false; }
|
||||
#endif /* !CONFIG_SCHED_HRTICK */
|
||||
|
||||
#ifndef arch_scale_freq_tick
|
||||
|
||||
Reference in New Issue
Block a user