Re: [PATCH 1/2] KVM: PPC: booke: save/restore VRSAVE (a.k.a. USPRG0)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19.04.2011, at 00:31, Scott Wood wrote:

> Linux doesn't use USPRG0 (now renamed VRSAVE in the architecture, even
> when Altivec isn't involved), but a guest might.
> 
> Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
> ---
> Sent to the right list this time... <sigh>
> 
> arch/powerpc/include/asm/kvm_host.h |    1 +
> arch/powerpc/kernel/asm-offsets.c   |    1 +
> arch/powerpc/kvm/booke_interrupts.S |    5 ++++-
> 3 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
> index bfb0e0f..34b8732 100644
> --- a/arch/powerpc/include/asm/kvm_host.h
> +++ b/arch/powerpc/include/asm/kvm_host.h
> @@ -228,6 +228,7 @@ struct kvm_vcpu_arch {
> 	ulong hflags;
> 	ulong guest_owned_ext;
> #endif
> +	u32 vrsave; /* also USPRG0 */
> 	u32 mmucr;
> 	ulong shadow_msr;
> 	ulong sprg4;
> diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
> index 2b223de..7b9e35e 100644
> --- a/arch/powerpc/kernel/asm-offsets.c
> +++ b/arch/powerpc/kernel/asm-offsets.c
> @@ -395,6 +395,7 @@ int main(void)
> 	DEFINE(VCPU_HOST_STACK, offsetof(struct kvm_vcpu, arch.host_stack));
> 	DEFINE(VCPU_HOST_PID, offsetof(struct kvm_vcpu, arch.host_pid));
> 	DEFINE(VCPU_GPRS, offsetof(struct kvm_vcpu, arch.gpr));
> +	DEFINE(VCPU_VRSAVE, offsetof(struct kvm_vcpu, arch.vrsave));
> 	DEFINE(VCPU_SPRG4, offsetof(struct kvm_vcpu, arch.sprg4));
> 	DEFINE(VCPU_SPRG5, offsetof(struct kvm_vcpu, arch.sprg5));
> 	DEFINE(VCPU_SPRG6, offsetof(struct kvm_vcpu, arch.sprg6));
> diff --git a/arch/powerpc/kvm/booke_interrupts.S b/arch/powerpc/kvm/booke_interrupts.S
> index 54c19d2..cde29c4 100644
> --- a/arch/powerpc/kvm/booke_interrupts.S
> +++ b/arch/powerpc/kvm/booke_interrupts.S
> @@ -184,6 +184,8 @@ _GLOBAL(kvmppc_resume_host)
> 	stw	r3, VCPU_GPR(r4)(r4)
> 	mfspr	r3, SPRN_SRR0
> 	stw	r3, VCPU_PC(r4)
> +	mfspr	r3, SPRN_VRSAVE
> +	stw	r3, VCPU_VRSAVE(r4)

Do we need to swap this on every exit or is vcpu_load/put enough?

Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux