X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fsock.h;h=955bc1a31b5da3a8dc4d0ad985ce4220941c5db8;hb=3b4aafcbbef722c5d04f2fe06a47c47d4d23eda0;hp=c4e689ade85eeafec214a429b3f1dd93a8f49ea4;hpb=d3ac4d63d21c643df5b09d9d7888eb0c4122379c;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/sock.h b/instrumentation/events/lttng-module/sock.h index c4e689ad..955bc1a3 100644 --- a/instrumentation/events/lttng-module/sock.h +++ b/instrumentation/events/lttng-module/sock.h @@ -1,68 +1,85 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ #undef TRACE_SYSTEM #define TRACE_SYSTEM sock -#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_SOCK_H +#if !defined(LTTNG_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_SOCK_H +#include +#include #include -#include -TRACE_EVENT(sock_rcvqueue_full, +LTTNG_TRACEPOINT_EVENT(sock_rcvqueue_full, TP_PROTO(struct sock *sk, struct sk_buff *skb), TP_ARGS(sk, skb), - TP_STRUCT__entry( - __field(int, rmem_alloc) - __field(unsigned int, truesize) - __field(int, sk_rcvbuf) - ), + TP_FIELDS( + ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ctf_integer(unsigned int, truesize, skb->truesize) + ctf_integer(int, sk_rcvbuf, sk->sk_rcvbuf) + ) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) + +LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated, int kind), + + TP_ARGS(sk, prot, allocated, kind), + + TP_FIELDS( + ctf_string(name, prot->name) + ctf_array(long, sysctl_mem, prot->sysctl_mem, 3) + ctf_integer(long, allocated, allocated) + ctf_integer(int, sysctl_rmem, sk_get_rmem0(sk, prot)) + ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ctf_integer(int, sysctl_wmem, sk_get_wmem0(sk, prot)) + ctf_integer(int, wmem_alloc, refcount_read(&sk->sk_wmem_alloc)) + ctf_integer(int, wmem_queued, sk->sk_wmem_queued) + ctf_integer(int, kind, kind) + ) +) - TP_fast_assign( - tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) - tp_assign(truesize, skb->truesize) - tp_assign(sk_rcvbuf, sk->sk_rcvbuf) - ), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) - TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d", - __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf) +LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated), + + TP_ARGS(sk, prot, allocated), + + TP_FIELDS( + ctf_string(name, prot->name) + ctf_array(long, sysctl_mem, prot->sysctl_mem, 3) + ctf_integer(long, allocated, allocated) + ctf_integer(int, sysctl_rmem, sk_get_rmem0(sk, prot)) + ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ) ) -TRACE_EVENT(sock_exceed_buf_limit, +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */ + +LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit, TP_PROTO(struct sock *sk, struct proto *prot, long allocated), TP_ARGS(sk, prot, allocated), - TP_STRUCT__entry( - __string(name, prot->name) - __field(long *, sysctl_mem) - __field(long, allocated) - __field(int, sysctl_rmem) - __field(int, rmem_alloc) - ), - - TP_fast_assign( - tp_strcpy(name, prot->name) - tp_assign(sysctl_mem, prot->sysctl_mem) - tp_assign(allocated, allocated) - tp_assign(sysctl_rmem, prot->sysctl_rmem[0]) - tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc)); - ), - - TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld " - "sysctl_rmem=%d rmem_alloc=%d", - __entry->name, - __entry->sysctl_mem[0], - __entry->sysctl_mem[1], - __entry->sysctl_mem[2], - __entry->allocated, - __entry->sysctl_rmem, - __entry->rmem_alloc) + TP_FIELDS( + ctf_string(name, prot->name) + ctf_array(long, sysctl_mem, prot->sysctl_mem, 3) + ctf_integer(long, allocated, allocated) + ctf_integer(int, sysctl_rmem, prot->sysctl_rmem[0]) + ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ) ) -#endif /* _TRACE_SOCK_H */ +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) */ + +#endif /* LTTNG_TRACE_SOCK_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include