static int __init wakeup_latency_init(void) { int ret; struct wakeup_tracker *wakeup_priv; wakeup_priv = wakeup_alloc_priv(); if (!wakeup_priv) { ret = -ENOMEM; goto end; } tracker = latency_tracker_create(NULL, NULL, 200, 1000, 100000000, 0, wakeup_priv); if (!tracker) goto error; ret = lttng_wrapper_tracepoint_probe_register("sched_wakeup", probe_sched_wakeup, NULL); WARN_ON(ret); ret = lttng_wrapper_tracepoint_probe_register("sched_switch", probe_sched_switch, NULL); WARN_ON(ret); ret = wakeup_setup_priv(wakeup_priv); goto end; error: ret = -1; end: return ret; }
static int __init wakeup_latency_init(void) { int ret; struct wakeup_tracker *wakeup_priv; wakeup_priv = wakeup_alloc_priv(); if (!wakeup_priv) { ret = -ENOMEM; goto end; } tracker = latency_tracker_create("wakeup"); if (!tracker) goto error; latency_tracker_set_priv(tracker, wakeup_priv); latency_tracker_set_callback(tracker, wakeup_cb); latency_tracker_set_key_size(tracker, MAX_KEY_SIZE); ret = lttng_wrapper_tracepoint_probe_register("sched_waking", probe_sched_waking, NULL); WARN_ON(ret); ret = lttng_wrapper_tracepoint_probe_register("sched_switch", probe_sched_switch, NULL); WARN_ON(ret); ret = wakeup_setup_priv(wakeup_priv); goto end; error: wakeup_destroy_priv(wakeup_priv); ret = -1; end: return ret; }