FILE
rv_trace.h
File preview with syntax highlighting.
linux-6.19.14/kernel/trace/rv/rv_trace.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2#undef TRACE_SYSTEM 3#define TRACE_SYSTEM rv 4 5#if !defined(_TRACE_RV_H) || defined(TRACE_HEADER_MULTI_READ) 6#define _TRACE_RV_H 7 8#include <linux/rv.h> 9#include <linux/tracepoint.h> 10 11#ifdef CONFIG_DA_MON_EVENTS_IMPLICIT 12DECLARE_EVENT_CLASS(event_da_monitor, 13 14 TP_PROTO(char *state, char *event, char *next_state, bool final_state), 15 16 TP_ARGS(state, event, next_state, final_state), 17 18 TP_STRUCT__entry( 19 __string( state, state ) 20 __string( event, event ) 21 __string( next_state, next_state ) 22 __field( bool, final_state ) 23 ), 24 25 TP_fast_assign( 26 __assign_str(state); 27 __assign_str(event); 28 __assign_str(next_state); 29 __entry->final_state = final_state; 30 ), 31 32 TP_printk("%s x %s -> %s%s", 33 __get_str(state), 34 __get_str(event), 35 __get_str(next_state), 36 __entry->final_state ? " (final)" : "") 37); 38 39DECLARE_EVENT_CLASS(error_da_monitor, 40 41 TP_PROTO(char *state, char *event), 42 43 TP_ARGS(state, event), 44 45 TP_STRUCT__entry( 46 __string( state, state ) 47 __string( event, event ) 48 ), 49 50 TP_fast_assign( 51 __assign_str(state); 52 __assign_str(event); 53 ), 54 55 TP_printk("event %s not expected in the state %s", 56 __get_str(event), 57 __get_str(state)) 58); 59 60#include <monitors/wip/wip_trace.h> 61#include <monitors/sco/sco_trace.h> 62#include <monitors/scpd/scpd_trace.h> 63#include <monitors/snep/snep_trace.h> 64#include <monitors/sts/sts_trace.h> 65#include <monitors/opid/opid_trace.h> 66// Add new monitors based on CONFIG_DA_MON_EVENTS_IMPLICIT here 67 68#endif /* CONFIG_DA_MON_EVENTS_IMPLICIT */ 69 70#ifdef CONFIG_DA_MON_EVENTS_ID 71DECLARE_EVENT_CLASS(event_da_monitor_id, 72 73 TP_PROTO(int id, char *state, char *event, char *next_state, bool final_state), 74 75 TP_ARGS(id, state, event, next_state, final_state), 76 77 TP_STRUCT__entry( 78 __field( int, id ) 79 __string( state, state ) 80 __string( event, event ) 81 __string( next_state, next_state ) 82 __field( bool, final_state ) 83 ), 84 85 TP_fast_assign( 86 __assign_str(state); 87 __assign_str(event); 88 __assign_str(next_state); 89 __entry->id = id; 90 __entry->final_state = final_state; 91 ), 92 93 TP_printk("%d: %s x %s -> %s%s", 94 __entry->id, 95 __get_str(state), 96 __get_str(event), 97 __get_str(next_state), 98 __entry->final_state ? " (final)" : "") 99); 100 101DECLARE_EVENT_CLASS(error_da_monitor_id, 102 103 TP_PROTO(int id, char *state, char *event), 104 105 TP_ARGS(id, state, event), 106 107 TP_STRUCT__entry( 108 __field( int, id ) 109 __string( state, state ) 110 __string( event, event ) 111 ), 112 113 TP_fast_assign( 114 __assign_str(state); 115 __assign_str(event); 116 __entry->id = id; 117 ), 118 119 TP_printk("%d: event %s not expected in the state %s", 120 __entry->id, 121 __get_str(event), 122 __get_str(state)) 123); 124 125#include <monitors/wwnr/wwnr_trace.h> 126#include <monitors/snroc/snroc_trace.h> 127#include <monitors/nrp/nrp_trace.h> 128#include <monitors/sssw/sssw_trace.h> 129// Add new monitors based on CONFIG_DA_MON_EVENTS_ID here 130 131#endif /* CONFIG_DA_MON_EVENTS_ID */ 132#ifdef CONFIG_LTL_MON_EVENTS_ID 133DECLARE_EVENT_CLASS(event_ltl_monitor_id, 134 135 TP_PROTO(struct task_struct *task, char *states, char *atoms, char *next), 136 137 TP_ARGS(task, states, atoms, next), 138 139 TP_STRUCT__entry( 140 __string(comm, task->comm) 141 __field(pid_t, pid) 142 __string(states, states) 143 __string(atoms, atoms) 144 __string(next, next) 145 ), 146 147 TP_fast_assign( 148 __assign_str(comm); 149 __entry->pid = task->pid; 150 __assign_str(states); 151 __assign_str(atoms); 152 __assign_str(next); 153 ), 154 155 TP_printk("%s[%d]: (%s) x (%s) -> (%s)", __get_str(comm), __entry->pid, 156 __get_str(states), __get_str(atoms), __get_str(next)) 157); 158 159DECLARE_EVENT_CLASS(error_ltl_monitor_id, 160 161 TP_PROTO(struct task_struct *task), 162 163 TP_ARGS(task), 164 165 TP_STRUCT__entry( 166 __string(comm, task->comm) 167 __field(pid_t, pid) 168 ), 169 170 TP_fast_assign( 171 __assign_str(comm); 172 __entry->pid = task->pid; 173 ), 174 175 TP_printk("%s[%d]: violation detected", __get_str(comm), __entry->pid) 176); 177#include <monitors/pagefault/pagefault_trace.h> 178#include <monitors/sleep/sleep_trace.h> 179// Add new monitors based on CONFIG_LTL_MON_EVENTS_ID here 180#endif /* CONFIG_LTL_MON_EVENTS_ID */ 181 182#ifdef CONFIG_RV_MON_MAINTENANCE_EVENTS 183/* Tracepoint useful for monitors development, currenly only used in DA */ 184TRACE_EVENT(rv_retries_error, 185 186 TP_PROTO(char *name, char *event), 187 188 TP_ARGS(name, event), 189 190 TP_STRUCT__entry( 191 __string( name, name ) 192 __string( event, event ) 193 ), 194 195 TP_fast_assign( 196 __assign_str(name); 197 __assign_str(event); 198 ), 199 200 TP_printk(__stringify(MAX_DA_RETRY_RACING_EVENTS) 201 " retries reached for event %s, resetting monitor %s", 202 __get_str(event), __get_str(name)) 203); 204#endif /* CONFIG_RV_MON_MAINTENANCE_EVENTS */ 205#endif /* _TRACE_RV_H */ 206 207/* This part must be outside protection */ 208#undef TRACE_INCLUDE_PATH 209#define TRACE_INCLUDE_PATH . 210#undef TRACE_INCLUDE_FILE 211#define TRACE_INCLUDE_FILE rv_trace 212#include <trace/define_trace.h>
~/
Read-only file preview.