| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * amd-pstate-trace.h - AMD Processor P-state Frequency Driver Tracer |
| * |
| * Copyright (C) 2021 Advanced Micro Devices, Inc. All Rights Reserved. |
| * |
| * Author: Huang Rui <ray.huang@amd.com> |
| */ |
| |
| #if !defined(_AMD_PSTATE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) |
| #define _AMD_PSTATE_TRACE_H |
| |
| #include <linux/cpufreq.h> |
| #include <linux/tracepoint.h> |
| #include <linux/trace_events.h> |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM amd_cpu |
| |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_FILE amd-pstate-trace |
| |
| #define TPS(x) tracepoint_string(x) |
| |
| TRACE_EVENT(amd_pstate_perf, |
| |
| TP_PROTO(unsigned long min_perf, |
| unsigned long target_perf, |
| unsigned long capacity, |
| u64 freq, |
| u64 mperf, |
| u64 aperf, |
| u64 tsc, |
| unsigned int cpu_id, |
| bool changed, |
| bool fast_switch |
| ), |
| |
| TP_ARGS(min_perf, |
| target_perf, |
| capacity, |
| freq, |
| mperf, |
| aperf, |
| tsc, |
| cpu_id, |
| changed, |
| fast_switch |
| ), |
| |
| TP_STRUCT__entry( |
| __field(unsigned long, min_perf) |
| __field(unsigned long, target_perf) |
| __field(unsigned long, capacity) |
| __field(unsigned long long, freq) |
| __field(unsigned long long, mperf) |
| __field(unsigned long long, aperf) |
| __field(unsigned long long, tsc) |
| __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->freq = freq; |
| __entry->mperf = mperf; |
| __entry->aperf = aperf; |
| __entry->tsc = tsc; |
| __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 freq=%llu mperf=%llu aperf=%llu tsc=%llu cpu_id=%u changed=%s fast_switch=%s", |
| (unsigned long)__entry->min_perf, |
| (unsigned long)__entry->target_perf, |
| (unsigned long)__entry->capacity, |
| (unsigned long long)__entry->freq, |
| (unsigned long long)__entry->mperf, |
| (unsigned long long)__entry->aperf, |
| (unsigned long long)__entry->tsc, |
| (unsigned int)__entry->cpu_id, |
| (__entry->changed) ? "true" : "false", |
| (__entry->fast_switch) ? "true" : "false" |
| ) |
| ); |
| |
| #endif /* _AMD_PSTATE_TRACE_H */ |
| |
| /* This part must be outside protection */ |
| #undef TRACE_INCLUDE_PATH |
| #define TRACE_INCLUDE_PATH . |
| |
| #include <trace/define_trace.h> |