mirror of
https://git.yoctoproject.org/poky
synced 2026-02-10 10:43:02 +01:00
lttng-modules: update 2.13.7 -> 2.13.8
Drop backported 0001-fix-mm-slab_common-drop-kmem_alloc-avoid-dereferenci.patch 0009-Rename-genhd-wrapper-to-blkdev.patch is present only on the master branch and not on 2.13 branch, so keep it in the recipe. (From OE-Core rev: 5b04d4cea291b8d816a3a8d880004506fbf2b390) Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1,278 +0,0 @@
|
||||
From b977f96d0a414e76d4c544f65791919dde1bc57e Mon Sep 17 00:00:00 2001
|
||||
From: Michael Jeanson <mjeanson@efficios.com>
|
||||
Date: Mon, 17 Oct 2022 13:49:51 -0400
|
||||
Subject: [PATCH] fix: mm/slab_common: drop kmem_alloc & avoid dereferencing
|
||||
fields when not using (v6.1)
|
||||
|
||||
See uptream commit:
|
||||
|
||||
commit 2c1d697fb8ba6d2d44f914d4268ae1ccdf025f1b
|
||||
Author: Hyeonggon Yoo <42.hyeyoo@gmail.com>
|
||||
Date: Wed Aug 17 19:18:24 2022 +0900
|
||||
|
||||
mm/slab_common: drop kmem_alloc & avoid dereferencing fields when not using
|
||||
|
||||
Drop kmem_alloc event class, and define kmalloc and kmem_cache_alloc
|
||||
using TRACE_EVENT() macro.
|
||||
|
||||
And then this patch does:
|
||||
- Do not pass pointer to struct kmem_cache to trace_kmalloc.
|
||||
gfp flag is enough to know if it's accounted or not.
|
||||
- Avoid dereferencing s->object_size and s->size when not using kmem_cache_alloc event.
|
||||
- Avoid dereferencing s->name in when not using kmem_cache_free event.
|
||||
- Adjust s->size to SLOB_UNITS(s->size) * SLOB_UNIT in SLOB
|
||||
|
||||
Upstream-Status: Backport [commit b977f96d0a414e76d4c544f]
|
||||
|
||||
Change-Id: Icd7925731ed4a737699c3746cb7bb7760a4e8009
|
||||
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
|
||||
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||
---
|
||||
include/instrumentation/events/kmem.h | 156 ++++++++++++++++++--------
|
||||
1 file changed, 111 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/include/instrumentation/events/kmem.h b/include/instrumentation/events/kmem.h
|
||||
index 219533a1..0f5bd8e6 100644
|
||||
--- a/include/instrumentation/events/kmem.h
|
||||
+++ b/include/instrumentation/events/kmem.h
|
||||
@@ -10,9 +10,58 @@
|
||||
#include <lttng/kernel-version.h>
|
||||
|
||||
#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,0,0))
|
||||
-
|
||||
#include <../../mm/slab.h>
|
||||
+#endif
|
||||
+
|
||||
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,1,0))
|
||||
+LTTNG_TRACEPOINT_EVENT_MAP(kmalloc,
|
||||
+
|
||||
+ kmem_kmalloc,
|
||||
+
|
||||
+ TP_PROTO(unsigned long call_site,
|
||||
+ const void *ptr,
|
||||
+ size_t bytes_req,
|
||||
+ size_t bytes_alloc,
|
||||
+ gfp_t gfp_flags,
|
||||
+ int node),
|
||||
+
|
||||
+ TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
|
||||
+
|
||||
+ TP_FIELDS(
|
||||
+ ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
+ ctf_integer_hex(const void *, ptr, ptr)
|
||||
+ ctf_integer(size_t, bytes_req, bytes_req)
|
||||
+ ctf_integer(size_t, bytes_alloc, bytes_alloc)
|
||||
+ ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
+ ctf_integer(int, node, node)
|
||||
+ ctf_integer(bool, accounted, (IS_ENABLED(CONFIG_MEMCG_KMEM) &&
|
||||
+ (gfp_flags & __GFP_ACCOUNT) ? true : false))
|
||||
+ )
|
||||
+)
|
||||
+
|
||||
+LTTNG_TRACEPOINT_EVENT(kmem_cache_alloc,
|
||||
+
|
||||
+ TP_PROTO(unsigned long call_site,
|
||||
+ const void *ptr,
|
||||
+ struct kmem_cache *s,
|
||||
+ gfp_t gfp_flags,
|
||||
+ int node),
|
||||
+
|
||||
+ TP_ARGS(call_site, ptr, s, gfp_flags, node),
|
||||
|
||||
+ TP_FIELDS(
|
||||
+ ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
+ ctf_integer_hex(const void *, ptr, ptr)
|
||||
+ ctf_integer(size_t, bytes_req, s->object_size)
|
||||
+ ctf_integer(size_t, bytes_alloc, s->size)
|
||||
+ ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
+ ctf_integer(int, node, node)
|
||||
+ ctf_integer(bool, accounted, IS_ENABLED(CONFIG_MEMCG_KMEM) ?
|
||||
+ ((gfp_flags & __GFP_ACCOUNT) ||
|
||||
+ (s->flags & SLAB_ACCOUNT)) : false)
|
||||
+ )
|
||||
+)
|
||||
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,0,0))
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site,
|
||||
@@ -53,18 +102,16 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc, kmem_cache_alloc,
|
||||
|
||||
TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags)
|
||||
)
|
||||
-
|
||||
-LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc_node,
|
||||
+#else
|
||||
+LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site,
|
||||
const void *ptr,
|
||||
- struct kmem_cache *s,
|
||||
size_t bytes_req,
|
||||
size_t bytes_alloc,
|
||||
- gfp_t gfp_flags,
|
||||
- int node),
|
||||
+ gfp_t gfp_flags),
|
||||
|
||||
- TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags, node),
|
||||
+ TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
@@ -72,42 +119,40 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc_node,
|
||||
ctf_integer(size_t, bytes_req, bytes_req)
|
||||
ctf_integer(size_t, bytes_alloc, bytes_alloc)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
- ctf_integer(int, node, node)
|
||||
- ctf_integer(bool, accounted, IS_ENABLED(CONFIG_MEMCG_KMEM) ?
|
||||
- ((gfp_flags & __GFP_ACCOUNT) ||
|
||||
- (s && s->flags & SLAB_ACCOUNT)) : false)
|
||||
)
|
||||
)
|
||||
|
||||
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc_node, kmalloc_node,
|
||||
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc, kmalloc,
|
||||
|
||||
- kmem_kmalloc_node,
|
||||
+ kmem_kmalloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
- struct kmem_cache *s, size_t bytes_req, size_t bytes_alloc,
|
||||
- gfp_t gfp_flags, int node),
|
||||
+ size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
|
||||
|
||||
- TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags, node)
|
||||
+ TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
|
||||
)
|
||||
|
||||
-LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc_node, kmem_cache_alloc_node,
|
||||
+LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc, kmem_cache_alloc,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
- struct kmem_cache *s, size_t bytes_req, size_t bytes_alloc,
|
||||
- gfp_t gfp_flags, int node),
|
||||
+ size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
|
||||
|
||||
- TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags, node)
|
||||
+ TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
|
||||
)
|
||||
-#else
|
||||
-LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
|
||||
+#endif
|
||||
+
|
||||
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,0,0))
|
||||
+LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site,
|
||||
const void *ptr,
|
||||
+ struct kmem_cache *s,
|
||||
size_t bytes_req,
|
||||
size_t bytes_alloc,
|
||||
- gfp_t gfp_flags),
|
||||
+ gfp_t gfp_flags,
|
||||
+ int node),
|
||||
|
||||
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
|
||||
+ TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags, node),
|
||||
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
@@ -115,27 +160,33 @@ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc,
|
||||
ctf_integer(size_t, bytes_req, bytes_req)
|
||||
ctf_integer(size_t, bytes_alloc, bytes_alloc)
|
||||
ctf_integer(gfp_t, gfp_flags, gfp_flags)
|
||||
+ ctf_integer(int, node, node)
|
||||
+ ctf_integer(bool, accounted, IS_ENABLED(CONFIG_MEMCG_KMEM) ?
|
||||
+ ((gfp_flags & __GFP_ACCOUNT) ||
|
||||
+ (s && s->flags & SLAB_ACCOUNT)) : false)
|
||||
)
|
||||
)
|
||||
|
||||
-LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc, kmalloc,
|
||||
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(kmem_alloc_node, kmalloc_node,
|
||||
|
||||
- kmem_kmalloc,
|
||||
+ kmem_kmalloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
- size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
|
||||
+ struct kmem_cache *s, size_t bytes_req, size_t bytes_alloc,
|
||||
+ gfp_t gfp_flags, int node),
|
||||
|
||||
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
|
||||
+ TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags, node)
|
||||
)
|
||||
|
||||
-LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc, kmem_cache_alloc,
|
||||
+LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc_node, kmem_cache_alloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site, const void *ptr,
|
||||
- size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
|
||||
+ struct kmem_cache *s, size_t bytes_req, size_t bytes_alloc,
|
||||
+ gfp_t gfp_flags, int node),
|
||||
|
||||
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
|
||||
+ TP_ARGS(call_site, ptr, s, bytes_req, bytes_alloc, gfp_flags, node)
|
||||
)
|
||||
-
|
||||
+#else
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_alloc_node,
|
||||
|
||||
TP_PROTO(unsigned long call_site,
|
||||
@@ -192,19 +243,6 @@ LTTNG_TRACEPOINT_EVENT_MAP(kfree,
|
||||
ctf_integer_hex(const void *, ptr, ptr)
|
||||
)
|
||||
)
|
||||
-
|
||||
-LTTNG_TRACEPOINT_EVENT(kmem_cache_free,
|
||||
-
|
||||
- TP_PROTO(unsigned long call_site, const void *ptr, const char *name),
|
||||
-
|
||||
- TP_ARGS(call_site, ptr, name),
|
||||
-
|
||||
- TP_FIELDS(
|
||||
- ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
- ctf_integer_hex(const void *, ptr, ptr)
|
||||
- ctf_string(name, name)
|
||||
- )
|
||||
-)
|
||||
#else
|
||||
LTTNG_TRACEPOINT_EVENT_CLASS(kmem_free,
|
||||
|
||||
@@ -235,6 +273,34 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_free, kmem_cache_free,
|
||||
)
|
||||
#endif
|
||||
|
||||
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,1,0))
|
||||
+LTTNG_TRACEPOINT_EVENT(kmem_cache_free,
|
||||
+
|
||||
+ TP_PROTO(unsigned long call_site, const void *ptr, const struct kmem_cache *s),
|
||||
+
|
||||
+ TP_ARGS(call_site, ptr, s),
|
||||
+
|
||||
+ TP_FIELDS(
|
||||
+ ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
+ ctf_integer_hex(const void *, ptr, ptr)
|
||||
+ ctf_string(name, s->name)
|
||||
+ )
|
||||
+)
|
||||
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,12,0))
|
||||
+LTTNG_TRACEPOINT_EVENT(kmem_cache_free,
|
||||
+
|
||||
+ TP_PROTO(unsigned long call_site, const void *ptr, const char *name),
|
||||
+
|
||||
+ TP_ARGS(call_site, ptr, name),
|
||||
+
|
||||
+ TP_FIELDS(
|
||||
+ ctf_integer_hex(unsigned long, call_site, call_site)
|
||||
+ ctf_integer_hex(const void *, ptr, ptr)
|
||||
+ ctf_string(name, name)
|
||||
+ )
|
||||
+)
|
||||
+#endif
|
||||
+
|
||||
#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
|
||||
LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free, kmem_mm_page_free,
|
||||
#else
|
||||
--
|
||||
2.19.1
|
||||
|
||||
@@ -11,13 +11,12 @@ include lttng-platforms.inc
|
||||
|
||||
SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
|
||||
file://0009-Rename-genhd-wrapper-to-blkdev.patch \
|
||||
file://0001-fix-mm-slab_common-drop-kmem_alloc-avoid-dereferenci.patch \
|
||||
"
|
||||
|
||||
# Use :append here so that the patch is applied also when using devupstream
|
||||
SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
|
||||
|
||||
SRC_URI[sha256sum] = "5a99679df7903160cbde3918fee5af90ffafc90fc96ccdefaa57cf230492b234"
|
||||
SRC_URI[sha256sum] = "f525d3d48ea3a475cb535339c201666d0e4c75ec8c46d29837bcf381ea02cb19"
|
||||
|
||||
export INSTALL_MOD_DIR="kernel/lttng-modules"
|
||||
|
||||
Reference in New Issue
Block a user