Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afb9b0a6 authored by Arun Bharadwaj's avatar Arun Bharadwaj Committed by Ruchi Kandoi
Browse files

tracing/sched: Add trace events to track cpu hotplug.



Add ftrace event trace_sched_cpu_hotplug to track cpu
hot-add and hot-remove events.

This is useful in a variety of power, performance and
debug analysis scenarios.

Change-Id: I5d202c7a229ffacc3aafb7cf9afee0b0ee7b0931
Signed-off-by: default avatarArun Bharadwaj <abharadw@codeaurora.org>
parent db1dc42c
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -179,6 +179,31 @@ TRACE_EVENT(sched_migrate_task,
		  __entry->orig_cpu, __entry->dest_cpu)
);

/*
 * Tracepoint for a CPU going offline/online:
 */
TRACE_EVENT(sched_cpu_hotplug,

	TP_PROTO(int affected_cpu, int error, int status),

	TP_ARGS(affected_cpu, error, status),

	TP_STRUCT__entry(
		__field(	int,	affected_cpu		)
		__field(	int,	error			)
		__field(	int,	status			)
	),

	TP_fast_assign(
		__entry->affected_cpu	= affected_cpu;
		__entry->error		= error;
		__entry->status		= status;
	),

	TP_printk("cpu %d %s error=%d", __entry->affected_cpu,
		__entry->status ? "online" : "offline", __entry->error)
);

DECLARE_EVENT_CLASS(sched_process_template,

	TP_PROTO(struct task_struct *p),
+4 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@
#include <linux/lockdep.h>
#include <trace/events/power.h>

#include <trace/events/sched.h>

#include "smpboot.h"

#ifdef CONFIG_SMP
@@ -424,6 +426,7 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)

out_release:
	cpu_hotplug_done();
	trace_sched_cpu_hotplug(cpu, err, 0);
	if (!err)
		cpu_notify_nofail(CPU_POST_DEAD | mod, hcpu);
	return err;
@@ -499,6 +502,7 @@ out_notify:
		__cpu_notify(CPU_UP_CANCELED | mod, hcpu, nr_calls, NULL);
out:
	cpu_hotplug_done();
	trace_sched_cpu_hotplug(cpu, ret, 1);

	return ret;
}