sched: fair/ems: Add schedtune_util_est
authorlakkyung.jung <lakkyung.jung@samsung.com>
Fri, 4 May 2018 11:16:53 +0000 (20:16 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:24:05 +0000 (20:24 +0300)
Change-Id: I0a0f1723356683829ce709ec750f4f013aa1c75b
Signed-off-by: lakkyung.jung <lakkyung.jung@samsung.com>
kernel/sched/fair.c
kernel/sched/tune.h

index 95b50a697842d73ea5acb503a2c173af8c0f5041..245f3a682e782ed99306d162fa34cf1e37835b43 100644 (file)
@@ -3134,7 +3134,8 @@ __update_load_avg_se(u64 now, int cpu, struct cfs_rq *cfs_rq, struct sched_entit
        if (___update_load_avg(now, cpu, &se->avg,
                               se->on_rq * scale_load_down(se->load.weight),
                               cfs_rq->curr == se, NULL, NULL)) {
-               cfs_se_util_change(&se->avg);
+               if (schedtune_util_est_en(task_of(se)))
+                       cfs_se_util_change(&se->avg);
 
 #ifdef UTIL_EST_DEBUG
                /*
@@ -3715,7 +3716,7 @@ static inline unsigned long _task_util_est(struct task_struct *p)
        return max(ue.ewma, ue.enqueued);
 }
 
-static inline unsigned long task_util_est(struct task_struct *p)
+unsigned long task_util_est(struct task_struct *p)
 {
 #ifdef CONFIG_SCHED_WALT
        if (likely(!walt_disabled && sysctl_sched_use_walt_task_util))
@@ -3787,6 +3788,9 @@ util_est_dequeue(struct cfs_rq *cfs_rq, struct task_struct *p, bool task_sleep)
        if (!task_sleep)
                return;
 
+       if (!schedtune_util_est_en(p))
+               return;
+
        /*
         * If the PELT values haven't changed since enqueue time,
         * skip the util_est update.
index 1588ba24bff9a72719dc404bb0b83228ae97dd4f..ba2669d37cfaff0d158037073dd26aa7c676f7dd 100644 (file)
@@ -22,6 +22,7 @@ int schedtune_perf_threshold(void);
 
 int schedtune_prefer_idle(struct task_struct *tsk);
 int schedtune_prefer_perf(struct task_struct *tsk);
+int schedtune_util_est_en(struct task_struct *tsk);
 
 void schedtune_enqueue_task(struct task_struct *p, int cpu);
 void schedtune_dequeue_task(struct task_struct *p, int cpu);
@@ -38,6 +39,7 @@ void schedtune_dequeue_task(struct task_struct *p, int cpu);
 
 #define schedtune_prefer_idle(tsk) 0
 #define schedtune_prefer_perf(tsk) 0
+#define schedtune_util_est_en(tsk) 0
 
 #define schedtune_enqueue_task(task, cpu) do { } while (0)
 #define schedtune_dequeue_task(task, cpu) do { } while (0)