Ian,

On 01.11.2021 16:20, Juergen Gross wrote:
> The HVM hypercall handler is missing incrementing the per hypercall
> counters. Add that.
> 
> The counters for PV are handled wrong, as they are not using
> perf_incra() with the number of the hypercall as index, but are
> incrementing the first hypercall entry (set_trap_table) for each
> hypercall. Fix that.
> 
> Signed-off-by: Juergen Gross <jgr...@suse.com>
> Reviewed-by: Jan Beulich <jbeul...@suse.com>

this looks to be independent of all earlier patches in this series,
and I'd like to suggest to at least consider taking this as a low-
risk bug fix for 4.16. Thoughts?

Jan

> ---
>  xen/arch/x86/hvm/hypercall.c | 2 ++
>  xen/arch/x86/pv/hypercall.c  | 2 +-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
> index 6d8d6693dc..1bac5d4d44 100644
> --- a/xen/arch/x86/hvm/hypercall.c
> +++ b/xen/arch/x86/hvm/hypercall.c
> @@ -210,6 +210,8 @@ int hvm_hypercall(struct cpu_user_regs *regs)
>          ioreq_signal_mapcache_invalidate();
>      }
>  
> +    perfc_incra(hypercalls, eax);
> +
>      return curr->hcall_preempted ? HVM_HCALL_preempted : HVM_HCALL_completed;
>  }
>  
> diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
> index ef92266620..bf64bb41bb 100644
> --- a/xen/arch/x86/pv/hypercall.c
> +++ b/xen/arch/x86/pv/hypercall.c
> @@ -102,7 +102,7 @@ _pv_hypercall(struct cpu_user_regs *regs, bool compat)
>      if ( curr->hcall_preempted )
>          regs->rip -= 2;
>  
> -    perfc_incr(hypercalls);
> +    perfc_incra(hypercalls, eax);
>  }
>  
>  enum mc_disposition pv_do_multicall_call(struct mc_state *state)
> 


Reply via email to