blob: 647505957d4f22d6d510fd186486dc3453af35f1 [file] [log] [blame]
Huang Rui60e10f82021-12-24 09:05:03 +08001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * amd-pstate-trace.h - AMD Processor P-state Frequency Driver Tracer
4 *
5 * Copyright (C) 2021 Advanced Micro Devices, Inc. All Rights Reserved.
6 *
7 * Author: Huang Rui <ray.huang@amd.com>
8 */
9
10#if !defined(_AMD_PSTATE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
11#define _AMD_PSTATE_TRACE_H
12
13#include <linux/cpufreq.h>
14#include <linux/tracepoint.h>
15#include <linux/trace_events.h>
16
17#undef TRACE_SYSTEM
18#define TRACE_SYSTEM amd_cpu
19
20#undef TRACE_INCLUDE_FILE
21#define TRACE_INCLUDE_FILE amd-pstate-trace
22
23#define TPS(x) tracepoint_string(x)
24
25TRACE_EVENT(amd_pstate_perf,
26
27 TP_PROTO(unsigned long min_perf,
28 unsigned long target_perf,
29 unsigned long capacity,
30 unsigned int cpu_id,
31 bool changed,
32 bool fast_switch
33 ),
34
35 TP_ARGS(min_perf,
36 target_perf,
37 capacity,
38 cpu_id,
39 changed,
40 fast_switch
41 ),
42
43 TP_STRUCT__entry(
44 __field(unsigned long, min_perf)
45 __field(unsigned long, target_perf)
46 __field(unsigned long, capacity)
47 __field(unsigned int, cpu_id)
48 __field(bool, changed)
49 __field(bool, fast_switch)
50 ),
51
52 TP_fast_assign(
53 __entry->min_perf = min_perf;
54 __entry->target_perf = target_perf;
55 __entry->capacity = capacity;
56 __entry->cpu_id = cpu_id;
57 __entry->changed = changed;
58 __entry->fast_switch = fast_switch;
59 ),
60
61 TP_printk("amd_min_perf=%lu amd_des_perf=%lu amd_max_perf=%lu cpu_id=%u changed=%s fast_switch=%s",
62 (unsigned long)__entry->min_perf,
63 (unsigned long)__entry->target_perf,
64 (unsigned long)__entry->capacity,
65 (unsigned int)__entry->cpu_id,
66 (__entry->changed) ? "true" : "false",
67 (__entry->fast_switch) ? "true" : "false"
68 )
69);
70
71#endif /* _AMD_PSTATE_TRACE_H */
72
73/* This part must be outside protection */
74#undef TRACE_INCLUDE_PATH
75#define TRACE_INCLUDE_PATH .
76
77#include <trace/define_trace.h>