#undef TRACE_SYSTEM #define TRACE_SYSTEM lock #if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_LOCK_H #include <linux/lockdep.h> #include <linux/tracepoint.h> #ifdef CONFIG_LOCKDEP TRACE_EVENT(lock_acquire, TP_PROTO(struct lockdep_map *lock, unsigned int subclass, int trylock, int read, int check, struct lockdep_map *next_lock, unsigned long ip), TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), TP_STRUCT__entry( __field(unsigned int, flags) __string(name, lock->name) __field(void *, lockdep_addr) ), TP_fast_assign( __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0); __assign_str(name, lock->name); __entry->lockdep_addr = lock; ), TP_printk("%p %s%s%s", __entry->lockdep_addr, (__entry->flags & 1) ? "try " : "", (__entry->flags & 2) ? "read " : "", __get_str(name)) ); DECLARE_EVENT_CLASS(lock, TP_PROTO(struct lockdep_map *lock, unsigned long ip), TP_ARGS(lock, ip), TP_STRUCT__entry( __string( name, lock->name ) __field( void *, lockdep_addr ) ), TP_fast_assign( __assign_str(name, lock->name); __entry->lockdep_addr = lock; ), TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) ); DEFINE_EVENT(lock, lock_release, TP_PROTO(struct lockdep_map *lock, unsigned long ip), TP_ARGS(lock, ip) ); #ifdef CONFIG_LOCK_STAT DEFINE_EVENT(lock, lock_contended, TP_PROTO(struct lockdep_map *lock, unsigned long ip), TP_ARGS(lock, ip) ); DEFINE_EVENT(lock, lock_acquired, TP_PROTO(struct lockdep_map *lock, unsigned long ip), TP_ARGS(lock, ip) ); #endif #endif #endif /* _TRACE_LOCK_H */ /* This part must be outside protection */ #include <trace/define_trace.h> ive' href='/cgit.cgi/linux/net-next.git/log/net/kcm?h=nds-private-remove'>log</a><a href='/cgit.cgi/linux/net-next.git/tree/net/kcm?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa'>tree</a><a href='/cgit.cgi/linux/net-next.git/commit/net/kcm?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/net/kcm?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/net/kcm'> <input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='a9306a63631493afc75893a4ac405d4e1cbae6aa'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/net?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa'>net</a>/<a href='/cgit.cgi/linux/net-next.git/log/net/kcm?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa'>kcm</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/net/kcm?h=nds-private-remove&id=a9306a63631493afc75893a4ac405d4e1cbae6aa&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>