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

Commit 582b910e authored by Preeti U Murthy's avatar Preeti U Murthy Committed by Benjamin Herrenschmidt
Browse files

ppc/kvm: Clear the runlatch bit of a vcpu before napping



When the guest cedes the vcpu or the vcpu has no guest to
run it naps. Clear the runlatch bit of the vcpu before
napping to indicate an idle cpu.

Signed-off-by: default avatarPreeti U Murthy <preeti@linux.vnet.ibm.com>
Acked-by: default avatarPaul Mackerras <paulus@samba.org>
Reviewed-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent fd17dc7b
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -315,6 +315,11 @@ kvm_no_guest:
	li	r0, KVM_HWTHREAD_IN_NAP
	stb	r0, HSTATE_HWTHREAD_STATE(r13)
kvm_do_nap:
	/* Clear the runlatch bit before napping */
	mfspr	r2, SPRN_CTRLF
	clrrdi	r2, r2, 1
	mtspr	SPRN_CTRLT, r2

	li	r3, LPCR_PECE0
	mfspr	r4, SPRN_LPCR
	rlwimi	r4, r3, 0, LPCR_PECE0 | LPCR_PECE1
@@ -2005,8 +2010,13 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_206)

	/*
	 * Take a nap until a decrementer or external or doobell interrupt
	 * occurs, with PECE1, PECE0 and PECEDP set in LPCR
	 * occurs, with PECE1, PECE0 and PECEDP set in LPCR. Also clear the
	 * runlatch bit before napping.
	 */
	mfspr	r2, SPRN_CTRLF
	clrrdi	r2, r2, 1
	mtspr	SPRN_CTRLT, r2

	li	r0,1
	stb	r0,HSTATE_HWTHREAD_REQ(r13)
	mfspr	r5,SPRN_LPCR