Blame SOURCES/bcc-0.16.0-slabratetop-Add-memcg_cache_params-struct-def.patch

61e0c9
From fe1f2189326a54e3496b2fcfdc1b08839f3165b4 Mon Sep 17 00:00:00 2001
61e0c9
From: Daniel Rank <dwrank@gmail.com>
61e0c9
Date: Sun, 27 Sep 2020 16:55:22 -0700
61e0c9
Subject: [PATCH] slabratetop: Add memcg_cache_params struct def
61e0c9
61e0c9
struct memcg_cache_params moved from include/linux/slab.h to
61e0c9
mm/slab.h in kernel v5.4, causing a compiler error when including
61e0c9
slub_def.h or slab_def.h in slabratetop's bpf program.
61e0c9
61e0c9
It has been removed completely from kernel version 5.9.
61e0c9
61e0c9
Add an empty memcg_cache_params struct in slabratetop's bpf
61e0c9
program so it will compile with kernel versions 5.4 to 5.8.
61e0c9
---
61e0c9
 tools/slabratetop.py | 8 +++++++-
61e0c9
 1 file changed, 7 insertions(+), 1 deletion(-)
61e0c9
61e0c9
diff --git a/tools/slabratetop.py b/tools/slabratetop.py
61e0c9
index 066f79d6..182dbd1d 100755
61e0c9
--- a/tools/slabratetop.py
61e0c9
+++ b/tools/slabratetop.py
61e0c9
@@ -62,7 +62,13 @@ loadavg = "/proc/loadavg"
61e0c9
 bpf_text = """
61e0c9
 #include <uapi/linux/ptrace.h>
61e0c9
 #include <linux/mm.h>
61e0c9
-#include <linux/slab.h>
61e0c9
+
61e0c9
+// memcg_cache_params is a part of kmem_cache, but is not publicly exposed in
61e0c9
+// kernel versions 5.4 to 5.8.  Define an empty struct for it here to allow the
61e0c9
+// bpf program to compile.  It has been completely removed in kernel version
61e0c9
+// 5.9, but it does not hurt to have it here for versions 5.4 to 5.8.
61e0c9
+struct memcg_cache_params {};
61e0c9
+
61e0c9
 #ifdef CONFIG_SLUB
61e0c9
 #include <linux/slub_def.h>
61e0c9
 #else
61e0c9
-- 
61e0c9
2.29.2
61e0c9