Lines Matching full:timer

12 	struct bpf_timer timer;  member
72 static int timer_cb1(void *map, int *key, struct bpf_timer *timer) in timer_cb1() argument
75 * Once via array timer callback and once via lru timer callback in timer_cb1()
79 /* *key == 0 - the callback was called for array timer. in timer_cb1()
80 * *key == 4 - the callback was called from lru timer. in timer_cb1()
86 /* rearm array timer to be called again in ~35 seconds */ in timer_cb1()
87 if (bpf_timer_start(timer, 1ull << 35, 0) != 0) in timer_cb1()
112 * element and force deletion of this timer in timer_cb1()
119 * which means that key/timer memory was reused in timer_cb1()
125 /* check that the timer was removed */ in timer_cb1()
126 if (bpf_timer_cancel(timer) != -EINVAL) in timer_cb1()
156 * doesn't leak timer memory. in BPF_PROG2()
174 /* re-arm the timer again to execute after 1 usec */ in timer_cb2()
175 bpf_timer_start(&val->timer, 1000, 0); in timer_cb2()
193 if (bpf_timer_cancel(&val->timer) != -EDEADLK) in timer_cb2()
196 /* delete this key and this timer anyway. in timer_cb2()
206 if (bpf_timer_start(&val->timer, 1000, 0) != -EINVAL) in timer_cb2()
214 if (bpf_timer_cancel(&val->timer) != -EDEADLK) in timer_cb2()
217 /* delete this key and this timer anyway. in timer_cb2()
234 if (bpf_timer_init(&val->timer, &hmap, CLOCK_BOOTTIME) != 0) in bpf_timer_test()
236 bpf_timer_set_callback(&val->timer, timer_cb2); in bpf_timer_test()
237 bpf_timer_start(&val->timer, 1000, 0); in bpf_timer_test()
241 if (bpf_timer_init(&val->timer, &hmap_malloc, CLOCK_BOOTTIME) != 0) in bpf_timer_test()
243 bpf_timer_set_callback(&val->timer, timer_cb2); in bpf_timer_test()
244 bpf_timer_start(&val->timer, 1000, 0); in bpf_timer_test()
259 bpf_timer_init(&val->timer, &hmap, CLOCK_BOOTTIME); in BPF_PROG2()
260 /* update the same key to free the timer */ in BPF_PROG2()
266 bpf_timer_init(&val->timer, &hmap_malloc, CLOCK_BOOTTIME); in BPF_PROG2()
267 /* update the same key to free the timer */ in BPF_PROG2()
271 * don't leak timer memory. in BPF_PROG2()
277 bpf_timer_init(&val->timer, &hmap, CLOCK_BOOTTIME); in BPF_PROG2()
282 bpf_timer_init(&val->timer, &hmap, CLOCK_BOOTTIME); in BPF_PROG2()
289 bpf_timer_init(&val->timer, &hmap_malloc, CLOCK_BOOTTIME); in BPF_PROG2()
294 bpf_timer_init(&val->timer, &hmap_malloc, CLOCK_BOOTTIME); in BPF_PROG2()
299 /* callback for absolute timer */
300 static int timer_cb3(void *map, int *key, struct bpf_timer *timer) in timer_cb3() argument
305 bpf_timer_start(timer, bpf_ktime_get_boot_ns() + 1000, in timer_cb3()
308 /* Re-arm timer ~35 seconds in future */ in timer_cb3()
309 bpf_timer_start(timer, bpf_ktime_get_boot_ns() + (1ull << 35), in timer_cb3()
320 struct bpf_timer *timer; in BPF_PROG2() local
324 timer = bpf_map_lookup_elem(&abs_timer, &key); in BPF_PROG2()
325 if (timer) { in BPF_PROG2()
326 if (bpf_timer_init(timer, &abs_timer, CLOCK_BOOTTIME) != 0) in BPF_PROG2()
328 bpf_timer_set_callback(timer, timer_cb3); in BPF_PROG2()
329 bpf_timer_start(timer, bpf_ktime_get_boot_ns() + 1000, in BPF_PROG2()
336 /* callback for pinned timer */
337 static int timer_cb_pinned(void *map, int *key, struct bpf_timer *timer) in timer_cb_pinned() argument
352 struct bpf_timer *timer; in test_pinned_timer() local
365 timer = bpf_map_lookup_elem(map, &key); in test_pinned_timer()
366 if (timer) { in test_pinned_timer()
367 if (bpf_timer_init(timer, map, CLOCK_BOOTTIME) != 0) in test_pinned_timer()
369 bpf_timer_set_callback(timer, timer_cb_pinned); in test_pinned_timer()
371 bpf_timer_start(timer, start_time + 1000, flags); in test_pinned_timer()
395 static int race_timer_callback(void *race_array, int *race_key, struct bpf_timer *timer) in race_timer_callback() argument
397 bpf_timer_start(timer, 1000000, 0); in race_timer_callback()
404 struct bpf_timer *timer; in race() local
411 timer = bpf_map_lookup_elem(&race_array, &race_key); in race()
412 if (!timer) in race()
415 err = bpf_timer_init(timer, &race_array, CLOCK_MONOTONIC); in race()
419 bpf_timer_set_callback(timer, race_timer_callback); in race()
420 bpf_timer_start(timer, 0, 0); in race()
421 bpf_timer_cancel(timer); in race()