Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM percpu
0004 
0005 #if !defined(_TRACE_PERCPU_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_PERCPU_H
0007 
0008 #include <linux/tracepoint.h>
0009 #include <trace/events/mmflags.h>
0010 
0011 TRACE_EVENT(percpu_alloc_percpu,
0012 
0013     TP_PROTO(unsigned long call_site,
0014          bool reserved, bool is_atomic, size_t size,
0015          size_t align, void *base_addr, int off,
0016          void __percpu *ptr, size_t bytes_alloc, gfp_t gfp_flags),
0017 
0018     TP_ARGS(call_site, reserved, is_atomic, size, align, base_addr, off,
0019         ptr, bytes_alloc, gfp_flags),
0020 
0021     TP_STRUCT__entry(
0022         __field(    unsigned long,      call_site   )
0023         __field(    bool,           reserved    )
0024         __field(    bool,           is_atomic   )
0025         __field(    size_t,         size        )
0026         __field(    size_t,         align       )
0027         __field(    void *,         base_addr   )
0028         __field(    int,            off     )
0029         __field(    void __percpu *,    ptr     )
0030         __field(    size_t,         bytes_alloc )
0031         __field(    unsigned long,      gfp_flags   )
0032     ),
0033     TP_fast_assign(
0034         __entry->call_site  = call_site;
0035         __entry->reserved   = reserved;
0036         __entry->is_atomic  = is_atomic;
0037         __entry->size       = size;
0038         __entry->align      = align;
0039         __entry->base_addr  = base_addr;
0040         __entry->off        = off;
0041         __entry->ptr        = ptr;
0042         __entry->bytes_alloc    = bytes_alloc;
0043         __entry->gfp_flags  = (__force unsigned long)gfp_flags;
0044     ),
0045 
0046     TP_printk("call_site=%pS reserved=%d is_atomic=%d size=%zu align=%zu base_addr=%p off=%d ptr=%p bytes_alloc=%zu gfp_flags=%s",
0047           (void *)__entry->call_site,
0048           __entry->reserved, __entry->is_atomic,
0049           __entry->size, __entry->align,
0050           __entry->base_addr, __entry->off, __entry->ptr,
0051           __entry->bytes_alloc, show_gfp_flags(__entry->gfp_flags))
0052 );
0053 
0054 TRACE_EVENT(percpu_free_percpu,
0055 
0056     TP_PROTO(void *base_addr, int off, void __percpu *ptr),
0057 
0058     TP_ARGS(base_addr, off, ptr),
0059 
0060     TP_STRUCT__entry(
0061         __field(    void *,         base_addr   )
0062         __field(    int,            off     )
0063         __field(    void __percpu *,    ptr     )
0064     ),
0065 
0066     TP_fast_assign(
0067         __entry->base_addr  = base_addr;
0068         __entry->off        = off;
0069         __entry->ptr        = ptr;
0070     ),
0071 
0072     TP_printk("base_addr=%p off=%d ptr=%p",
0073         __entry->base_addr, __entry->off, __entry->ptr)
0074 );
0075 
0076 TRACE_EVENT(percpu_alloc_percpu_fail,
0077 
0078     TP_PROTO(bool reserved, bool is_atomic, size_t size, size_t align),
0079 
0080     TP_ARGS(reserved, is_atomic, size, align),
0081 
0082     TP_STRUCT__entry(
0083         __field(    bool,   reserved    )
0084         __field(    bool,   is_atomic   )
0085         __field(    size_t, size        )
0086         __field(    size_t, align       )
0087     ),
0088 
0089     TP_fast_assign(
0090         __entry->reserved   = reserved;
0091         __entry->is_atomic  = is_atomic;
0092         __entry->size       = size;
0093         __entry->align      = align;
0094     ),
0095 
0096     TP_printk("reserved=%d is_atomic=%d size=%zu align=%zu",
0097           __entry->reserved, __entry->is_atomic,
0098           __entry->size, __entry->align)
0099 );
0100 
0101 TRACE_EVENT(percpu_create_chunk,
0102 
0103     TP_PROTO(void *base_addr),
0104 
0105     TP_ARGS(base_addr),
0106 
0107     TP_STRUCT__entry(
0108         __field(    void *, base_addr   )
0109     ),
0110 
0111     TP_fast_assign(
0112         __entry->base_addr  = base_addr;
0113     ),
0114 
0115     TP_printk("base_addr=%p", __entry->base_addr)
0116 );
0117 
0118 TRACE_EVENT(percpu_destroy_chunk,
0119 
0120     TP_PROTO(void *base_addr),
0121 
0122     TP_ARGS(base_addr),
0123 
0124     TP_STRUCT__entry(
0125         __field(    void *, base_addr   )
0126     ),
0127 
0128     TP_fast_assign(
0129         __entry->base_addr  = base_addr;
0130     ),
0131 
0132     TP_printk("base_addr=%p", __entry->base_addr)
0133 );
0134 
0135 #endif /* _TRACE_PERCPU_H */
0136 
0137 #include <trace/define_trace.h>