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 [ ! -r "$PERF_OSYNC" ] 112633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallthen 122633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall echo "Cannot read $PERF_OSYNC test binary" 132633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfi 142633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 152633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallif ! adb shell true >/dev/null 2>&1 162633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallthen 172633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall echo "No device detected over adb" 182633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfi 192633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 202633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken SumrallHARDWARE=`adb shell getprop ro.hardware | tr -d "\r"` 212633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 222633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallcase "$HARDWARE" in 232633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall tuna | steelhead) 242633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq" 252633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CACHE="/dev/block/platform/omap/omap_hsmmc.0/by-name/cache" 262633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall ;; 272633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 282633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall stingray | wingray) 292633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq" 302633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CACHE="/dev/block/platform/sdhci-tegra.3/by-name/cache" 312633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall ;; 322633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 332633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall herring) 342633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall echo "This test will wipe the userdata partition on $HARDWARE devices." 352633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall read -p "Do you want to proceed? " ANSWER 362633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 372633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall if [ "$ANSWER" != "yes" ] 382633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall then 392633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall echo "aborting test" 402633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall exit 1 412633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall fi 422633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 432633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq" 442633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CACHE="/dev/block/platform/s3c-sdhci.0/by-name/userdata" 452633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall ;; 462633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 472633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall grouper) 482633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CPUFREQ="/sys/devices/system/cpu/cpu0/cpufreq" 492633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall CACHE="/dev/block/platform/sdhci-tegra.3/by-name/CAC" 502633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall ;; 512633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken 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 push "$PERF_OSYNC" /dev 622633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop 632633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop sdcard 642633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop ril-daemon 652633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop media 662633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop drm 672633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop keystore 682633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop tf_daemon 692633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop bluetoothd 702633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell stop hciattach 712633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell umount /sdcard >/dev/null 2>&1 722633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell umount /data >/dev/null 2>&1 732633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell umount /cache >/dev/null 2>&1 742633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Add more services here that other devices need to stop. 752633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# So far, this list is sufficient for: 762633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Prime 772633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 782633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# At this point, the device is quiescent, need to crank up the cpu speed, 792633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# then run tests 802633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell "cat $CPUFREQ/cpuinfo_max_freq > $CPUFREQ/scaling_max_freq" 812633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell "cat $CPUFREQ/cpuinfo_max_freq > $CPUFREQ/scaling_min_freq" 822633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 832633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Start the tests 842633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 852633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Sequential read test 862633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3 872633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo 882633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall echo "Sequential read test $I" 892633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall adb shell dd if="$CACHE" of=/dev/null bs=1048576 count=200 902633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone 912633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 922633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Sequential write test 932633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3 942633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo 952633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall echo "Sequential write test $I" 962633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall adb shell dd if=/dev/zero of="$CACHE" bs=1048576 count=200 972633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone 982633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 992633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Random read test 1002633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrallfor I in 1 2 3 1012633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldo 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" 1172633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall adb shell /dev/"$PERF" -w 100 -o "$CACHE" 1182633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralldone 1192633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 1202633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall# Make a new empty /cache filesystem 1212633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumralladb shell make_ext4fs "$CACHE" 1222633ce5ca5024d5565c9068c29ec39a8c3ed10e9Ken Sumrall 123