root/include/trace/events/thermal.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  12 TRACE_DEFINE_ENUM(THERMAL_TRIP_CRITICAL);
  13 TRACE_DEFINE_ENUM(THERMAL_TRIP_HOT);
  14 TRACE_DEFINE_ENUM(THERMAL_TRIP_PASSIVE);
  15 TRACE_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 
  24 TRACE_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 
  49 TRACE_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 
  68 TRACE_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
  95 TRACE_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 
 125 TRACE_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
 153 TRACE_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 dynamic_power, u32 static_power, u32 power),
 157 
 158         TP_ARGS(cdev, status,  freq, dynamic_power, static_power, power),
 159 
 160         TP_STRUCT__entry(
 161                 __string(type,         cdev->type    )
 162                 __field(unsigned long, freq          )
 163                 __field(u32,           load          )
 164                 __field(u32,           dynamic_power )
 165                 __field(u32,           static_power  )
 166                 __field(u32,           power)
 167         ),
 168 
 169         TP_fast_assign(
 170                 __assign_str(type, cdev->type);
 171                 __entry->freq = freq;
 172                 __entry->load = (100 * status->busy_time) / status->total_time;
 173                 __entry->dynamic_power = dynamic_power;
 174                 __entry->static_power = static_power;
 175                 __entry->power = power;
 176         ),
 177 
 178         TP_printk("type=%s freq=%lu load=%u dynamic_power=%u static_power=%u power=%u",
 179                 __get_str(type), __entry->freq,
 180                 __entry->load, __entry->dynamic_power, __entry->static_power,
 181                 __entry->power)
 182 );
 183 
 184 TRACE_EVENT(thermal_power_devfreq_limit,
 185         TP_PROTO(struct thermal_cooling_device *cdev, unsigned long freq,
 186                 unsigned long cdev_state, u32 power),
 187 
 188         TP_ARGS(cdev, freq, cdev_state, power),
 189 
 190         TP_STRUCT__entry(
 191                 __string(type,         cdev->type)
 192                 __field(unsigned int,  freq      )
 193                 __field(unsigned long, cdev_state)
 194                 __field(u32,           power     )
 195         ),
 196 
 197         TP_fast_assign(
 198                 __assign_str(type, cdev->type);
 199                 __entry->freq = freq;
 200                 __entry->cdev_state = cdev_state;
 201                 __entry->power = power;
 202         ),
 203 
 204         TP_printk("type=%s freq=%u cdev_state=%lu power=%u",
 205                 __get_str(type), __entry->freq, __entry->cdev_state,
 206                 __entry->power)
 207 );
 208 #endif /* CONFIG_DEVFREQ_THERMAL */
 209 #endif /* _TRACE_THERMAL_H */
 210 
 211 /* This part must be outside protection */
 212 #include <trace/define_trace.h>

/* [<][>][^][v][top][bottom][index][help] */