root/include/trace/events/lock.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #undef TRACE_SYSTEM
   3 #define TRACE_SYSTEM lock
   4 
   5 #if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ)
   6 #define _TRACE_LOCK_H
   7 
   8 #include <linux/lockdep.h>
   9 #include <linux/tracepoint.h>
  10 
  11 #ifdef CONFIG_LOCKDEP
  12 
  13 TRACE_EVENT(lock_acquire,
  14 
  15         TP_PROTO(struct lockdep_map *lock, unsigned int subclass,
  16                 int trylock, int read, int check,
  17                 struct lockdep_map *next_lock, unsigned long ip),
  18 
  19         TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip),
  20 
  21         TP_STRUCT__entry(
  22                 __field(unsigned int, flags)
  23                 __string(name, lock->name)
  24                 __field(void *, lockdep_addr)
  25         ),
  26 
  27         TP_fast_assign(
  28                 __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0);
  29                 __assign_str(name, lock->name);
  30                 __entry->lockdep_addr = lock;
  31         ),
  32 
  33         TP_printk("%p %s%s%s", __entry->lockdep_addr,
  34                   (__entry->flags & 1) ? "try " : "",
  35                   (__entry->flags & 2) ? "read " : "",
  36                   __get_str(name))
  37 );
  38 
  39 DECLARE_EVENT_CLASS(lock,
  40 
  41         TP_PROTO(struct lockdep_map *lock, unsigned long ip),
  42 
  43         TP_ARGS(lock, ip),
  44 
  45         TP_STRUCT__entry(
  46                 __string(       name,   lock->name      )
  47                 __field(        void *, lockdep_addr    )
  48         ),
  49 
  50         TP_fast_assign(
  51                 __assign_str(name, lock->name);
  52                 __entry->lockdep_addr = lock;
  53         ),
  54 
  55         TP_printk("%p %s",  __entry->lockdep_addr, __get_str(name))
  56 );
  57 
  58 DEFINE_EVENT(lock, lock_release,
  59 
  60         TP_PROTO(struct lockdep_map *lock, unsigned long ip),
  61 
  62         TP_ARGS(lock, ip)
  63 );
  64 
  65 #ifdef CONFIG_LOCK_STAT
  66 
  67 DEFINE_EVENT(lock, lock_contended,
  68 
  69         TP_PROTO(struct lockdep_map *lock, unsigned long ip),
  70 
  71         TP_ARGS(lock, ip)
  72 );
  73 
  74 DEFINE_EVENT(lock, lock_acquired,
  75 
  76         TP_PROTO(struct lockdep_map *lock, unsigned long ip),
  77 
  78         TP_ARGS(lock, ip)
  79 );
  80 
  81 #endif
  82 #endif
  83 
  84 #endif /* _TRACE_LOCK_H */
  85 
  86 /* This part must be outside protection */
  87 #include <trace/define_trace.h>

/* [<][>][^][v][top][bottom][index][help] */