[PATCH 02/26] KVM: PPC: Book3S PR: add new parameter (guest MSR) for kvmppc_save_tm()/kvmppc_restore_tm()
Paul Mackerras
paulus at ozlabs.org
Tue Jan 23 16:42:09 AEDT 2018
On Thu, Jan 11, 2018 at 06:11:15PM +0800, wei.guo.simon at gmail.com wrote:
> From: Simon Guo <wei.guo.simon at gmail.com>
>
> HV KVM and PR KVM need different MSR source to indicate whether
> treclaim. or trecheckpoint. is necessary.
>
> This patch add new parameter (guest MSR) for these kvmppc_save_tm/
> kvmppc_restore_tm() APIs:
> - For HV KVM, it is VCPU_MSR
> - For PR KVM, it is current host MSR or VCPU_SHADOW_SRR1
>
> This enhancement enables these 2 APIs to be reused by PR KVM later.
> And the patch keeps HV KVM logic unchanged.
>
> This patch also reworks kvmppc_save_tm()/kvmppc_restore_tm() to
> have a clean ABI: r3 for vcpu and r4 for guest_msr.
>
> Signed-off-by: Simon Guo <wei.guo.simon at gmail.com>
Question: why do you switch from using HSTATE_HOST_R1 to HSTATE_SCRATCH2
> @@ -42,11 +45,11 @@ _GLOBAL(kvmppc_save_tm)
> rldimi r8, r0, MSR_TM_LG, 63-MSR_TM_LG
> mtmsrd r8
>
> - ld r5, VCPU_MSR(r9)
> - rldicl. r5, r5, 64 - MSR_TS_S_LG, 62
> + rldicl. r4, r4, 64 - MSR_TS_S_LG, 62
> beq 1f /* TM not active in guest. */
>
> - std r1, HSTATE_HOST_R1(r13)
> + std r1, HSTATE_SCRATCH2(r13)
... here?
> @@ -166,17 +173,17 @@ _GLOBAL(kvmppc_restore_tm)
> * The user may change these outside of a transaction, so they must
> * always be context switched.
> */
> - ld r5, VCPU_TFHAR(r4)
> - ld r6, VCPU_TFIAR(r4)
> - ld r7, VCPU_TEXASR(r4)
> + ld r5, VCPU_TFHAR(r3)
> + ld r6, VCPU_TFIAR(r3)
> + ld r7, VCPU_TEXASR(r3)
> mtspr SPRN_TFHAR, r5
> mtspr SPRN_TFIAR, r6
> mtspr SPRN_TEXASR, r7
>
> - ld r5, VCPU_MSR(r4)
> + mr r5, r4
> rldicl. r5, r5, 64 - MSR_TS_S_LG, 62
> beqlr /* TM not active in guest */
> - std r1, HSTATE_HOST_R1(r13)
> + std r1, HSTATE_SCRATCH2(r13)
and here?
Please add a paragraph to the patch description explaining why you are
making that change.
Paul.
More information about the Linuxppc-dev
mailing list