android_emmc_perf_tests.sh revision b20f33f727e77c00b5b8176a541d5ddfbd469fef
12633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall#!/bin/bash
22633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
32633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken SumrallPERF="rand_emmc_perf"
42633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
52633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallif [ ! -r "$PERF" ]
62633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallthen
72633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "Cannot read $PERF test binary"
82633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfi
92633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
102633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallif ! adb shell true >/dev/null 2>&1
112633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallthen
122633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "No device detected over adb"
132633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfi
142633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
152633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken SumrallHARDWARE=`adb shell getprop ro.hardware | tr -d "\r"`
162633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
172633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallcase "$HARDWARE" in
182633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  tuna | steelhead)
192633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq"
202633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CACHE="/dev/block/platform/omap/omap_hsmmc.0/by-name/cache"
212633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    ;;
222633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
232633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  stingray | wingray)
242633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq"
252633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CACHE="/dev/block/platform/sdhci-tegra.3/by-name/cache"
262633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    ;;
272633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
282633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  herring)
292633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    echo "This test will wipe the userdata partition on $HARDWARE devices."
302633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    read -p "Do you want to proceed? " ANSWER
312633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
322633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    if [ "$ANSWER" != "yes" ]
332633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    then
342633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall      echo "aborting test"
352633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall      exit 1
362633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    fi
372633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
382633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq"
392633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CACHE="/dev/block/platform/s3c-sdhci.0/by-name/userdata"
402633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    ;;
412633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
422633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  grouper)
432633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq"
442633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    CACHE="/dev/block/platform/sdhci-tegra.3/by-name/CAC"
452633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    ;;
462633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
47b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall  manta)
48b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall    CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq"
49b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall    CACHE="/dev/block/platform/dw_mmc.0/by-name/cache"
50b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall    ;;
51b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall
522633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  *)
532633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    echo "Unknown hardware $HARDWARE.  Exiting."
542633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall    exit 1
552633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallesac
562633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
572633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# prepare the device
582633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb root
592633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb wait-for-device
602633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb push "$PERF" /dev
612633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop
622633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop sdcard
632633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop ril-daemon
642633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop media
652633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop drm
662633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop keystore
672633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop tf_daemon
682633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop bluetoothd
692633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop hciattach
702633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell umount /sdcard >/dev/null 2>&1
712633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell umount /data >/dev/null 2>&1
722633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell umount /cache >/dev/null 2>&1
732633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Add more services here that other devices need to stop.
742633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# So far, this list is sufficient for:
752633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall#   Prime
762633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
772633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# At this point, the device is quiescent, need to crank up the cpu speed,
782633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# then run tests
792633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell "cat $CPUFREQ/cpuinfo_max_freq > $CPUFREQ/scaling_max_freq"
802633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell "cat $CPUFREQ/cpuinfo_max_freq > $CPUFREQ/scaling_min_freq"
812633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
822633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Start the tests
832633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
842633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Sequential read test
852633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3
862633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo
872633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "Sequential read test $I"
882633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  adb shell dd if="$CACHE" of=/dev/null bs=1048576 count=200
892633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone
902633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
912633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Sequential write test
922633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3
932633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo
942633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "Sequential write test $I"
952633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  adb shell dd if=/dev/zero of="$CACHE" bs=1048576 count=200
962633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone
972633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
982633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Random read test
992633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3
1002633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo
101b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall  adb shell "echo 3 > /proc/sys/vm/drop_caches"
1022633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "Random read test $I"
1032633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  adb shell /dev/"$PERF" -r 100 "$CACHE"
1042633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone
1052633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
1062633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Random write test
1072633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3
1082633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo
1092633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "Random write test $I"
1102633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  adb shell /dev/"$PERF" -w 100 "$CACHE"
1112633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone
1122633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
1132633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Random write test with O_SYNC
1142633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3
1152633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo
1162633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall  echo "Random write with o_sync test $I"
117b20f33f727e77c00b5b8176a541d5ddfbd469fefKen Sumrall  adb shell /dev/"$PERF" -w -o 100 "$CACHE"
1182633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone
1192633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
1202633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Make a new empty /cache filesystem
1212633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell make_ext4fs "$CACHE"
1222633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall
123