コード例 #1
0
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;
}
コード例 #2
0
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;
}