diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 32d52f2f4f4c..c66b1fc448a6 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -168,6 +168,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpufreq_transition); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_gic_v3_set_affinity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_gh_before_vcpu_run); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_gh_after_vcpu_run); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_gh_vm_release); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_gh_vcpu_release); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_finish); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_select_special_worklist); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd); diff --git a/drivers/virt/gunyah/gunyah_vcpu.c b/drivers/virt/gunyah/gunyah_vcpu.c index e6591e9b897c..ea9adb3a99c3 100644 --- a/drivers/virt/gunyah/gunyah_vcpu.c +++ b/drivers/virt/gunyah/gunyah_vcpu.c @@ -368,6 +368,7 @@ static int gunyah_vcpu_release(struct inode *inode, struct file *filp) { struct gunyah_vcpu *vcpu = filp->private_data; + trace_android_rvh_gh_vcpu_release(vcpu->ghvm->vmid, vcpu); gunyah_vm_put(vcpu->ghvm); kref_put(&vcpu->kref, vcpu_release); return 0; diff --git a/drivers/virt/gunyah/vm_mgr.c b/drivers/virt/gunyah/vm_mgr.c index c5c2f589a720..5079bf425acb 100644 --- a/drivers/virt/gunyah/vm_mgr.c +++ b/drivers/virt/gunyah/vm_mgr.c @@ -13,6 +13,7 @@ #include #include +#include #include "rsc_mgr.h" #include "vm_mgr.h" @@ -1190,6 +1191,7 @@ static int gunyah_vm_release(struct inode *inode, struct file *filp) { struct gunyah_vm *ghvm = filp->private_data; + trace_android_rvh_gh_vm_release(ghvm->vmid, ghvm); gunyah_vm_put(ghvm); return 0; } diff --git a/include/trace/hooks/gunyah.h b/include/trace/hooks/gunyah.h index 695fec27c93f..5f926941a19d 100644 --- a/include/trace/hooks/gunyah.h +++ b/include/trace/hooks/gunyah.h @@ -6,6 +6,8 @@ #define _TRACE_HOOK_GUNYAH_H #include struct gunyah_hypercall_vcpu_run_resp; +struct gunyah_vcpu; +struct gunyah_vm; DECLARE_RESTRICTED_HOOK(android_rvh_gh_before_vcpu_run, TP_PROTO(u16 vmid, u32 vcpu_id), @@ -14,6 +16,12 @@ DECLARE_RESTRICTED_HOOK(android_rvh_gh_after_vcpu_run, TP_PROTO(u16 vmid, u32 vcpu_id, int hcall_ret, const struct gunyah_hypercall_vcpu_run_resp *resp), TP_ARGS(vmid, vcpu_id, hcall_ret, resp), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_gh_vm_release, + TP_PROTO(u16 vmid, struct gunyah_vm *ghvm), + TP_ARGS(vmid, ghvm), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_gh_vcpu_release, + TP_PROTO(u16 vmid, struct gunyah_vcpu *vcpu), + TP_ARGS(vmid, vcpu), 1); #endif /* _TRACE_HOOK_GUNYAH_H */ /* This part must be outside protection */