[PATCH 22/26] KVM: PPC: Book3S PR: add emulation for trechkpt in PR KVM.

Paul Mackerras paulus at ozlabs.org
Tue Jan 23 20:36:44 AEDT 2018


On Thu, Jan 11, 2018 at 06:11:35PM +0800, wei.guo.simon at gmail.com wrote:
> From: Simon Guo <wei.guo.simon at gmail.com>
> 
> This patch adds host emulation when guest PR KVM executes "trechkpt.",
> which is a privileged instruction and will trap into host.
> 
> We firstly copy vcpu ongoing content into vcpu tm checkpoint
> content, then perform kvmppc_restore_tm_pr() to do trechkpt.
> with updated vcpu tm checkpoint vals.
> 
> Signed-off-by: Simon Guo <wei.guo.simon at gmail.com>

[snip]

> +static void kvmppc_emulate_trchkpt(struct kvm_vcpu *vcpu)
> +{
> +	unsigned long guest_msr = kvmppc_get_msr(vcpu);
> +
> +	preempt_disable();
> +	vcpu->arch.save_msr_tm = MSR_TS_S;
> +	vcpu->arch.save_msr_tm &= ~(MSR_FP | MSR_VEC | MSR_VSX);

This looks odd, since you are clearing bits when you have just set
save_msr_tm to a constant value that doesn't have these bits set.
This could be taken as a sign that the previous line has a bug and you
meant "|=" or something similar instead of "=".  I think you probably
did mean "=", in which case you should remove the line clearing
FP/VEC/VSX.

Paul.


More information about the Linuxppc-dev mailing list