[PATCH] KVM: arm64: Re-allow hyp tracing HVCs for [nh]VHE

Marc Zyngier maz at kernel.org
Tue Apr 14 07:52:29 PDT 2026


On Tue, 14 Apr 2026 11:02:31 +0100,
Vincent Donnefort <vdonnefort at google.com> wrote:
> 
> The introduction of __KVM_HOST_SMCCC_FUNC_MAX_NO_PKVM excluded hyp
> tracing HVCs from the common [nh]VHE/pKVM list. Re-allow them.
> 
> Signed-off-by: Vincent Donnefort <vdonnefort at google.com>
> 
> diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h
> index 37414440cee7..11dcdf434971 100644
> --- a/arch/arm64/include/asm/kvm_asm.h
> +++ b/arch/arm64/include/asm/kvm_asm.h
> @@ -72,6 +72,14 @@ enum __kvm_host_smccc_func {
>  	__KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_range,
>  	__KVM_HOST_SMCCC_FUNC___kvm_flush_cpu_context,
>  	__KVM_HOST_SMCCC_FUNC___kvm_timer_set_cntvoff,
> +	__KVM_HOST_SMCCC_FUNC___tracing_load,
> +	__KVM_HOST_SMCCC_FUNC___tracing_unload,
> +	__KVM_HOST_SMCCC_FUNC___tracing_enable,
> +	__KVM_HOST_SMCCC_FUNC___tracing_swap_reader,
> +	__KVM_HOST_SMCCC_FUNC___tracing_update_clock,
> +	__KVM_HOST_SMCCC_FUNC___tracing_reset,
> +	__KVM_HOST_SMCCC_FUNC___tracing_enable_event,
> +	__KVM_HOST_SMCCC_FUNC___tracing_write_event,
>  	__KVM_HOST_SMCCC_FUNC___vgic_v3_save_aprs,
>  	__KVM_HOST_SMCCC_FUNC___vgic_v3_restore_vmcr_aprs,
>  	__KVM_HOST_SMCCC_FUNC___vgic_v5_save_apr,
> @@ -100,14 +108,6 @@ enum __kvm_host_smccc_func {
>  	__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_load,
>  	__KVM_HOST_SMCCC_FUNC___pkvm_vcpu_put,
>  	__KVM_HOST_SMCCC_FUNC___pkvm_tlb_flush_vmid,
> -	__KVM_HOST_SMCCC_FUNC___tracing_load,
> -	__KVM_HOST_SMCCC_FUNC___tracing_unload,
> -	__KVM_HOST_SMCCC_FUNC___tracing_enable,
> -	__KVM_HOST_SMCCC_FUNC___tracing_swap_reader,
> -	__KVM_HOST_SMCCC_FUNC___tracing_update_clock,
> -	__KVM_HOST_SMCCC_FUNC___tracing_reset,
> -	__KVM_HOST_SMCCC_FUNC___tracing_enable_event,
> -	__KVM_HOST_SMCCC_FUNC___tracing_write_event,
>  };
>  
>  #define DECLARE_KVM_VHE_SYM(sym)	extern char sym[]
> diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
> index 73f2e0221e70..8f7582d57ab5 100644
> --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c
> +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c
> @@ -709,6 +709,14 @@ static const hcall_t host_hcall[] = {
>  	HANDLE_FUNC(__kvm_tlb_flush_vmid_range),
>  	HANDLE_FUNC(__kvm_flush_cpu_context),
>  	HANDLE_FUNC(__kvm_timer_set_cntvoff),
> +	HANDLE_FUNC(__tracing_load),
> +	HANDLE_FUNC(__tracing_unload),
> +	HANDLE_FUNC(__tracing_enable),
> +	HANDLE_FUNC(__tracing_swap_reader),
> +	HANDLE_FUNC(__tracing_update_clock),
> +	HANDLE_FUNC(__tracing_reset),
> +	HANDLE_FUNC(__tracing_enable_event),
> +	HANDLE_FUNC(__tracing_write_event),
>  	HANDLE_FUNC(__vgic_v3_save_aprs),
>  	HANDLE_FUNC(__vgic_v3_restore_vmcr_aprs),
>  	HANDLE_FUNC(__vgic_v5_save_apr),
> @@ -735,14 +743,6 @@ static const hcall_t host_hcall[] = {
>  	HANDLE_FUNC(__pkvm_vcpu_load),
>  	HANDLE_FUNC(__pkvm_vcpu_put),
>  	HANDLE_FUNC(__pkvm_tlb_flush_vmid),
> -	HANDLE_FUNC(__tracing_load),
> -	HANDLE_FUNC(__tracing_unload),
> -	HANDLE_FUNC(__tracing_enable),
> -	HANDLE_FUNC(__tracing_swap_reader),
> -	HANDLE_FUNC(__tracing_update_clock),
> -	HANDLE_FUNC(__tracing_reset),
> -	HANDLE_FUNC(__tracing_enable_event),
> -	HANDLE_FUNC(__tracing_write_event),
>  };

Why isn't it sufficient to reorder the enum?

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list