Reference: LEE Kisung and WON Youjip "Smart layers and dumb result: Io characterization of an android-based smartphone" In EMSOFT 2012: In Proc. of International Conference on Embedded Software (Oct.7-12 2012). Tampere, Finland
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Kernel
Kernel_3.0.15
Kernel_3.0.31
Kernel_3.10.61
Kernel_3.4.0
Viewer
progs/most
README.md

README.md

Mobile Storage Analyzer

Written by Kisung Lee kisunglee@hanyang.ac.kr (based on e2fsprogs).

Reference:

Acknowledgement:

  • This work is supported by IT R&D program MKE/KEIT (No. 10041608, Embedded System Software for New-memory based Smart Device).

Kernel part (MOST/kernel)

  • Kernel source is based on Linux kernel 2.6.35.7. (Defined by CONFIG_MOST)
  • kernel\trace\blktrace.c
  • block\blk-core.c

User program (MOST/progs/most/)

Build

    1. cd build
    1. ../configure
    1. ./config.most
    1. make
    1. Program(most) is built in build/most/.

Usage

# most [filesystem (EXT4/FAT32)] [partition path] [input file] [output file]
# most EXT4 /dev/block/mmcblk0p1 trace_in.log trace_out.log

Example

1. Run blktrace (for 60 secs)
    # blktrace -d /dev/block/mmcblk0p12 -a complete -a issue -o result -w 60
2. Run android application (for 60 secs)
3. Run blparse
    # blkparse -f "%5T.%9t\t%a\t%d\t%8S\t%4n\t%4p\t%20C\n" -q -i result > result.p
4. Run MOST
    # most EXT4 /dev/block/mmcblk0p12 result.p result.po

2012-08-27, Kisung Lee kisunglee@hanyang.ac.kr

MOST Viewer

Requirement tools

1. python
    # apt-get install python
2. R
    # apt-get install r-base

Usage

# python test2.py [option]

Example

# python test2.py [-g graph_type] [-rw Read or Write] [-t time] [-y y-axis] [-l legend] [-i input] [-o output] [-s size] [-p point]
* graph_type : f(Cumulative Bar Plot-file_type)/ b(Cumulative Bar Plot-block_type)/ t(time_plot+simple bar plot)/ all
* Read or Write : r(read)/ w(write)/ rw(both read and write) 1. time_plot(graph) only 2. rw is default
* time : sec(start):sec(end) # default - whole of the <result.po> data
* y-axis - t(time plot) : s(sector size)/ n(sector number)/ all(default) 
 - b(block type)/f(file type) : s(I/O Size)/ c(I/O Count)/ all(default)
* legend : f(file_type)/ b(block_type) # time_plot(graph) only, not implemented.
* input : # 1. name of the MOST output file(*.po), 2. default : result.po
    3. also setted as directory names : <name>-<time> ex> result.po-Wed,Sep,30,16:08:04,2015
* output # 1. name and location of the graph 2. file extension together
* size : width:height # 1. To control the ratio, size of the Graph file 2. units : inch  3. default is 7:7
* point : c(color)/ s(shape) # 1. time_plot(graph) only, 2. color is default

Manual

https://drive.google.com/file/d/0B_qhp_YDu7dwalI1RWhsLWxXV0k/view?usp=sharing

2016-01-08, Gyeongyeol Choi chl4651@hanyang.ac.kr