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