Advertisement
Guest User

dvfs-test-script

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