automated: linux: modules: add kmemleak scan
Add a final memory leak detection pass using kmemleak if it is enabled
in the running kernel. Trigger a kmemleak scan after all module
load/unload cycles and report any leaked memory objects.
This helps detect regressions involving memory leaks caused by module
insert/remove operations.
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
diff --git a/automated/linux/modules/modules.sh b/automated/linux/modules/modules.sh
index 919ff21..2e407fd 100755
--- a/automated/linux/modules/modules.sh
+++ b/automated/linux/modules/modules.sh
@@ -91,6 +91,23 @@
fi
}
+kmemleak_scan() {
+ if [ -e /sys/kernel/debug/kmemleak ]; then
+ echo "Triggering kmemleak scan..."
+ echo scan > /sys/kernel/debug/kmemleak
+ sleep 5
+ if grep -q . /sys/kernel/debug/kmemleak; then
+ echo "Potential memory leaks detected:"
+ cat /sys/kernel/debug/kmemleak
+ report_fail "kmemleak_detected"
+ else
+ report_pass "kmemleak_no_leaks"
+ fi
+ else
+ echo "kmemleak not available, skipping scan."
+ fi
+}
+
run () {
for module in ${MODULES_LIST}; do
# don't insert/remove modules that is already inserted.
@@ -119,3 +136,4 @@
info_msg "About to run load/unload kernel modules ..."
get_modules_list
run
+kmemleak_scan