Skip to content

Commit 792c3dc

Browse files
lukaszluba-armrafaeljw
authored andcommitted
thermal: gov_power_allocator: Change trace functions
Change trace event trace_thermal_power_allocator() to not use dynamic array for requested power and granted power for all power actors. Instead, simplify the trace event and print other simple values. Add new trace event to print power actor information of requested power and granted power. That trace event would be called in a loop for each power actor. The trace data would be easier to parse comparing to the dynamic array implementation. Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 3d82731 commit 792c3dc

File tree

2 files changed

+32
-23
lines changed

2 files changed

+32
-23
lines changed

drivers/thermal/gov_power_allocator.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,11 +469,12 @@ static int allocate_power(struct thermal_zone_device *tz, int control_temp)
469469
granted_power[i]);
470470
total_granted_power += granted_power[i];
471471

472+
trace_thermal_power_actor(tz, i, req_power[i],
473+
granted_power[i]);
472474
i++;
473475
}
474476

475-
trace_thermal_power_allocator(tz, req_power, total_req_power,
476-
granted_power, total_granted_power,
477+
trace_thermal_power_allocator(tz, total_req_power, total_granted_power,
477478
num_actors, power_range,
478479
max_allocatable_power, tz->temperature,
479480
control_temp - tz->temperature);

drivers/thermal/thermal_trace_ipa.h

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,14 @@
88
#include <linux/tracepoint.h>
99

1010
TRACE_EVENT(thermal_power_allocator,
11-
TP_PROTO(struct thermal_zone_device *tz, u32 *req_power,
12-
u32 total_req_power, u32 *granted_power,
13-
u32 total_granted_power, size_t num_actors,
14-
u32 power_range, u32 max_allocatable_power,
15-
int current_temp, s32 delta_temp),
16-
TP_ARGS(tz, req_power, total_req_power, granted_power,
17-
total_granted_power, num_actors, power_range,
18-
max_allocatable_power, current_temp, delta_temp),
11+
TP_PROTO(struct thermal_zone_device *tz, u32 total_req_power,
12+
u32 total_granted_power, int num_actors, u32 power_range,
13+
u32 max_allocatable_power, int current_temp, s32 delta_temp),
14+
TP_ARGS(tz, total_req_power, total_granted_power, num_actors,
15+
power_range, max_allocatable_power, current_temp, delta_temp),
1916
TP_STRUCT__entry(
2017
__field(int, tz_id )
21-
__dynamic_array(u32, req_power, num_actors )
2218
__field(u32, total_req_power )
23-
__dynamic_array(u32, granted_power, num_actors)
2419
__field(u32, total_granted_power )
2520
__field(size_t, num_actors )
2621
__field(u32, power_range )
@@ -30,11 +25,7 @@ TRACE_EVENT(thermal_power_allocator,
3025
),
3126
TP_fast_assign(
3227
__entry->tz_id = tz->id;
33-
memcpy(__get_dynamic_array(req_power), req_power,
34-
num_actors * sizeof(*req_power));
3528
__entry->total_req_power = total_req_power;
36-
memcpy(__get_dynamic_array(granted_power), granted_power,
37-
num_actors * sizeof(*granted_power));
3829
__entry->total_granted_power = total_granted_power;
3930
__entry->num_actors = num_actors;
4031
__entry->power_range = power_range;
@@ -43,18 +34,35 @@ TRACE_EVENT(thermal_power_allocator,
4334
__entry->delta_temp = delta_temp;
4435
),
4536

46-
TP_printk("thermal_zone_id=%d req_power={%s} total_req_power=%u granted_power={%s} total_granted_power=%u power_range=%u max_allocatable_power=%u current_temperature=%d delta_temperature=%d",
47-
__entry->tz_id,
48-
__print_array(__get_dynamic_array(req_power),
49-
__entry->num_actors, 4),
50-
__entry->total_req_power,
51-
__print_array(__get_dynamic_array(granted_power),
52-
__entry->num_actors, 4),
37+
TP_printk("thermal_zone_id=%d total_req_power=%u total_granted_power=%u power_range=%u max_allocatable_power=%u current_temperature=%d delta_temperature=%d",
38+
__entry->tz_id, __entry->total_req_power,
5339
__entry->total_granted_power, __entry->power_range,
5440
__entry->max_allocatable_power, __entry->current_temp,
5541
__entry->delta_temp)
5642
);
5743

44+
TRACE_EVENT(thermal_power_actor,
45+
TP_PROTO(struct thermal_zone_device *tz, int actor_id, u32 req_power,
46+
u32 granted_power),
47+
TP_ARGS(tz, actor_id, req_power, granted_power),
48+
TP_STRUCT__entry(
49+
__field(int, tz_id)
50+
__field(int, actor_id)
51+
__field(u32, req_power)
52+
__field(u32, granted_power)
53+
),
54+
TP_fast_assign(
55+
__entry->tz_id = tz->id;
56+
__entry->actor_id = actor_id;
57+
__entry->req_power = req_power;
58+
__entry->granted_power = granted_power;
59+
),
60+
61+
TP_printk("thermal_zone_id=%d actor_id=%d req_power=%u granted_power=%u",
62+
__entry->tz_id, __entry->actor_id, __entry->req_power,
63+
__entry->granted_power)
64+
);
65+
5866
TRACE_EVENT(thermal_power_allocator_pid,
5967
TP_PROTO(struct thermal_zone_device *tz, s32 err, s32 err_integral,
6068
s64 p, s64 i, s64 d, s32 output),

0 commit comments

Comments
 (0)