mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Revert "xen/cpufreq: fix usages of align_timer() in the on-demand governor"
The original commit showed a ~6% regression in a benchmark. The call to align_timer(firsttick, period) rounds firsttick up to the next mutiple of the period, if firsttick % period != 0: align_timer(0, period) -> 0 align_timer(1, period) -> period align_timer(period, period) -> period align_timer(period + 1, period) -> 2 * period So adding the period (sampling_rate) before calling align_timer() will in most cases incease the expiration to 2 * period (sampling_rate) (the exception being firsttick % period == 0). This longer timer slows the reaction time of the algorithm. This reverts commita0ed5bcfbe, just without re-introducing the style issues that were there. Fixes:a0ed5bcfbe("xen/cpufreq: fix usages of align_timer() in the on-demand governor") Signed-off-by: Jason Andryuk <jason.andryuk@amd.com> Acked-by: Roger Pau Monné <roger.pau@citrix.com> Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
This commit is contained in:
1 parent
a89ca78901
commit
e301cd36de
1 file changed
+2
-3
@@ -185,8 +185,7 @@ static void cf_check do_dbs_timer(void *dbs)
|
||||
dbs_check_cpu(dbs_info);
|
||||
|
||||
set_timer(&per_cpu(dbs_timer, dbs_info->cpu),
|
||||
align_timer(NOW() + dbs_tuners_ins.sampling_rate,
|
||||
dbs_tuners_ins.sampling_rate));
|
||||
align_timer(NOW(), dbs_tuners_ins.sampling_rate));
|
||||
}
|
||||
|
||||
static void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)
|
||||
@@ -401,6 +400,6 @@ void cpufreq_dbs_timer_resume(void)
|
||||
(void)cmpxchg(stoppable, -1, 1);
|
||||
}
|
||||
else
|
||||
set_timer(t, align_timer(t->expires, dbs_tuners_ins.sampling_rate));
|
||||
set_timer(t, align_timer(now, dbs_tuners_ins.sampling_rate));
|
||||
}
|
||||
}
|
||||