Blame view
include/trace/perf.h
2.57 KB
b24413180 License cleanup: ... |
1 |
/* SPDX-License-Identifier: GPL-2.0 */ |
ee53bbd17 tracing: Move the... |
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#undef TRACE_SYSTEM_VAR #ifdef CONFIG_PERF_EVENTS #undef __entry #define __entry entry #undef __get_dynamic_array #define __get_dynamic_array(field) \ ((void *)__entry + (__entry->__data_loc_##field & 0xffff)) #undef __get_dynamic_array_len #define __get_dynamic_array_len(field) \ ((__entry->__data_loc_##field >> 16) & 0xffff) #undef __get_str |
934de5f2e tracing: Use oute... |
19 |
#define __get_str(field) ((char *)__get_dynamic_array(field)) |
ee53bbd17 tracing: Move the... |
20 21 22 |
#undef __get_bitmask #define __get_bitmask(field) (char *)__get_dynamic_array(field) |
ee53bbd17 tracing: Move the... |
23 24 25 26 27 28 29 30 31 32 33 |
#undef __perf_count #define __perf_count(c) (__count = (c)) #undef __perf_task #define __perf_task(t) (__task = (t)) #undef DECLARE_EVENT_CLASS #define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ static notrace void \ perf_trace_##call(void *__data, proto) \ { \ |
2425bcb92 tracing: Rename f... |
34 |
struct trace_event_call *event_call = __data; \ |
62323a148 tracing: Rename f... |
35 |
struct trace_event_data_offsets_##call __maybe_unused __data_offsets;\ |
a72377657 tracing: Rename f... |
36 |
struct trace_event_raw_##call *entry; \ |
ee53bbd17 tracing: Move the... |
37 |
struct pt_regs *__regs; \ |
e93735be6 perf: remove unus... |
38 |
u64 __count = 1; \ |
ee53bbd17 tracing: Move the... |
39 40 41 42 43 44 |
struct task_struct *__task = NULL; \ struct hlist_head *head; \ int __entry_size; \ int __data_size; \ int rctx; \ \ |
d0ee8f4a1 tracing: Rename f... |
45 |
__data_size = trace_event_get_offsets_##call(&__data_offsets, args); \ |
ee53bbd17 tracing: Move the... |
46 47 |
\ head = this_cpu_ptr(event_call->perf_events); \ |
e87c6bc38 bpf: permit multi... |
48 49 50 |
if (!bpf_prog_array_valid(event_call) && \ __builtin_constant_p(!__task) && !__task && \ hlist_empty(head)) \ |
ee53bbd17 tracing: Move the... |
51 52 53 54 55 56 |
return; \ \ __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\ sizeof(u64)); \ __entry_size -= sizeof(u32); \ \ |
1e1dcd93b perf: split perf_... |
57 |
entry = perf_trace_buf_alloc(__entry_size, &__regs, &rctx); \ |
ee53bbd17 tracing: Move the... |
58 59 60 61 62 63 64 65 66 |
if (!entry) \ return; \ \ perf_fetch_caller_regs(__regs); \ \ tstruct \ \ { assign; } \ \ |
85b67bcb7 perf, bpf: minimi... |
67 68 69 |
perf_trace_run_bpf_submit(entry, __entry_size, rctx, \ event_call, __count, __regs, \ head, __task); \ |
ee53bbd17 tracing: Move the... |
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
} /* * This part is compiled out, it is only here as a build time check * to make sure that if the tracepoint handling changes, the * perf probe will fail to compile unless it too is updated. */ #undef DEFINE_EVENT #define DEFINE_EVENT(template, call, proto, args) \ static inline void perf_test_probe_##call(void) \ { \ check_trace_callback_type_##call(perf_trace_##template); \ } #undef DEFINE_EVENT_PRINT #define DEFINE_EVENT_PRINT(template, name, proto, args, print) \ DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) #include TRACE_INCLUDE(TRACE_INCLUDE_FILE) #endif /* CONFIG_PERF_EVENTS */ |