[PATCH v4 09/14] RISC-V: KVM: Make PMU functionality depend on Sscofpmf

Andrew Jones ajones at ventanamicro.com
Thu Feb 2 09:30:40 PST 2023


On Wed, Feb 01, 2023 at 03:12:45PM -0800, Atish Patra wrote:
> The privilege mode filtering feature must be available in the host so
> that the host can inhibit the counters while the execution is in HS mode.
> Otherwise, the guests may have access to critical guest information.
> 
> Reviewed-by: Anup Patel <anup at brainfault.org>
> Signed-off-by: Atish Patra <atishp at rivosinc.com>
> ---
>  arch/riscv/kvm/vcpu_pmu.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c
> index 2dad37f..9a531fe 100644
> --- a/arch/riscv/kvm/vcpu_pmu.c
> +++ b/arch/riscv/kvm/vcpu_pmu.c
> @@ -79,6 +79,14 @@ void kvm_riscv_vcpu_pmu_init(struct kvm_vcpu *vcpu)
>  	struct kvm_pmu *kvpmu = vcpu_to_pmu(vcpu);
>  	struct kvm_pmc *pmc;
>  
> +	/*
> +	 * PMU functionality should be only available to guests if privilege mode
> +	 * filtering is available in the host. Otherwise, guest will always count
> +	 * events while the execution is in hypervisor mode.
> +	 */
> +	if (!riscv_isa_extension_available(NULL, SSCOFPMF))
> +		return;
> +
>  	ret = riscv_pmu_get_hpm_info(&hpm_width, &num_hw_ctrs);
>  	if (ret < 0 || !hpm_width || !num_hw_ctrs)
>  		return;
> -- 
> 2.25.1
>

Reviewed-by: Andrew Jones <ajones at ventanamicro.com>



More information about the kvm-riscv mailing list