You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
272 lines
8.3 KiB
272 lines
8.3 KiB
#!/bin/sh -xe
|
|
|
|
conf=${1}; shift
|
|
test=${1}
|
|
crasher=crasher
|
|
lkdtm=lkdtm
|
|
|
|
. "${conf}"
|
|
|
|
case "${test}" in
|
|
|
|
"KEXEC-L")
|
|
kexec -l /boot/vmlinuz --initrd=/boot/initrd \
|
|
--append="$(cat /proc/cmdline)"
|
|
sleep 10
|
|
kexec -e
|
|
;;
|
|
"MNS")
|
|
echo "Not implemented"
|
|
;;
|
|
|
|
"MNN")
|
|
echo "Not implemented"
|
|
;;
|
|
|
|
"MCS")
|
|
echo "Not implemented"
|
|
;;
|
|
|
|
"MCN")
|
|
echo "Not implemented"
|
|
;;
|
|
|
|
"MCF")
|
|
echo "Not implemented"
|
|
;;
|
|
|
|
"ACS")
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"ACP")
|
|
# Panic test 0 in crasher module: panic()
|
|
insmod "${crasher}"/crasher.ko
|
|
echo 0 >/proc/crasher
|
|
;;
|
|
|
|
"ACB")
|
|
# Panic test 1 in crasher module: BUG()
|
|
insmod "${crasher}"/crasher.ko
|
|
echo 1 >/proc/crasher
|
|
;;
|
|
|
|
"ACE")
|
|
# Panic test 2 in crasher module: panic_on_oops
|
|
insmod "${crasher}"/crasher.ko
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
echo 2 >/proc/crasher
|
|
;;
|
|
|
|
"ACL")
|
|
# Panic test 3 in crasher module: hang w/double spinlock
|
|
# requires nmi_watchdog be enabled
|
|
insmod "${crasher}"/crasher.ko
|
|
echo 3 >/proc/crasher
|
|
;;
|
|
|
|
"KPIDB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=BUG cpoint_count=05
|
|
;;
|
|
"KPIDE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=EXCEPTION cpoint_count=05
|
|
;;
|
|
"KPIDL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=LOOP cpoint_count=05
|
|
;;
|
|
"KPIDP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=PANIC cpoint_count=05
|
|
;;
|
|
"KPIDO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPIEB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPIEE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPIEL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPIEP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPIEO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPTEB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_TASKLET_ENTRY cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPTEE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_TASKLET_ENTRY cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPTEL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_TASKLET_ENTRY cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPTEP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_TASKLET_ENTRY cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPTEO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_TASKLET_ENTRY cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPBB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=FS_DEVRW cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPBE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=FS_DEVRW cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPBL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=FS_DEVRW cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPBP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=FS_DEVRW cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPBO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=FS_DEVRW cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPMSB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=MEM_SWAPOUT cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPMSE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=MEM_SWAPOUT cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPMSL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=MEM_SWAPOUT cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPMSP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=MEM_SWAPOUT cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPMSO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=MEM_SWAPOUT cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPTB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=TIMERADD cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPTE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=TIMERADD cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPTL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=TIMERADD cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPTP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=TIMERADD cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPTO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=TIMERADD cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPSB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=SCSI_DISPATCH_CMD cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPSE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=SCSI_DISPATCH_CMD cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPSL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=SCSI_DISPATCH_CMD cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPSP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=SCSI_DISPATCH_CMD cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPSO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=SCSI_DISPATCH_CMD cpoint_type=OVERFLOW cpoint_count=10
|
|
;;
|
|
"KPIB")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=IDE_CORE_CP cpoint_type=BUG cpoint_count=10
|
|
;;
|
|
"KPIE")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=IDE_CORE_CP cpoint_type=EXCEPTION cpoint_count=10
|
|
;;
|
|
"KPIL")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=IDE_CORE_CP cpoint_type=LOOP cpoint_count=10
|
|
;;
|
|
"KPIP")
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=IDE_CORE_CP cpoint_type=PANIC cpoint_count=10
|
|
;;
|
|
"KPIO")
|
|
echo 1 >/proc/sys/kernel/panic_on_oops
|
|
insmod "${lkdtm}"/lkdtm.ko cpoint_name=IDE_CORE_CP cpoint_type=OVERFLOW cpoint_count=01
|
|
;;
|
|
"KLEXT")
|
|
echo "ext3 ${EXT3_PART}" >/etc/kdump.conf
|
|
if [ "${FILTER}" -eq 1 ]; then
|
|
echo "core_collector makedumpfile ${MAKE_OPTIONS}" >>/etc/kdump.conf
|
|
fi
|
|
/etc/init.d/kdump restart
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"KLLBL")
|
|
echo "ext3 LABEL=${EXT3_LABEL}" >/etc/kdump.conf
|
|
if [ "${FILTER}" -eq 1 ]; then
|
|
echo "core_collector makedumpfile ${MAKE_OPTIONS}" >>/etc/kdump.conf
|
|
fi
|
|
/etc/init.d/kdump restart
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"KLUID")
|
|
echo "ext3 UUID=${EXT3_UID}" >/etc/kdump.conf
|
|
if [ "${FILTER}" -eq 1 ]; then
|
|
echo "core_collector makedumpfile ${MAKE_OPTIONS}" >>/etc/kdump.conf
|
|
fi
|
|
/etc/init.d/kdump restart
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"KLRAW")
|
|
echo "raw ${RAW_PART}" >/etc/kdump.conf
|
|
if [ "${FILTER}" -eq 1 ]; then
|
|
echo "core_collector makedumpfile ${MAKE_OPTIONS}" >>/etc/kdump.conf
|
|
fi
|
|
/etc/init.d/kdump restart
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"KNSCP")
|
|
echo "net ${SCP_PATH}" >/etc/kdump.conf
|
|
if [ "${LINK_DELAY}" ]; then
|
|
echo "link_delay ${LINK_DELAY}" >>/etc/kdump.conf
|
|
fi
|
|
|
|
expect -f ./ssh.tcl "/etc/init.d/kdump propagate" "${SCP_PASS}"
|
|
if [ "${FILTER}" -eq 1 ]; then
|
|
echo "core_collector makedumpfile ${MAKE_OPTIONS}" >>/etc/kdump.conf
|
|
fi
|
|
/etc/init.d/kdump restart
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"KNNFS")
|
|
echo "net ${NFS_PATH}" >/etc/kdump.conf
|
|
if [ "${LINK_DELAY}" ]; then
|
|
echo "link_delay ${LINK_DELAY}" >>/etc/kdump.conf
|
|
fi
|
|
|
|
if [ "${FILTER}" -eq 1 ]; then
|
|
echo "core_collector makedumpfile ${MAKE_OPTIONS}" >>/etc/kdump.conf
|
|
fi
|
|
/etc/init.d/kdump restart
|
|
echo c >/proc/sysrq-trigger
|
|
;;
|
|
|
|
"KDENB")
|
|
echo "net ${SCP_PATH}" >/etc/kdump.conf
|
|
expect -f ./ssh.tcl "/etc/init.d/kdump propagate" "${SCP_PASS}"
|
|
/etc/init.d/kdump restart
|
|
;;
|
|
|
|
*)
|
|
echo "Unknown test."
|
|
;;
|
|
|
|
esac
|
|
|
|
exit 0
|