98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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>
 |