1#undef TRACE_SYSTEM 2#define TRACE_SYSTEM sock 3 4#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) 5#define _TRACE_SOCK_H 6 7#include <net/sock.h> 8#include <linux/tracepoint.h> 9 10TRACE_EVENT(sock_rcvqueue_full, 11 12 TP_PROTO(struct sock *sk, struct sk_buff *skb), 13 14 TP_ARGS(sk, skb), 15 16 TP_STRUCT__entry( 17 __field(int, rmem_alloc) 18 __field(unsigned int, truesize) 19 __field(int, sk_rcvbuf) 20 ), 21 22 TP_fast_assign( 23 __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc); 24 __entry->truesize = skb->truesize; 25 __entry->sk_rcvbuf = sk->sk_rcvbuf; 26 ), 27 28 TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d", 29 __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf) 30); 31 32TRACE_EVENT(sock_exceed_buf_limit, 33 34 TP_PROTO(struct sock *sk, struct proto *prot, long allocated), 35 36 TP_ARGS(sk, prot, allocated), 37 38 TP_STRUCT__entry( 39 __array(char, name, 32) 40 __field(long *, sysctl_mem) 41 __field(long, allocated) 42 __field(int, sysctl_rmem) 43 __field(int, rmem_alloc) 44 ), 45 46 TP_fast_assign( 47 strncpy(__entry->name, prot->name, 32); 48 __entry->sysctl_mem = prot->sysctl_mem; 49 __entry->allocated = allocated; 50 __entry->sysctl_rmem = prot->sysctl_rmem[0]; 51 __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc); 52 ), 53 54 TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld " 55 "sysctl_rmem=%d rmem_alloc=%d", 56 __entry->name, 57 __entry->sysctl_mem[0], 58 __entry->sysctl_mem[1], 59 __entry->sysctl_mem[2], 60 __entry->allocated, 61 __entry->sysctl_rmem, 62 __entry->rmem_alloc) 63); 64 65#endif /* _TRACE_SOCK_H */ 66 67/* This part must be outside protection */ 68#include <trace/define_trace.h> 69