[RFC PATCH 12/43] KVM: PPC: Book3S HV P9: Factor out yield_count increment
Fabiano Rosas
farosas at linux.ibm.com
Fri Jul 9 03:56:45 AEST 2021
Nicholas Piggin <npiggin at gmail.com> writes:
> Factor duplicated code into a helper function.
>
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
Reviewed-by: Fabiano Rosas <farosas at linux.ibm.com>
> ---
> arch/powerpc/kvm/book3s_hv.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
> index b1b94b3563b7..38d8afa16839 100644
> --- a/arch/powerpc/kvm/book3s_hv.c
> +++ b/arch/powerpc/kvm/book3s_hv.c
> @@ -3896,6 +3896,16 @@ static inline bool hcall_is_xics(unsigned long req)
> req == H_IPOLL || req == H_XIRR || req == H_XIRR_X;
> }
>
> +static void vcpu_vpa_increment_dispatch(struct kvm_vcpu *vcpu)
> +{
> + struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
> + if (lp) {
> + u32 yield_count = be32_to_cpu(lp->yield_count) + 1;
> + lp->yield_count = cpu_to_be32(yield_count);
> + vcpu->arch.vpa.dirty = 1;
> + }
> +}
> +
> /*
> * Guest entry for POWER9 and later CPUs.
> */
> @@ -3926,12 +3936,7 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,
> vc->entry_exit_map = 1;
> vc->in_guest = 1;
>
> - if (vcpu->arch.vpa.pinned_addr) {
> - struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
> - u32 yield_count = be32_to_cpu(lp->yield_count) + 1;
> - lp->yield_count = cpu_to_be32(yield_count);
> - vcpu->arch.vpa.dirty = 1;
> - }
> + vcpu_vpa_increment_dispatch(vcpu);
>
> if (cpu_has_feature(CPU_FTR_TM) ||
> cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
> @@ -4069,12 +4074,7 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,
> cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
> kvmppc_save_tm_hv(vcpu, vcpu->arch.shregs.msr, true);
>
> - if (vcpu->arch.vpa.pinned_addr) {
> - struct lppaca *lp = vcpu->arch.vpa.pinned_addr;
> - u32 yield_count = be32_to_cpu(lp->yield_count) + 1;
> - lp->yield_count = cpu_to_be32(yield_count);
> - vcpu->arch.vpa.dirty = 1;
> - }
> + vcpu_vpa_increment_dispatch(vcpu);
>
> save_p9_guest_pmu(vcpu);
> #ifdef CONFIG_PPC_PSERIES
More information about the Linuxppc-dev
mailing list