diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index a8d50ed2271b..53f0c9ce6f78 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -122,3 +122,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_look_around_migrate_folio); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_test_clear_look_around_ref); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sea); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_capacity_show); diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index a323aac2ce1a..0ed46eedba61 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -220,8 +220,10 @@ static ssize_t cpu_capacity_show(struct device *dev, char *buf) { struct cpu *cpu = container_of(dev, struct cpu, dev); + unsigned long capacity = topology_get_cpu_scale(cpu->dev.id); - return sysfs_emit(buf, "%lu\n", topology_get_cpu_scale(cpu->dev.id)); + trace_android_rvh_cpu_capacity_show(&capacity, cpu->dev.id); + return sysfs_emit(buf, "%lu\n", capacity); } static void update_topology_flags_workfn(struct work_struct *work); diff --git a/include/trace/hooks/topology.h b/include/trace/hooks/topology.h index 44a1d8edcf58..1344242a02e7 100644 --- a/include/trace/hooks/topology.h +++ b/include/trace/hooks/topology.h @@ -16,6 +16,10 @@ DECLARE_HOOK(android_vh_arch_set_freq_scale, unsigned long *scale), TP_ARGS(cpus, freq, max, scale)); +DECLARE_RESTRICTED_HOOK(android_rvh_cpu_capacity_show, + TP_PROTO(unsigned long *capacity, int cpu), + TP_ARGS(capacity, cpu), 1); + #endif /* _TRACE_HOOK_TOPOLOGY_H */ /* This part must be outside protection */ #include