From 45ba2acb631bde94960efb7396cb9609205ad257 Mon Sep 17 00:00:00 2001 From: grev Date: Thu, 18 Sep 2008 17:23:26 +0000 Subject: [PATCH] b=16799 i=Adilger cleanup_obdclass () fix; check_mem_leak t-f fn --- lustre/obdclass/class_obd.c | 14 ++++++-------- lustre/tests/test-framework.sh | 36 +++++++++++++++++------------------- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/lustre/obdclass/class_obd.c b/lustre/obdclass/class_obd.c index f3e428e..c2c6add 100644 --- a/lustre/obdclass/class_obd.c +++ b/lustre/obdclass/class_obd.c @@ -649,14 +649,12 @@ static void cleanup_obdclass(void) pages_max = obd_pages_max(); lprocfs_free_stats(&obd_memory); - if (memory_leaked > 0) { - CWARN("Memory leaks detected (max "LPU64", leaked "LPD64")\n", - memory_max, memory_leaked); - } - if (pages_leaked > 0) { - CWARN("Page leaks detected (max "LPU64", leaked "LPU64")\n", - pages_max, pages_leaked); - } + CDEBUG((memory_leaked) ? D_ERROR : D_INFO, + "obd_memory max: "LPU64", leaked: "LPU64"\n", + memory_max, memory_leaked); + CDEBUG((pages_leaked) ? D_ERROR : D_INFO, + "obd_memory_pages max: "LPU64", leaked: "LPU64"\n", + pages_max, pages_leaked); EXIT; } diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 229dbf6..c933a73 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -296,6 +296,19 @@ unload_dep_module() { $RMMOD $MODULE || true } +check_mem_leak () { + LEAK_LUSTRE=$(dmesg | tail -n 30 | grep "obd_memory.*leaked" || true) + LEAK_PORTALS=$(dmesg | tail -n 20 | grep "Portals memory leaked" || true) + if [ "$LEAK_LUSTRE" -o "$LEAK_PORTALS" ]; then + echo "$LEAK_LUSTRE" 1>&2 + echo "$LEAK_PORTALS" 1>&2 + mv $TMP/debug $TMP/debug-leak.`date +%s` || true + log "Memory leaks detected" + [ -n "$IGNORE_LEAK" ] && { echo "ignoring leaks" && return 0; } || true + return 1 + fi +} + unload_modules() { wait_exit_ST client # bug 12845 @@ -320,16 +333,8 @@ unload_modules() { fi HAVE_MODULES=false - LEAK_LUSTRE=$(dmesg | tail -n 30 | grep "obd mem.*leaked" || true) - LEAK_PORTALS=$(dmesg | tail -n 20 | grep "Portals memory leaked" || true) - if [ "$LEAK_LUSTRE" -o "$LEAK_PORTALS" ]; then - echo "$LEAK_LUSTRE" 1>&2 - echo "$LEAK_PORTALS" 1>&2 - mv $TMP/debug $TMP/debug-leak.`date +%s` || true - echo "Memory leaks detected" - [ -n "$IGNORE_LEAK" ] && echo "ignoring leaks" && return 0 - return 254 - fi + check_mem_leak || return 254 + echo "modules unloaded." return 0 } @@ -591,15 +596,8 @@ cleanup_check() { [ -e $TMP/debug ] && mv $TMP/debug $TMP/debug-busy.`date +%s` exit 205 fi - LEAK_LUSTRE=`dmesg | tail -n 30 | grep "obd mem.*leaked" || true` - LEAK_PORTALS=`dmesg | tail -n 20 | grep "Portals memory leaked" || true` - if [ "$LEAK_LUSTRE" -o "$LEAK_PORTALS" ]; then - echo "$0: $LEAK_LUSTRE" 1>&2 - echo "$0: $LEAK_PORTALS" 1>&2 - echo "$0: Memory leak(s) detected..." 1>&2 - mv $TMP/debug $TMP/debug-leak.`date +%s` - exit 204 - fi + + check_mem_leak || exit 204 [ "`lctl dl 2> /dev/null | wc -l`" -gt 0 ] && lctl dl && \ echo "$0: lustre didn't clean up..." 1>&2 && return 202 || true -- 1.8.3.1