145 lines
2.9 KiB
C
145 lines
2.9 KiB
C
/*
|
|
* include/trace/events/autohotplug.h
|
|
*
|
|
* Copyright (C) 2016-2020 Allwinnertech.
|
|
* East Yang <yangdong@allwinnertech.com>
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM autohotplug
|
|
|
|
#if !defined(_TRACE_AUTOHOTPLUG_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_AUTOHOTPLUG_H
|
|
#include <linux/tracepoint.h>
|
|
|
|
/*
|
|
* Tracepoint for cpu_autohotplug.
|
|
*/
|
|
TRACE_EVENT(autohotplug_operate,
|
|
|
|
TP_PROTO(int cpu, char *str),
|
|
TP_ARGS(cpu, str),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, cpu)
|
|
__array(char, str, 10)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->cpu = cpu;
|
|
strncpy(__entry->str, str, 10);
|
|
),
|
|
|
|
TP_printk("cpu%d %s success", __entry->cpu, __entry->str)
|
|
);
|
|
|
|
TRACE_EVENT(autohotplug_under,
|
|
|
|
TP_PROTO(int load_level, int count),
|
|
TP_ARGS(load_level, count),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, load_level)
|
|
__field(int, count)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->load_level = load_level;
|
|
__entry->count = count;
|
|
),
|
|
|
|
TP_printk("under load %d%% count is %d", __entry->load_level,
|
|
__entry->count)
|
|
);
|
|
|
|
TRACE_EVENT(autohotplug_stable,
|
|
|
|
TP_PROTO(int success),
|
|
TP_ARGS(success),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, success)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->success = success;
|
|
),
|
|
|
|
TP_printk("load %s stable", __entry->success == 1 ? "is" : "is not")
|
|
);
|
|
|
|
TRACE_EVENT(autohotplug_try,
|
|
|
|
TP_PROTO(char *str),
|
|
TP_ARGS(str),
|
|
|
|
TP_STRUCT__entry(
|
|
__array(char, str, 10)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
strncpy(__entry->str, str, 10);
|
|
),
|
|
|
|
TP_printk("try cpu %s", __entry->str)
|
|
);
|
|
|
|
TRACE_EVENT(autohotplug_notyet,
|
|
|
|
TP_PROTO(char *str, int cpu),
|
|
TP_ARGS(str, cpu),
|
|
|
|
TP_STRUCT__entry(
|
|
__array(char, str, 10)
|
|
__field(int, cpu)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
strncpy(__entry->str, str, 10);
|
|
__entry->cpu = cpu;
|
|
),
|
|
|
|
TP_printk("%s cpu%d impossible", __entry->str, __entry->cpu)
|
|
);
|
|
|
|
#ifdef CONFIG_CPU_AUTOHOTPLUG_ROOMAGE
|
|
TRACE_EVENT(autohotplug_roomage,
|
|
|
|
TP_PROTO(int cluster, char *str, int cur_online, int limit_online),
|
|
TP_ARGS(cluster, str, cur_online, limit_online),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, cluster)
|
|
__array(char, str, 10)
|
|
__field(int, cur_online)
|
|
__field(int, limit_online)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->cluster = cluster;
|
|
strncpy(__entry->str, str, 10);
|
|
__entry->cur_online = cur_online;
|
|
__entry->limit_online = limit_online;
|
|
),
|
|
|
|
TP_printk("cluser%d current online is %d, %s limit is %d",
|
|
__entry->cluster, __entry->cur_online,
|
|
__entry->str, __entry->limit_online)
|
|
);
|
|
#endif
|
|
|
|
#endif /* _TRACE_AUTOHOTPLUG_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|