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