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: Arun Bharadwaj <abharadw@codeaurora.org>
This commit is contained in:
parent
99dd30a309
commit
a2b15c0b53
2 changed files with 29 additions and 0 deletions
|
@ -191,6 +191,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),
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
#include <linux/irq.h>
|
||||
#include <trace/events/power.h>
|
||||
|
||||
#include <trace/events/sched.h>
|
||||
|
||||
#include "smpboot.h"
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
@ -425,6 +427,7 @@ static int _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;
|
||||
|
@ -530,6 +533,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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue