cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

thermal.h (5370B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#undef TRACE_SYSTEM
      3#define TRACE_SYSTEM thermal
      4
      5#if !defined(_TRACE_THERMAL_H) || defined(TRACE_HEADER_MULTI_READ)
      6#define _TRACE_THERMAL_H
      7
      8#include <linux/devfreq.h>
      9#include <linux/thermal.h>
     10#include <linux/tracepoint.h>
     11
     12TRACE_DEFINE_ENUM(THERMAL_TRIP_CRITICAL);
     13TRACE_DEFINE_ENUM(THERMAL_TRIP_HOT);
     14TRACE_DEFINE_ENUM(THERMAL_TRIP_PASSIVE);
     15TRACE_DEFINE_ENUM(THERMAL_TRIP_ACTIVE);
     16
     17#define show_tzt_type(type)					\
     18	__print_symbolic(type,					\
     19			 { THERMAL_TRIP_CRITICAL, "CRITICAL"},	\
     20			 { THERMAL_TRIP_HOT,      "HOT"},	\
     21			 { THERMAL_TRIP_PASSIVE,  "PASSIVE"},	\
     22			 { THERMAL_TRIP_ACTIVE,   "ACTIVE"})
     23
     24TRACE_EVENT(thermal_temperature,
     25
     26	TP_PROTO(struct thermal_zone_device *tz),
     27
     28	TP_ARGS(tz),
     29
     30	TP_STRUCT__entry(
     31		__string(thermal_zone, tz->type)
     32		__field(int, id)
     33		__field(int, temp_prev)
     34		__field(int, temp)
     35	),
     36
     37	TP_fast_assign(
     38		__assign_str(thermal_zone, tz->type);
     39		__entry->id = tz->id;
     40		__entry->temp_prev = tz->last_temperature;
     41		__entry->temp = tz->temperature;
     42	),
     43
     44	TP_printk("thermal_zone=%s id=%d temp_prev=%d temp=%d",
     45		__get_str(thermal_zone), __entry->id, __entry->temp_prev,
     46		__entry->temp)
     47);
     48
     49TRACE_EVENT(cdev_update,
     50
     51	TP_PROTO(struct thermal_cooling_device *cdev, unsigned long target),
     52
     53	TP_ARGS(cdev, target),
     54
     55	TP_STRUCT__entry(
     56		__string(type, cdev->type)
     57		__field(unsigned long, target)
     58	),
     59
     60	TP_fast_assign(
     61		__assign_str(type, cdev->type);
     62		__entry->target = target;
     63	),
     64
     65	TP_printk("type=%s target=%lu", __get_str(type), __entry->target)
     66);
     67
     68TRACE_EVENT(thermal_zone_trip,
     69
     70	TP_PROTO(struct thermal_zone_device *tz, int trip,
     71		enum thermal_trip_type trip_type),
     72
     73	TP_ARGS(tz, trip, trip_type),
     74
     75	TP_STRUCT__entry(
     76		__string(thermal_zone, tz->type)
     77		__field(int, id)
     78		__field(int, trip)
     79		__field(enum thermal_trip_type, trip_type)
     80	),
     81
     82	TP_fast_assign(
     83		__assign_str(thermal_zone, tz->type);
     84		__entry->id = tz->id;
     85		__entry->trip = trip;
     86		__entry->trip_type = trip_type;
     87	),
     88
     89	TP_printk("thermal_zone=%s id=%d trip=%d trip_type=%s",
     90		__get_str(thermal_zone), __entry->id, __entry->trip,
     91		show_tzt_type(__entry->trip_type))
     92);
     93
     94#ifdef CONFIG_CPU_THERMAL
     95TRACE_EVENT(thermal_power_cpu_get_power,
     96	TP_PROTO(const struct cpumask *cpus, unsigned long freq, u32 *load,
     97		size_t load_len, u32 dynamic_power),
     98
     99	TP_ARGS(cpus, freq, load, load_len, dynamic_power),
    100
    101	TP_STRUCT__entry(
    102		__bitmask(cpumask, num_possible_cpus())
    103		__field(unsigned long, freq          )
    104		__dynamic_array(u32,   load, load_len)
    105		__field(size_t,        load_len      )
    106		__field(u32,           dynamic_power )
    107	),
    108
    109	TP_fast_assign(
    110		__assign_bitmask(cpumask, cpumask_bits(cpus),
    111				num_possible_cpus());
    112		__entry->freq = freq;
    113		memcpy(__get_dynamic_array(load), load,
    114			load_len * sizeof(*load));
    115		__entry->load_len = load_len;
    116		__entry->dynamic_power = dynamic_power;
    117	),
    118
    119	TP_printk("cpus=%s freq=%lu load={%s} dynamic_power=%d",
    120		__get_bitmask(cpumask), __entry->freq,
    121		__print_array(__get_dynamic_array(load), __entry->load_len, 4),
    122		__entry->dynamic_power)
    123);
    124
    125TRACE_EVENT(thermal_power_cpu_limit,
    126	TP_PROTO(const struct cpumask *cpus, unsigned int freq,
    127		unsigned long cdev_state, u32 power),
    128
    129	TP_ARGS(cpus, freq, cdev_state, power),
    130
    131	TP_STRUCT__entry(
    132		__bitmask(cpumask, num_possible_cpus())
    133		__field(unsigned int,  freq      )
    134		__field(unsigned long, cdev_state)
    135		__field(u32,           power     )
    136	),
    137
    138	TP_fast_assign(
    139		__assign_bitmask(cpumask, cpumask_bits(cpus),
    140				num_possible_cpus());
    141		__entry->freq = freq;
    142		__entry->cdev_state = cdev_state;
    143		__entry->power = power;
    144	),
    145
    146	TP_printk("cpus=%s freq=%u cdev_state=%lu power=%u",
    147		__get_bitmask(cpumask), __entry->freq, __entry->cdev_state,
    148		__entry->power)
    149);
    150#endif /* CONFIG_CPU_THERMAL */
    151
    152#ifdef CONFIG_DEVFREQ_THERMAL
    153TRACE_EVENT(thermal_power_devfreq_get_power,
    154	TP_PROTO(struct thermal_cooling_device *cdev,
    155		 struct devfreq_dev_status *status, unsigned long freq,
    156		u32 power),
    157
    158	TP_ARGS(cdev, status,  freq, power),
    159
    160	TP_STRUCT__entry(
    161		__string(type,         cdev->type    )
    162		__field(unsigned long, freq          )
    163		__field(u32,           busy_time)
    164		__field(u32,           total_time)
    165		__field(u32,           power)
    166	),
    167
    168	TP_fast_assign(
    169		__assign_str(type, cdev->type);
    170		__entry->freq = freq;
    171		__entry->busy_time = status->busy_time;
    172		__entry->total_time = status->total_time;
    173		__entry->power = power;
    174	),
    175
    176	TP_printk("type=%s freq=%lu load=%u power=%u",
    177		__get_str(type), __entry->freq,
    178		__entry->total_time == 0 ? 0 :
    179			(100 * __entry->busy_time) / __entry->total_time,
    180		__entry->power)
    181);
    182
    183TRACE_EVENT(thermal_power_devfreq_limit,
    184	TP_PROTO(struct thermal_cooling_device *cdev, unsigned long freq,
    185		unsigned long cdev_state, u32 power),
    186
    187	TP_ARGS(cdev, freq, cdev_state, power),
    188
    189	TP_STRUCT__entry(
    190		__string(type,         cdev->type)
    191		__field(unsigned int,  freq      )
    192		__field(unsigned long, cdev_state)
    193		__field(u32,           power     )
    194	),
    195
    196	TP_fast_assign(
    197		__assign_str(type, cdev->type);
    198		__entry->freq = freq;
    199		__entry->cdev_state = cdev_state;
    200		__entry->power = power;
    201	),
    202
    203	TP_printk("type=%s freq=%u cdev_state=%lu power=%u",
    204		__get_str(type), __entry->freq, __entry->cdev_state,
    205		__entry->power)
    206);
    207#endif /* CONFIG_DEVFREQ_THERMAL */
    208#endif /* _TRACE_THERMAL_H */
    209
    210/* This part must be outside protection */
    211#include <trace/define_trace.h>