Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0baa91cb authored by Anton Blanchard's avatar Anton Blanchard Committed by Rafael J. Wysocki
Browse files

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: default avatarAnton Blanchard <anton@samba.org>
Reviewed-by: default avatarVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 26eb48a9
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -58,7 +58,7 @@ static int snooze_loop(struct cpuidle_device *dev,
	ppc64_runlatch_off();
	ppc64_runlatch_off();
	HMT_very_low();
	HMT_very_low();
	while (!need_resched()) {
	while (!need_resched()) {
		if (snooze_timeout_en && get_tb() > snooze_exit_time)
		if (likely(snooze_timeout_en) && get_tb() > snooze_exit_time)
			break;
			break;
	}
	}