Advertisement
Guest User

dvfs-test-script

a guest
May 8th, 2013
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.97 KB | None | 0 0
  1. #!/bin/sh
  2. CPUFREQ=/sys/devices/system/cpu/cpu0/cpufreq/
  3.  
  4. OCONF=$1
  5. if [ -z "$OCONF" ]; then
  6.     OCONF=0
  7. fi
  8.  
  9. if [ ! -d "$CPUFREQ" ]; then
  10.     echo "Cpufreq not present??"
  11.     exit 1
  12. fi
  13.  
  14. echo userspace > $CPUFREQ/scaling_governor
  15. echo "==================="
  16. echo "System CPUFREQ Configuration:"
  17. echo "==================="
  18. echo "Scaling driver:" `cat $CPUFREQ/scaling_driver`
  19. REG=`ls -d /sys/class/regulator/*/cpufreq* 2>/dev/null`
  20. if [ -z "$REG" ]; then
  21.     echo "cpufreq-cpu0 Regulator not found. Checking for legacy mpu regulator"
  22.     REG=`find /sys/class/regulator -follow -maxdepth 2 -name name|xargs grep -i mpu|cut -d ':' -f1`
  23. fi
  24. if [ ! -z "$REG" ]; then
  25.     REG=`echo $REG|cut -d '/' -f1-5`
  26.     REG_NAME=`cat $REG/name`
  27.     echo "Scaling Regulator: $REG : $REG_NAME"
  28. else
  29.     echo "Scaling Regulator: not found"
  30. fi
  31. if [ ! -z "$REG" ]; then
  32.     REG1_MOD_NAME=`cat $REG/device/modalias|cut -d ':' -f2`
  33.     REG2=`ls -d /sys/class/regulator/*/$REG1_MOD_NAME* 2>/dev/null`
  34.     if [ ! -z "$REG2" ]; then
  35.         REG2=`echo $REG2|cut -d '/' -f1-5`
  36.         REG2_NAME=`cat $REG2/name`
  37.         echo "Scaling Regulator(reg2): $REG2 :$REG2_NAME"
  38.     fi
  39. fi
  40.  
  41. START=`date`
  42. STARTS=`date "+%s"`
  43. opp=`cat $CPUFREQ/scaling_available_frequencies`
  44. echo "$opp are the available frequencies"
  45.  
  46. echo "==================="
  47. echo "Boot Configuration:"
  48. echo "==================="
  49. if [ $OCONF -eq 1 ]; then
  50.     echo "System info:"
  51.     ./omapconf --cpuinfo
  52. fi
  53. echo "bogomips@ boot:"
  54. cat /proc/cpuinfo|grep -i bogomips
  55. echo "Boot scaling frequency ="`cat $CPUFREQ/scaling_cur_freq`
  56. if [ ! -z "$REG" ]; then
  57.     echo "Boot $REG_NAME Scaling voltage(uV) ="`cat $REG/microvolts`
  58. fi
  59. if [ ! -z "$REG2" ]; then
  60.     echo "Boot $REG2_NAME Scaling voltage(uV) ="`cat $REG2/microvolts`
  61. fi
  62.  
  63. if [ ! -z "$MEM_TEST" ]; then
  64.     USE_MEMORY_PERCENTAGE=$MEM_TEST
  65.     export m1=`free|cut -d ":" -f2|sed -e "s/^\s\s*//g"|head -2|tail -1|cut -d ' ' -f1`
  66.     export m2=M
  67.     export m=`expr $m1 \* $USE_MEMORY_PERCENTAGE / 100 / 1024`
  68.  
  69.     killall memtester 2>/dev/null
  70.     echo "Starting memtester for $m$m2"
  71.     memtester $m$m2 &
  72.     sleep 5
  73.     MEMTESTERPID=`ps | grep memtester | grep -v grep | cut -c 0-5|xargs echo`
  74. fi
  75.  
  76. START=`date`
  77. # execute on exit - cleanup actions
  78. on_exit()
  79. {
  80.     if [ ! -z "$MEMTESTERPID" ]; then
  81.         MEMTESTERPID2=`ps | grep memtester | grep -v grep | cut -c 0-5|xargs echo`
  82.         if [ x$MEMTESTERPID != x$MEMTESTERPID2 ]; then
  83.             echo "Memtester PIDs(old $MEMTESTERPID new $MEMTESTERPID2) $m$m2 died?"
  84.         else
  85.             echo "Memtester PIDs(old $MEMTESTERPID new $MEMTESTERPID2) $m$m2 Still running!"
  86.  
  87.             kill -TERM $MEMTESTERPID2
  88.         fi
  89.         killall memtester 2>/dev/null
  90.     fi
  91.     echo "Test start: $START now:" `date`
  92.     exit 1
  93. }
  94.  
  95. trap on_exit EXIT SIGINT SIGTERM
  96.  
  97. echo "==================="
  98. echo "Single OPP transition walk through test:"
  99. echo "==================="
  100. #1 second in each OPP
  101. FIRST_TEST_TIME=1
  102. idx=1
  103. for i in $opp
  104. do
  105.     echo -n "$i" > $CPUFREQ/scaling_setspeed
  106.     echo "$idx: TESTING for $FIRST_TEST_TIME seconds at" `cat $CPUFREQ/scaling_cur_freq`
  107.     if [ $OCONF -eq 1 ]; then
  108.         ./omapconf show opp
  109.     fi
  110.     echo "current scaling frequency(for $i) ="`cat $CPUFREQ/scaling_cur_freq`
  111.     if [ ! -z "$REG" ]; then
  112.         echo "current $REG_NAME Scaling voltage(uV) ="`cat $REG/microvolts`
  113.     fi
  114.     if [ ! -z "$REG2" ]; then
  115.         echo "current $REG2_NAME Scaling voltage(uV) ="`cat $REG2/microvolts`
  116.     fi
  117.     echo "bogomips@ frequency $i:"
  118.     echo -n "$i" > $CPUFREQ/scaling_setspeed
  119.     cat /proc/cpuinfo|grep -i bogomips
  120.     sleep $FIRST_TEST_TIME
  121.     idx=`expr $idx + 1`
  122. done
  123.  
  124. j=0
  125. k=0
  126. rotate=1000
  127. echo "==================="
  128. echo "Rapid transitions test (print every $rotate all OPP combinations):"
  129. echo "==================="
  130. while [ 1 ]
  131. do
  132.     for i in $opp
  133.     do
  134.         for j in $opp
  135.         do
  136.             echo -n "$i" > $CPUFREQ/scaling_setspeed
  137.             echo -n "$j" > $CPUFREQ/scaling_setspeed
  138.         done
  139.     done
  140.     j=`expr $j + 1`
  141.     if [ $j -gt $rotate ]; then
  142.         STARTN=`date "+%s"`
  143.         DELTA=`expr $STARTN - $STARTS`
  144.         echo "[$k] $rotate: $DELTA Seconds: $START : time now =" `date`
  145.         k=`expr $k + 1`
  146.         j=0
  147.     fi
  148. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement