1*4882a593Smuzhiyun #undef TRACE_SYSTEM 2*4882a593Smuzhiyun #define TRACE_SYSTEM cpufreq_interactive 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #if !defined(_TRACE_CPUFREQ_INTERACTIVE_H) || defined(TRACE_HEADER_MULTI_READ) 5*4882a593Smuzhiyun #define _TRACE_CPUFREQ_INTERACTIVE_H 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #include <linux/tracepoint.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun DECLARE_EVENT_CLASS(set, 10*4882a593Smuzhiyun TP_PROTO(u32 cpu_id, unsigned long targfreq, 11*4882a593Smuzhiyun unsigned long actualfreq), 12*4882a593Smuzhiyun TP_ARGS(cpu_id, targfreq, actualfreq), 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun TP_STRUCT__entry( 15*4882a593Smuzhiyun __field(u32, cpu_id) 16*4882a593Smuzhiyun __field(unsigned long, targfreq) 17*4882a593Smuzhiyun __field(unsigned long, actualfreq) 18*4882a593Smuzhiyun ), 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun TP_fast_assign( 21*4882a593Smuzhiyun __entry->cpu_id = (u32)cpu_id; 22*4882a593Smuzhiyun __entry->targfreq = targfreq; 23*4882a593Smuzhiyun __entry->actualfreq = actualfreq; 24*4882a593Smuzhiyun ), 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun TP_printk("cpu=%u targ=%lu actual=%lu", 27*4882a593Smuzhiyun __entry->cpu_id, __entry->targfreq, 28*4882a593Smuzhiyun __entry->actualfreq) 29*4882a593Smuzhiyun ); 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun DEFINE_EVENT(set, cpufreq_interactive_setspeed, 32*4882a593Smuzhiyun TP_PROTO(u32 cpu_id, unsigned long targfreq, 33*4882a593Smuzhiyun unsigned long actualfreq), 34*4882a593Smuzhiyun TP_ARGS(cpu_id, targfreq, actualfreq) 35*4882a593Smuzhiyun ); 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun DECLARE_EVENT_CLASS(loadeval, 38*4882a593Smuzhiyun TP_PROTO(unsigned long cpu_id, unsigned long load, 39*4882a593Smuzhiyun unsigned long curtarg, unsigned long curactual, 40*4882a593Smuzhiyun unsigned long newtarg), 41*4882a593Smuzhiyun TP_ARGS(cpu_id, load, curtarg, curactual, newtarg), 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun TP_STRUCT__entry( 44*4882a593Smuzhiyun __field(unsigned long, cpu_id) 45*4882a593Smuzhiyun __field(unsigned long, load) 46*4882a593Smuzhiyun __field(unsigned long, curtarg) 47*4882a593Smuzhiyun __field(unsigned long, curactual) 48*4882a593Smuzhiyun __field(unsigned long, newtarg) 49*4882a593Smuzhiyun ), 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun TP_fast_assign( 52*4882a593Smuzhiyun __entry->cpu_id = cpu_id; 53*4882a593Smuzhiyun __entry->load = load; 54*4882a593Smuzhiyun __entry->curtarg = curtarg; 55*4882a593Smuzhiyun __entry->curactual = curactual; 56*4882a593Smuzhiyun __entry->newtarg = newtarg; 57*4882a593Smuzhiyun ), 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun TP_printk("cpu=%lu load=%lu cur=%lu actual=%lu targ=%lu", 60*4882a593Smuzhiyun __entry->cpu_id, __entry->load, __entry->curtarg, 61*4882a593Smuzhiyun __entry->curactual, __entry->newtarg) 62*4882a593Smuzhiyun ); 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun DEFINE_EVENT(loadeval, cpufreq_interactive_target, 65*4882a593Smuzhiyun TP_PROTO(unsigned long cpu_id, unsigned long load, 66*4882a593Smuzhiyun unsigned long curtarg, unsigned long curactual, 67*4882a593Smuzhiyun unsigned long newtarg), 68*4882a593Smuzhiyun TP_ARGS(cpu_id, load, curtarg, curactual, newtarg) 69*4882a593Smuzhiyun ); 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun DEFINE_EVENT(loadeval, cpufreq_interactive_already, 72*4882a593Smuzhiyun TP_PROTO(unsigned long cpu_id, unsigned long load, 73*4882a593Smuzhiyun unsigned long curtarg, unsigned long curactual, 74*4882a593Smuzhiyun unsigned long newtarg), 75*4882a593Smuzhiyun TP_ARGS(cpu_id, load, curtarg, curactual, newtarg) 76*4882a593Smuzhiyun ); 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun DEFINE_EVENT(loadeval, cpufreq_interactive_notyet, 79*4882a593Smuzhiyun TP_PROTO(unsigned long cpu_id, unsigned long load, 80*4882a593Smuzhiyun unsigned long curtarg, unsigned long curactual, 81*4882a593Smuzhiyun unsigned long newtarg), 82*4882a593Smuzhiyun TP_ARGS(cpu_id, load, curtarg, curactual, newtarg) 83*4882a593Smuzhiyun ); 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun TRACE_EVENT(cpufreq_interactive_boost, 86*4882a593Smuzhiyun TP_PROTO(const char *s), 87*4882a593Smuzhiyun TP_ARGS(s), 88*4882a593Smuzhiyun TP_STRUCT__entry( 89*4882a593Smuzhiyun __string(s, s) 90*4882a593Smuzhiyun ), 91*4882a593Smuzhiyun TP_fast_assign( 92*4882a593Smuzhiyun __assign_str(s, s); 93*4882a593Smuzhiyun ), 94*4882a593Smuzhiyun TP_printk("%s", __get_str(s)) 95*4882a593Smuzhiyun ); 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun TRACE_EVENT(cpufreq_interactive_unboost, 98*4882a593Smuzhiyun TP_PROTO(const char *s), 99*4882a593Smuzhiyun TP_ARGS(s), 100*4882a593Smuzhiyun TP_STRUCT__entry( 101*4882a593Smuzhiyun __string(s, s) 102*4882a593Smuzhiyun ), 103*4882a593Smuzhiyun TP_fast_assign( 104*4882a593Smuzhiyun __assign_str(s, s); 105*4882a593Smuzhiyun ), 106*4882a593Smuzhiyun TP_printk("%s", __get_str(s)) 107*4882a593Smuzhiyun ); 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun #endif /* _TRACE_CPUFREQ_INTERACTIVE_H */ 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun /* This part must be outside protection */ 112*4882a593Smuzhiyun #include <trace/define_trace.h> 113