--- /dev/null
+From 53f9bf806271d7bd38595dfc2eddbeb668eb842e Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Fri, 7 Sep 2018 12:21:12 -0400
+Subject: [PATCH] Fix: net: expose sk wmem in sock_exceed_buf_limit tracepoint
+ (4.19)
+
+See upstream commit:
+
+ commit d6f19938eb031ee2158272757db33258153ae59c
+ Author: Yafang Shao <laoar.shao@gmail.com>
+ Date: Sun Jul 1 23:31:30 2018 +0800
+
+ net: expose sk wmem in sock_exceed_buf_limit tracepoint
+
+ Currently trace_sock_exceed_buf_limit() only show rmem info,
+ but wmem limit may also be hit.
+ So expose wmem info in this tracepoint as well.
+
+ Regarding memcg, I think it is better to introduce a new tracepoint(if
+ that is needed), i.e. trace_memcg_limit_hit other than show memcg info in
+ trace_sock_exceed_buf_limit.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ instrumentation/events/lttng-module/sock.h | 23 +++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+diff --git a/instrumentation/events/lttng-module/sock.h b/instrumentation/events/lttng-module/sock.h
+index 4bde039..a1032b3 100644
+--- a/instrumentation/events/lttng-module/sock.h
++++ b/instrumentation/events/lttng-module/sock.h
+@@ -22,7 +22,28 @@ LTTNG_TRACEPOINT_EVENT(sock_rcvqueue_full,
+ )
+ )
+
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
++#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)
++ )
++)
++
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
+
+ LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit,
+
# nothing to be placed to debuginfo package
%define _enable_debug_packages 0
-%define rel 1
+%define rel 2
%define pname lttng-modules
Summary: LTTng 2.x kernel modules
Summary(pl.UTF-8): Moduły jądra LTTng 2.x
Source0: http://lttng.org/files/lttng-modules/%{pname}-%{version}.tar.bz2
# Source0-md5: d3cb4520948083bf1573a2e4cb7406aa
Patch0: build.patch
+Patch1: kernel-4.19.patch
URL: http://lttng.org/
%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.38}
%{?with_kernelsrc:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-source >= 3:2.6.38}}
%prep
%setup -q -n %{pname}-%{version}
%patch0 -p1
+%patch1 -p1
%build
%{expand:%build_kernel_packages}