lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 29 Oct 2021 21:02:29 +0800 From: Huang Rui <ray.huang@....com> To: "Rafael J . Wysocki" <rafael.j.wysocki@...el.com>, Viresh Kumar <viresh.kumar@...aro.org>, Shuah Khan <skhan@...uxfoundation.org>, "Borislav Petkov" <bp@...e.de>, Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...nel.org>, Giovanni Gherdovich <ggherdovich@...e.cz>, <linux-pm@...r.kernel.org> CC: Deepak Sharma <deepak.sharma@....com>, Alex Deucher <alexander.deucher@....com>, Mario Limonciello <mario.limonciello@....com>, Steven Noonan <steven@...vesoftware.com>, Nathan Fontenot <nathan.fontenot@....com>, Jinzhou Su <Jinzhou.Su@....com>, Xiaojian Du <Xiaojian.Du@....com>, <linux-kernel@...r.kernel.org>, <x86@...nel.org>, Huang Rui <ray.huang@....com> Subject: [PATCH v3 09/21] cpufreq: amd: add trace for amd-pstate module Add trace event to monitor the performance value changes which is controlled by cpu governors. Signed-off-by: Huang Rui <ray.huang@....com> --- drivers/cpufreq/amd-pstate.c | 4 ++++ include/trace/events/power.h | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index d399938d6d85..6037590e82a6 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c @@ -36,6 +36,7 @@ #include <linux/delay.h> #include <linux/uaccess.h> #include <linux/static_call.h> +#include <trace/events/power.h> #include <acpi/processor.h> #include <acpi/cppc_acpi.h> @@ -189,6 +190,9 @@ static void amd_pstate_update(struct amd_cpudata *cpudata, u32 min_perf, value &= ~REQ_MAX_PERF(~0L); value |= REQ_MAX_PERF(max_perf); + trace_amd_pstate_perf(min_perf, des_perf, max_perf, cpudata->cpu, + (value != prev), fast_switch); + if (value == prev) return; diff --git a/include/trace/events/power.h b/include/trace/events/power.h index af5018aa9517..c95c0b8d443d 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h @@ -173,6 +173,52 @@ TRACE_EVENT(cpu_frequency_limits, (unsigned long)__entry->cpu_id) ); +TRACE_EVENT(amd_pstate_perf, + + TP_PROTO(unsigned long min_perf, + unsigned long target_perf, + unsigned long capacity, + unsigned int cpu_id, + bool changed, + bool fast_switch + ), + + TP_ARGS(min_perf, + target_perf, + capacity, + cpu_id, + changed, + fast_switch + ), + + TP_STRUCT__entry( + __field(unsigned long, min_perf) + __field(unsigned long, target_perf) + __field(unsigned long, capacity) + __field(unsigned int, cpu_id) + __field(bool, changed) + __field(bool, fast_switch) + ), + + TP_fast_assign( + __entry->min_perf = min_perf; + __entry->target_perf = target_perf; + __entry->capacity = capacity; + __entry->cpu_id = cpu_id; + __entry->changed = changed; + __entry->fast_switch = fast_switch; + ), + + TP_printk("amd_min_perf=%lu amd_des_perf=%lu amd_max_perf=%lu cpu_id=%u changed=%s fast_switch=%s", + (unsigned long)__entry->min_perf, + (unsigned long)__entry->target_perf, + (unsigned long)__entry->capacity, + (unsigned int)__entry->cpu_id, + (__entry->changed) ? "true" : "false", + (__entry->fast_switch) ? "true" : "false" + ) +); + TRACE_EVENT(device_pm_callback_start, TP_PROTO(struct device *dev, const char *pm_ops, int event), -- 2.25.1
Powered by blists - more mailing lists