[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] kernel BUG at arch/x86/xen/mmu.c:1860!
Below is my latest test crash script: ----------8<----------8<----------8<----------8<----------8<----------8<----------8<----------8<---------- #!/bin/sh # # This script is to create lvm snapshot, mount it, umount it and remove in a # specified number of loops to test whether it will crash the host server. # All LVM snapshots assumed can be mounted like if you are running a PV domU. # # Created by Giam Teck Choon # # The LV name and for this case we are using XenGroup LVGroupName=XenGroup # return 1 if is mounted otherwise return 0 check_mount() { local checkdir=${1} if [ -n "$checkdir" ] ; then local check=`grep "$checkdir" /proc/mounts` if [ -n "$check" ] ; then return 1 fi fi return 0 } do_lvm_create_remove() { # number of loops default is 1 local loopcountlimit=${1:-1} # snapshot size default is 1G local snapshotsize=${2:-1G} # implement a sleep between create, mount, umount and remove (default is 0 which is no pause) local pauseinterval=${3:-0} # execute commands after each pause/sleep such as sync or anything that you want to test local commands=${4} # We filter out snapshot and swap local count=0 if [ -d "/dev/${LVGroupName}" ] ; then while [ "$count" -lt "$loopcountlimit" ] do count=`expr $count + 1` echo "${count} ... ... " for i in `ls /dev/${LVGroupName} | grep -Ev 'snapshot$' | grep -Ev 'swap$'`; do if [ -h "/dev/${LVGroupName}/${i}" ] ; then echo -n "lvcreate -s -v -n ${i}-snapshot -L ${snapshotsize} /dev/${LVGroupName}/${i} ... ... " lvcreate -s -v -n ${i}-snapshot -L ${snapshotsize} /dev/${LVGroupName}/${i} echo "done." sleep ${pauseinterval} if [ -n "$commands" ] ; then echo -n "${commands} ... ... " $commands echo "done." fi mkdir -p /mnt/testlvm/${i} if [ -h "/dev/${LVGroupName}/${i}-snapshot" ] ; then check_mount /mnt/testlvm/${i} local ismount=$? if [ "$ismount" -eq 0 ] ; then echo -n "mount /dev/${LVGroupName}/${i}-snapshot /mnt/testlvm/${i} ... ... " mount /dev/${LVGroupName}/${i}-snapshot /mnt/testlvm/${i} echo "done." sleep ${pauseinterval} if [ -n "$commands" ] ; then echo -n "${commands} ... ... " $commands echo "done." fi fi check_mount /mnt/testlvm/${i} local ismount2=$? if [ "$ismount2" -eq 1 ] ; then echo -n "umount /mnt/testlvm/${i} ... ... " umount /mnt/testlvm/${i} echo "done." sleep ${pauseinterval} if [ -n "$commands" ] ; then echo -n "${commands} ... ... " $commands echo "done." fi fi fi rm -rf /mnt/testlvm/${i} echo -n "lvremove -f /dev/${LVGroupName}/${i}-snapshot ... ... " lvremove -f /dev/${LVGroupName}/${i}-snapshot echo "done." sleep ${pauseinterval} if [ -n "$commands" ] ; then echo -n "${commands} ... ... " $commands echo "done." fi fi done rm -fr /mnt/testlvm done else echo "/dev/${LVGroupName} directory not found!" exit 1 fi } case $1 in loop) shift do_lvm_create_remove "$@" ;; *) cat <<HELP Usage: $0 loop loopcountlimit snapshotsize pauseinterval commands Where: loopcountlimit is default to 1 snapshotsize is default to 1G pauseinterval is default to 0 commands is default to none Example to run with 100 loops without pause/sleep: $0 loop 100 Example to run with 100 loops with pause/sleep of 5 seconds: $0 loop 100 1G 5 Example to run with 100 loops with snapshot size of 2G instead of 1G: $0 loop 100 2G Example to run with 50 loops, 1G snapshot size, 5 seconds pause and with sync: command with each pause/sleep $0 loop 50 1G 5 sync Example to run with 50 loops, 1G snapshot size, no pause and with sync: command with each pause/sleep $0 loop 50 1G 0 sync Example to run your own commands: $0 loop 100 1G 5 "echo hi && sync" HELP ;; esac ----------8<----------8<----------8<----------8<----------8<----------8<----------8<----------8<---------- Thanks. Kindest regards, Giam Teck Choon _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |