#ifdef CONFIG_SMP
        do {
-               u32 divider = LOAD_AVG_MAX - 1024 + se->avg.period_contrib;
+               u32 divider = get_pelt_divider(&se->avg);
 
                se->avg.load_avg = div_u64(se_weight(se) * se->avg.load_sum, divider);
        } while (0);
 update_tg_cfs_util(struct cfs_rq *cfs_rq, struct sched_entity *se, struct cfs_rq *gcfs_rq)
 {
        long delta = gcfs_rq->avg.util_avg - se->avg.util_avg;
-       /*
-        * cfs_rq->avg.period_contrib can be used for both cfs_rq and se.
-        * See ___update_load_avg() for details.
-        */
-       u32 divider = LOAD_AVG_MAX - 1024 + cfs_rq->avg.period_contrib;
+       u32 divider;
 
        /* Nothing to update */
        if (!delta)
                return;
 
+       /*
+        * cfs_rq->avg.period_contrib can be used for both cfs_rq and se.
+        * See ___update_load_avg() for details.
+        */
+       divider = get_pelt_divider(&cfs_rq->avg);
+
        /* Set new sched_entity's utilization */
        se->avg.util_avg = gcfs_rq->avg.util_avg;
        se->avg.util_sum = se->avg.util_avg * divider;
 update_tg_cfs_runnable(struct cfs_rq *cfs_rq, struct sched_entity *se, struct cfs_rq *gcfs_rq)
 {
        long delta = gcfs_rq->avg.runnable_avg - se->avg.runnable_avg;
-       /*
-        * cfs_rq->avg.period_contrib can be used for both cfs_rq and se.
-        * See ___update_load_avg() for details.
-        */
-       u32 divider = LOAD_AVG_MAX - 1024 + cfs_rq->avg.period_contrib;
+       u32 divider;
 
        /* Nothing to update */
        if (!delta)
                return;
 
+       /*
+        * cfs_rq->avg.period_contrib can be used for both cfs_rq and se.
+        * See ___update_load_avg() for details.
+        */
+       divider = get_pelt_divider(&cfs_rq->avg);
+
        /* Set new sched_entity's runnable */
        se->avg.runnable_avg = gcfs_rq->avg.runnable_avg;
        se->avg.runnable_sum = se->avg.runnable_avg * divider;
         * cfs_rq->avg.period_contrib can be used for both cfs_rq and se.
         * See ___update_load_avg() for details.
         */
-       divider = LOAD_AVG_MAX - 1024 + cfs_rq->avg.period_contrib;
+       divider = get_pelt_divider(&cfs_rq->avg);
 
        if (runnable_sum >= 0) {
                /*
 
        if (cfs_rq->removed.nr) {
                unsigned long r;
-               u32 divider = LOAD_AVG_MAX - 1024 + sa->period_contrib;
+               u32 divider = get_pelt_divider(&cfs_rq->avg);
 
                raw_spin_lock(&cfs_rq->removed.lock);
                swap(cfs_rq->removed.util_avg, removed_util);
         * cfs_rq->avg.period_contrib can be used for both cfs_rq and se.
         * See ___update_load_avg() for details.
         */
-       u32 divider = LOAD_AVG_MAX - 1024 + cfs_rq->avg.period_contrib;
+       u32 divider = get_pelt_divider(&cfs_rq->avg);
 
        /*
         * When we attach the @se to the @cfs_rq, we must align the decay