1 IOshark is a repeatable application workload storage benchmark. You 2 can find more documentation on IOshark at : 3 https://docs.google.com/a/google.com/document/d/1Bhq7iNPVc_JzwRrkmZqcPjMvWgpHX0r3Ncq-ZsRNOBA/edit?usp=sharing 4 5 The short summary of what IOshark is : IOshark has 2 components, one 6 is a strace+ftrace compiler that takes straces and select ftraces fed 7 into it and compiles this into bytecodes (stored in *.wl files). The 8 compiler runs on a Linux host. The second component (which runs on the 9 device) is the tester that takes as input the bytecode files (*.wl 10 files) and executes them on the device. 11 12 How to Run : 13 ---------- 14 - First collect straces and compile these into bytecodes. The wrapper 15 script provided (collect-straces.sh) collects straces, ships them to 16 the host where the script runs, compiles and packages up the bytecode 17 files into a wl.tar file. 18 - Ship the wl.tar file and the iostark_bench binaries to the target 19 device (on /data/local/tmp say). Explode the tarfile. 20 - Run the tester. "ioshark_bench *.wl" runs the test with default 21 options. Supported ioshark_bench options : 22 -b : Explicitly specify a blockdev (to get IO stats from from 23 /proc/diskstats). 24 -d : Preserve the delays between successive filesystem syscalls as 25 seen in the original straces. 26 -n <N> : Run for N iterations 27 -t <N> : Limit to N threads. By default (without this option), IOshark 28 will launch as many threads as there are input files, so 1 thread/file. 29 -v : verbose. Chatty mode. 30 -s : One line summary. 31 -q : Don't create the files in read-only partitions like /system and 32 /vendor. Instead do reads on those files. 33