mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 12:41:55 +00:00
b09bbe5b12
When tracing switching, an external tracer needs a way to bootstrap its knowledge of the logical<->physical CPU mapping. This patch adds a sysfs attribute trace_trigger. A write to this attribute will generate a power:cpu_migrate_current event for each online CPU, indicating the current physical CPU for each logical CPU. Activating or deactivating the switcher also generates these events, so that the tracer knows about the resulting remapping of affected CPUs. Signed-off-by: Dave Martin <dave.martin@linaro.org>
68 lines
1.5 KiB
C
68 lines
1.5 KiB
C
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM power
|
|
|
|
#if !defined(_TRACE_POWER_CPU_MIGRATE_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_POWER_CPU_MIGRATE_H
|
|
|
|
#include <linux/tracepoint.h>
|
|
|
|
#define __cpu_migrate_proto \
|
|
TP_PROTO(u64 timestamp, \
|
|
u32 cpu_hwid)
|
|
#define __cpu_migrate_args \
|
|
TP_ARGS(timestamp, \
|
|
cpu_hwid)
|
|
|
|
DECLARE_EVENT_CLASS(cpu_migrate,
|
|
|
|
__cpu_migrate_proto,
|
|
__cpu_migrate_args,
|
|
|
|
TP_STRUCT__entry(
|
|
__field(u64, timestamp )
|
|
__field(u32, cpu_hwid )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->timestamp = timestamp;
|
|
__entry->cpu_hwid = cpu_hwid;
|
|
),
|
|
|
|
TP_printk("timestamp=%llu cpu_hwid=0x%08lX",
|
|
(unsigned long long)__entry->timestamp,
|
|
(unsigned long)__entry->cpu_hwid
|
|
)
|
|
);
|
|
|
|
#define __define_cpu_migrate_event(name) \
|
|
DEFINE_EVENT(cpu_migrate, cpu_migrate_##name, \
|
|
__cpu_migrate_proto, \
|
|
__cpu_migrate_args \
|
|
)
|
|
|
|
__define_cpu_migrate_event(begin);
|
|
__define_cpu_migrate_event(finish);
|
|
__define_cpu_migrate_event(current);
|
|
|
|
#undef __define_cpu_migrate
|
|
#undef __cpu_migrate_proto
|
|
#undef __cpu_migrate_args
|
|
|
|
/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
|
|
#ifndef _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
|
|
#define _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
|
|
|
|
/*
|
|
* Set from_phys_cpu and to_phys_cpu to CPU_MIGRATE_ALL_CPUS to indicate
|
|
* a whole-cluster migration:
|
|
*/
|
|
#define CPU_MIGRATE_ALL_CPUS 0x80000000U
|
|
#endif
|
|
|
|
#endif /* _TRACE_POWER_CPU_MIGRATE_H */
|
|
|
|
/* This part must be outside protection */
|
|
#undef TRACE_INCLUDE_FILE
|
|
#define TRACE_INCLUDE_FILE power_cpu_migrate
|
|
#include <trace/define_trace.h>
|