1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2df95e795SDennis Zhou #undef TRACE_SYSTEM 3df95e795SDennis Zhou #define TRACE_SYSTEM percpu 4df95e795SDennis Zhou 5df95e795SDennis Zhou #if !defined(_TRACE_PERCPU_H) || defined(TRACE_HEADER_MULTI_READ) 6df95e795SDennis Zhou #define _TRACE_PERCPU_H 7df95e795SDennis Zhou 8df95e795SDennis Zhou #include <linux/tracepoint.h> 9df95e795SDennis Zhou 10df95e795SDennis Zhou TRACE_EVENT(percpu_alloc_percpu, 11df95e795SDennis Zhou 12df95e795SDennis Zhou TP_PROTO(bool reserved, bool is_atomic, size_t size, 13df95e795SDennis Zhou size_t align, void *base_addr, int off, void __percpu *ptr), 14df95e795SDennis Zhou 15df95e795SDennis Zhou TP_ARGS(reserved, is_atomic, size, align, base_addr, off, ptr), 16df95e795SDennis Zhou 17df95e795SDennis Zhou TP_STRUCT__entry( 18df95e795SDennis Zhou __field( bool, reserved ) 19df95e795SDennis Zhou __field( bool, is_atomic ) 20df95e795SDennis Zhou __field( size_t, size ) 21df95e795SDennis Zhou __field( size_t, align ) 22df95e795SDennis Zhou __field( void *, base_addr ) 23df95e795SDennis Zhou __field( int, off ) 24df95e795SDennis Zhou __field( void __percpu *, ptr ) 25df95e795SDennis Zhou ), 26df95e795SDennis Zhou 27df95e795SDennis Zhou TP_fast_assign( 28df95e795SDennis Zhou __entry->reserved = reserved; 29df95e795SDennis Zhou __entry->is_atomic = is_atomic; 30df95e795SDennis Zhou __entry->size = size; 31df95e795SDennis Zhou __entry->align = align; 32df95e795SDennis Zhou __entry->base_addr = base_addr; 33df95e795SDennis Zhou __entry->off = off; 34df95e795SDennis Zhou __entry->ptr = ptr; 35df95e795SDennis Zhou ), 36df95e795SDennis Zhou 37df95e795SDennis Zhou TP_printk("reserved=%d is_atomic=%d size=%zu align=%zu base_addr=%p off=%d ptr=%p", 38df95e795SDennis Zhou __entry->reserved, __entry->is_atomic, 39df95e795SDennis Zhou __entry->size, __entry->align, 40df95e795SDennis Zhou __entry->base_addr, __entry->off, __entry->ptr) 41df95e795SDennis Zhou ); 42df95e795SDennis Zhou 43df95e795SDennis Zhou TRACE_EVENT(percpu_free_percpu, 44df95e795SDennis Zhou 45df95e795SDennis Zhou TP_PROTO(void *base_addr, int off, void __percpu *ptr), 46df95e795SDennis Zhou 47df95e795SDennis Zhou TP_ARGS(base_addr, off, ptr), 48df95e795SDennis Zhou 49df95e795SDennis Zhou TP_STRUCT__entry( 50df95e795SDennis Zhou __field( void *, base_addr ) 51df95e795SDennis Zhou __field( int, off ) 52df95e795SDennis Zhou __field( void __percpu *, ptr ) 53df95e795SDennis Zhou ), 54df95e795SDennis Zhou 55df95e795SDennis Zhou TP_fast_assign( 56df95e795SDennis Zhou __entry->base_addr = base_addr; 57df95e795SDennis Zhou __entry->off = off; 58df95e795SDennis Zhou __entry->ptr = ptr; 59df95e795SDennis Zhou ), 60df95e795SDennis Zhou 61df95e795SDennis Zhou TP_printk("base_addr=%p off=%d ptr=%p", 62df95e795SDennis Zhou __entry->base_addr, __entry->off, __entry->ptr) 63df95e795SDennis Zhou ); 64df95e795SDennis Zhou 65df95e795SDennis Zhou TRACE_EVENT(percpu_alloc_percpu_fail, 66df95e795SDennis Zhou 67df95e795SDennis Zhou TP_PROTO(bool reserved, bool is_atomic, size_t size, size_t align), 68df95e795SDennis Zhou 69df95e795SDennis Zhou TP_ARGS(reserved, is_atomic, size, align), 70df95e795SDennis Zhou 71df95e795SDennis Zhou TP_STRUCT__entry( 72df95e795SDennis Zhou __field( bool, reserved ) 73df95e795SDennis Zhou __field( bool, is_atomic ) 74df95e795SDennis Zhou __field( size_t, size ) 75df95e795SDennis Zhou __field( size_t, align ) 76df95e795SDennis Zhou ), 77df95e795SDennis Zhou 78df95e795SDennis Zhou TP_fast_assign( 79df95e795SDennis Zhou __entry->reserved = reserved; 80df95e795SDennis Zhou __entry->is_atomic = is_atomic; 81df95e795SDennis Zhou __entry->size = size; 82df95e795SDennis Zhou __entry->align = align; 83df95e795SDennis Zhou ), 84df95e795SDennis Zhou 85df95e795SDennis Zhou TP_printk("reserved=%d is_atomic=%d size=%zu align=%zu", 86df95e795SDennis Zhou __entry->reserved, __entry->is_atomic, 87df95e795SDennis Zhou __entry->size, __entry->align) 88df95e795SDennis Zhou ); 89df95e795SDennis Zhou 90df95e795SDennis Zhou TRACE_EVENT(percpu_create_chunk, 91df95e795SDennis Zhou 92df95e795SDennis Zhou TP_PROTO(void *base_addr), 93df95e795SDennis Zhou 94df95e795SDennis Zhou TP_ARGS(base_addr), 95df95e795SDennis Zhou 96df95e795SDennis Zhou TP_STRUCT__entry( 97df95e795SDennis Zhou __field( void *, base_addr ) 98df95e795SDennis Zhou ), 99df95e795SDennis Zhou 100df95e795SDennis Zhou TP_fast_assign( 101df95e795SDennis Zhou __entry->base_addr = base_addr; 102df95e795SDennis Zhou ), 103df95e795SDennis Zhou 104df95e795SDennis Zhou TP_printk("base_addr=%p", __entry->base_addr) 105df95e795SDennis Zhou ); 106df95e795SDennis Zhou 107df95e795SDennis Zhou TRACE_EVENT(percpu_destroy_chunk, 108df95e795SDennis Zhou 109df95e795SDennis Zhou TP_PROTO(void *base_addr), 110df95e795SDennis Zhou 111df95e795SDennis Zhou TP_ARGS(base_addr), 112df95e795SDennis Zhou 113df95e795SDennis Zhou TP_STRUCT__entry( 114df95e795SDennis Zhou __field( void *, base_addr ) 115df95e795SDennis Zhou ), 116df95e795SDennis Zhou 117df95e795SDennis Zhou TP_fast_assign( 118df95e795SDennis Zhou __entry->base_addr = base_addr; 119df95e795SDennis Zhou ), 120df95e795SDennis Zhou 121df95e795SDennis Zhou TP_printk("base_addr=%p", __entry->base_addr) 122df95e795SDennis Zhou ); 123df95e795SDennis Zhou 124df95e795SDennis Zhou #endif /* _TRACE_PERCPU_H */ 125df95e795SDennis Zhou 126df95e795SDennis Zhou #include <trace/define_trace.h> 127