X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fcommon.sh.in;h=51671ebc019314bae11f39022f2745479ad3f427;hb=10715a018760e1d862b8348e31dc505e832a0904;hp=09ca818c32f14782e7f4bab8de384e238f373874;hpb=0ee8118bd31d1c160123d0aac9c55455706d5975;p=zfs.git diff --git a/scripts/common.sh.in b/scripts/common.sh.in index 09ca818..51671eb 100644 --- a/scripts/common.sh.in +++ b/scripts/common.sh.in @@ -11,7 +11,8 @@ SCRIPT_CONFIG=zfs-script-config.sh if [ -f "${basedir}/../${SCRIPT_CONFIG}" ]; then . "${basedir}/../${SCRIPT_CONFIG}" else -MODULES=(zlib_deflate spl splat zavl znvpair zunicode zcommon zfs) +KERNEL_MODULES=(zlib_deflate zlib_inflate) +MODULES=(spl splat zavl znvpair zunicode zcommon zfs) fi PROG="" @@ -162,7 +163,7 @@ load_module() { echo "Loading ${NAME} ($@)" fi - ${LDMOD} $* || ERROR="Failed to load $1" return 1 + ${LDMOD} $* &>/dev/null || ERROR="Failed to load $1" return 1 return 0 } @@ -170,6 +171,10 @@ load_module() { load_modules() { mkdir -p /etc/zfs + for MOD in ${KERNEL_MODULES[*]}; do + load_module ${MOD} + done + for MOD in ${MODULES[*]}; do local NAME=`basename ${MOD} .ko` local VALUE= @@ -425,7 +430,7 @@ scsi_rescan() { # udev_trigger() { if [ -f ${UDEVADM} ]; then - ${UDEVADM} trigger + ${UDEVADM} trigger --action=change --subsystem-match=block ${UDEVADM} settle else /sbin/udevtrigger @@ -630,3 +635,29 @@ wait_udev() { return 0 } + +stack_clear() { + local STACK_MAX_SIZE=/sys/kernel/debug/tracing/stack_max_size + local STACK_TRACER_ENABLED=/proc/sys/kernel/stack_tracer_enabled + + if [ -e $STACK_MAX_SIZE ]; then + echo 1 >$STACK_TRACER_ENABLED + echo 0 >$STACK_MAX_SIZE + fi +} + +stack_check() { + local STACK_MAX_SIZE=/sys/kernel/debug/tracing/stack_max_size + local STACK_TRACE=/sys/kernel/debug/tracing/stack_trace + local STACK_LIMIT=7000 + + if [ -e $STACK_MAX_SIZE ]; then + STACK_SIZE=`cat $STACK_MAX_SIZE` + + if [ $STACK_SIZE -ge $STACK_LIMIT ]; then + echo + echo "Warning: max stack size $STACK_SIZE bytes" + cat $STACK_TRACE + fi + fi +}