summaryrefslogtreecommitdiffstats
path: root/drivers/cpuidle/cpuidle-powernv.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2017-04-03 23:54:14 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2017-04-19 23:17:19 +0200
commit0baa91cb73e296242edad89cfe3f60c59ab8a95a (patch)
tree9e5250def7c919e0a8ad2763d7707a3dfc42bd7d /drivers/cpuidle/cpuidle-powernv.c
parentcpuidle: powernv: Don't continually set thread priority in snooze_loop() (diff)
downloadlinux-0baa91cb73e296242edad89cfe3f60c59ab8a95a.tar.xz
linux-0baa91cb73e296242edad89cfe3f60c59ab8a95a.zip
cpuidle: powernv: Avoid a branch in the core snooze_loop() loop
When in the snooze_loop() we want to take up the least amount of resources. On my version of gcc (6.3), we end up with an extra branch because it predicts snooze_timeout_en to be false, whereas it is almost always true. Use likely() to avoid the branch and be a little nicer to the other non idle threads on the core. Signed-off-by: Anton Blanchard <anton@samba.org> Reviewed-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpuidle/cpuidle-powernv.c')
-rw-r--r--drivers/cpuidle/cpuidle-powernv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
index f8901671fff4..5bb4bb303fba 100644
--- a/drivers/cpuidle/cpuidle-powernv.c
+++ b/drivers/cpuidle/cpuidle-powernv.c
@@ -58,7 +58,7 @@ static int snooze_loop(struct cpuidle_device *dev,
ppc64_runlatch_off();
HMT_very_low();
while (!need_resched()) {
- if (snooze_timeout_en && get_tb() > snooze_exit_time)
+ if (likely(snooze_timeout_en) && get_tb() > snooze_exit_time)
break;
}