From ef1f4c912013c58fd12c2a36b7d32f80d29459d0 Mon Sep 17 00:00:00 2001 From: Shaleen Agrawal Date: Wed, 17 Apr 2024 11:18:59 -0700 Subject: [PATCH] ANDROID: topology: Add restricted vendor hook for cpu_capacity_show Introduce a restricted vendor hook to allow vendor modules to update cpu_capacity shown via userspace. Bug: 335410902 Change-Id: I5a196c8cffdfb6835e75b60d983cd30541a9756e Signed-off-by: Shaleen Agrawal (cherry picked from commit 333328523be5556b7fa0bfe045da466936ff8b81) --- drivers/android/vendor_hooks.c | 1 + drivers/base/arch_topology.c | 4 +++- include/trace/hooks/topology.h | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) 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