diff --git a/kernel/sched/walt/walt.h b/kernel/sched/walt/walt.h index 203ca9798fa1..bed7dd0e49fd 100644 --- a/kernel/sched/walt/walt.h +++ b/kernel/sched/walt/walt.h @@ -923,9 +923,11 @@ static inline bool walt_flag_test(struct task_struct *p, enum walt_flags feature #define WALT_MVP_SLICE 3000000U #define WALT_MVP_LIMIT (4 * WALT_MVP_SLICE) +/* higher number, better priority */ #define WALT_RTG_MVP 0 #define WALT_BINDER_MVP 1 #define WALT_TASK_BOOST_MVP 2 +#define WALT_LL_PIPE_MVP 3 #define WALT_NOT_MVP -1 diff --git a/kernel/sched/walt/walt_cfs.c b/kernel/sched/walt/walt_cfs.c index 18543e113aad..6a44c6c9400c 100644 --- a/kernel/sched/walt/walt_cfs.c +++ b/kernel/sched/walt/walt_cfs.c @@ -1042,14 +1042,17 @@ static void binder_restore_priority_hook(void *data, */ int walt_get_mvp_task_prio(struct task_struct *p) { + if (walt_procfs_low_latency_task(p) || + walt_pipeline_low_latency_task(p)) + return WALT_LL_PIPE_MVP; + if (per_task_boost(p) == TASK_BOOST_STRICT_MAX) return WALT_TASK_BOOST_MVP; if (walt_binder_low_latency_task(p)) return WALT_BINDER_MVP; - if (task_rtg_high_prio(p) || walt_procfs_low_latency_task(p) || - walt_pipeline_low_latency_task(p)) + if (task_rtg_high_prio(p)) return WALT_RTG_MVP; return WALT_NOT_MVP;