Lines Matching +full:key +full:- +full:power

1 // SPDX-License-Identifier: GPL-2.0
33 * interval for the previous state: Duration(Idx) = Ts` - Ts.
38 * +--------------------------+
40 * +--------------------------+
42 * +--------------------------+
44 * +--------------------------+
46 * +--------------------------+
56 __type(key, u32);
64 __type(key, u32);
72 __type(key, u32);
79 * /sys/kernel/tracing/events/power/cpu_idle/format
80 * /sys/kernel/tracing/events/power/cpu_frequency/format
103 SEC("tracepoint/power/cpu_idle")
107 u32 key, cpu, pstate_idx; in bpf_prog1() local
110 if (ctx->cpu_id > MAX_CPU) in bpf_prog1()
113 cpu = ctx->cpu_id; in bpf_prog1()
115 key = cpu * MAP_OFF_NUM + MAP_OFF_CSTATE_TIME; in bpf_prog1()
116 cts = bpf_map_lookup_elem(&my_map, &key); in bpf_prog1()
120 key = cpu * MAP_OFF_NUM + MAP_OFF_CSTATE_IDX; in bpf_prog1()
121 cstate = bpf_map_lookup_elem(&my_map, &key); in bpf_prog1()
125 key = cpu * MAP_OFF_NUM + MAP_OFF_PSTATE_TIME; in bpf_prog1()
126 pts = bpf_map_lookup_elem(&my_map, &key); in bpf_prog1()
130 key = cpu * MAP_OFF_NUM + MAP_OFF_PSTATE_IDX; in bpf_prog1()
131 pstate = bpf_map_lookup_elem(&my_map, &key); in bpf_prog1()
136 *cstate = ctx->state; in bpf_prog1()
144 delta = cur_ts - *cts; in bpf_prog1()
148 * When state doesn't equal to (u32)-1, the cpu will enter in bpf_prog1()
153 * +---------------------+ in bpf_prog1()
155 * ---------+ | in bpf_prog1()
157 * +--------------- in bpf_prog1()
159 * |<- pstate duration ->| in bpf_prog1()
163 if (ctx->state != (u32)-1) { in bpf_prog1()
169 delta = cur_ts - *pts; in bpf_prog1()
175 key = cpu * MAX_PSTATE_ENTRIES + pstate_idx; in bpf_prog1()
176 val = bpf_map_lookup_elem(&pstate_duration, &key); in bpf_prog1()
181 * When state equal to (u32)-1, the cpu just exits from one in bpf_prog1()
186 * -----------+ in bpf_prog1()
188 * | +----------- in bpf_prog1()
190 * +---------------------+ in bpf_prog1()
192 * |<- cstate duration ->| in bpf_prog1()
198 key = cpu * MAX_CSTATE_ENTRIES + prev_state; in bpf_prog1()
199 val = bpf_map_lookup_elem(&cstate_duration, &key); in bpf_prog1()
211 SEC("tracepoint/power/cpu_frequency")
215 u32 key, cpu, pstate_idx; in bpf_prog2() local
218 cpu = ctx->cpu_id; in bpf_prog2()
220 key = cpu * MAP_OFF_NUM + MAP_OFF_PSTATE_TIME; in bpf_prog2()
221 pts = bpf_map_lookup_elem(&my_map, &key); in bpf_prog2()
225 key = cpu * MAP_OFF_NUM + MAP_OFF_PSTATE_IDX; in bpf_prog2()
226 pstate = bpf_map_lookup_elem(&my_map, &key); in bpf_prog2()
230 key = cpu * MAP_OFF_NUM + MAP_OFF_CSTATE_IDX; in bpf_prog2()
231 cstate = bpf_map_lookup_elem(&my_map, &key); in bpf_prog2()
235 *pstate = ctx->state; in bpf_prog2()
243 delta = cur_ts - *pts; in bpf_prog2()
247 if (*cstate != (u32)(-1)) in bpf_prog2()
257 * +---------------------+ in bpf_prog2()
259 * ---------+ | in bpf_prog2()
261 * +--------------- in bpf_prog2()
263 * |<- pstate duration ->| in bpf_prog2()
271 key = cpu * MAX_PSTATE_ENTRIES + pstate_idx; in bpf_prog2()
272 val = bpf_map_lookup_elem(&pstate_duration, &key); in bpf_prog2()