diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 79b175a65e0e..cdc81f13dd3b 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3133,17 +3133,20 @@ void note_task_waking(struct task_struct *p, u64 wallclock); static inline bool task_placement_boost_enabled(struct task_struct *p) { - if (task_sched_boost(p)) - return sched_boost_policy() != SCHED_BOOST_NONE; + if (likely(sched_boost_policy() == SCHED_BOOST_NONE)) + return false; - return false; + return task_sched_boost(p); } static inline enum sched_boost_policy task_boost_policy(struct task_struct *p) { - enum sched_boost_policy policy = task_sched_boost(p) ? - sched_boost_policy() : - SCHED_BOOST_NONE; + enum sched_boost_policy policy; + + if (likely(sched_boost_policy() == SCHED_BOOST_NONE)) + return SCHED_BOOST_NONE; + + policy = task_sched_boost(p) ? sched_boost_policy() : SCHED_BOOST_NONE; if (policy == SCHED_BOOST_ON_BIG) { /* * Filter out tasks less than min task util threshold