12345678910111213141516171819202122232425262728293031 |
- #!/bin/bash
- #
- # Usage: failmodule <failname> <modulename> [stacktrace-depth]
- #
- # <failname>: "failslab", "fail_alloc_page", or "fail_make_request"
- #
- # <modulename>: module name that you want to inject faults.
- #
- # [stacktrace-depth]: the maximum number of stacktrace walking allowed
- #
- STACKTRACE_DEPTH=5
- if [ $# -gt 2 ]; then
- STACKTRACE_DEPTH=$3
- fi
- if [ ! -d /debug/$1 ]; then
- echo "Fault-injection $1 does not exist" >&2
- exit 1
- fi
- if [ ! -d /sys/module/$2 ]; then
- echo "Module $2 does not exist" >&2
- exit 1
- fi
- # Disable any fault injection
- echo 0 > /debug/$1/stacktrace-depth
- echo `cat /sys/module/$2/sections/.text` > /debug/$1/require-start
- echo `cat /sys/module/$2/sections/.exit.text` > /debug/$1/require-end
- echo $STACKTRACE_DEPTH > /debug/$1/stacktrace-depth
|