summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2017-11-14 11:46:57 -0800
committerXin Li <delphij@google.com>2017-11-14 11:46:57 -0800
commitaa4b44e014004e58343083c4a3cd00112d8d9bfd (patch)
tree43ec0716cbe1de2c26c566038544e3b7f77c316e
parent561958193e86bed5ef67bb6277deddebe3d77bbc (diff)
parentf22d9cd819bf8b21bedba3dedcfa08fe8f91a15e (diff)
downloadextras-aa4b44e014004e58343083c4a3cd00112d8d9bfd.tar.gz
Merge commit 'f22d9cd819bf8b21bedba3dedcfa08fe8f91a15e' into HEAD
Change-Id: I0a0f6a3057951735943b846270c2d445e5cb4c7b
-rwxr-xr-xapp-launcher/app-launcher57
-rw-r--r--ext4_utils/allocate.c6
-rw-r--r--ext4_utils/ext4_crypt_init_extensions.cpp18
-rw-r--r--ext4_utils/make_ext4fs.c7
-rw-r--r--ioblame/Android.mk5
-rw-r--r--ioblame/README225
-rw-r--r--ioblame/ioblame-gmail-launch.example328
-rw-r--r--ioblame/ioblame-gmail-run.example1593
-rwxr-xr-xioblame/ioblame.sh521
-rw-r--r--ioshark/README2
-rw-r--r--ioshark/ioshark_bench.c8
-rw-r--r--ioshark/ioshark_bench_subr.c6
-rw-r--r--tests/bootloader/bootloadertest.py115
-rw-r--r--tests/kernel.config/Android.mk4
14 files changed, 2837 insertions, 58 deletions
diff --git a/app-launcher/app-launcher b/app-launcher/app-launcher
index 703aafa0..94707fbb 100755
--- a/app-launcher/app-launcher
+++ b/app-launcher/app-launcher
@@ -238,6 +238,17 @@ cpufreq_angler () {
done
}
+cpufreq_go() {
+ echo "Setting Governor to performance"
+ adb shell 'echo 0 > /proc/hps/enabled'
+ for i in 0 1 2 3
+ do
+ adb shell "echo 1 > /sys/devices/system/cpu/cpu$i/online"
+ adb shell "echo performance > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor"
+ adb shell "echo 1092000 > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_max_freq"
+ done
+}
+
get_taimen_walleye_devnames () {
# This bit of code required to get the block dev for /system and /vendor
# Suffix can be _a or _b, depending on what the active /system partition is
@@ -297,12 +308,19 @@ get_fugu_devnames () {
system_bdev_set=true
}
-get_volantis_devnames () {
- # Hardcoding all of the mmcblk0 device for now
+dev_name_default_mmc () {
system_block_device=mmcblk0
system_bdev_set=true
}
+get_volantis_devnames () {
+ dev_name_default_mmc
+}
+
+get_go_devnames () {
+ dev_name_default_mmc
+}
+
system_stats_before() {
if [ $system_bdev_set == true ]; then
# Get BEFORE read stats for /system
@@ -415,6 +433,17 @@ launch_phone_apps() {
getstats $BASHPID-youtube-$model YouTube
}
+launch_go_apps() {
+ launch_app com.android.chrome com.google.android.apps.chrome.Main > $BASHPID-chrome-$model
+ getstats $BASHPID-chrome-$model Chrome
+ launch_app com.google.android.gm .ConversationListActivityGmail > $BASHPID-gmail-$model
+ getstats $BASHPID-gmail-$model Gmail
+ launch_app com.google.android.videos .mobile.usecase.home.RootActivity > $BASHPID-movies-$model
+ getstats $BASHPID-movies-$model Movies
+ launch_app com.android.vending com.google.android.finsky.activities.MainActivity > $BASHPID-play-$model
+ getstats $BASHPID-play-$model Play
+}
+
usage() {
echo 'Usage: app-launcher [-c|-v|-s <serial num>] -a|-b|-u num-iterations'
echo 'where num-iterations >= 100'
@@ -497,6 +526,13 @@ echo Found $model Device
system_bdev_set=false
case $model in
+ # Android Go
+ aosp_gobo | full_k37_y33_gms)
+ if [ $user_experience == false ]; then
+ cpufreq_go
+ fi
+ get_go_devnames
+ ;;
taimen | muskie | walleye)
if [ $user_experience == false ]; then
cpufreq_taimen_walleye
@@ -538,11 +574,18 @@ setup
#
# launch each app in turn
#
-if [ $model == "fugu" ]; then
- launch_fugu_apps
-else # Phone Apps
- launch_phone_apps
-fi
+case $model in
+ # Android Go
+ aosp_gobo | full_k37_y33_gms)
+ launch_go_apps
+ ;;
+ fugu)
+ launch_fugu_apps
+ ;;
+ *)
+ launch_phone_apps
+ ;;
+esac
# cleanup
rm $BASHPID*
diff --git a/ext4_utils/allocate.c b/ext4_utils/allocate.c
index e0f662c8..d3a77b0a 100644
--- a/ext4_utils/allocate.c
+++ b/ext4_utils/allocate.c
@@ -231,16 +231,20 @@ static int reserve_blocks(struct block_group_info *bg, u32 bg_num, u32 start, u3
static void free_blocks(struct block_group_info *bg, u32 block, u32 num_blocks)
{
unsigned int i;
+
+ if (num_blocks == 0)
+ return;
for (i = 0; i < num_blocks; i++, block--)
bg->block_bitmap[block / 8] &= ~(1 << (block % 8));
bg->free_blocks += num_blocks;
+ block++;
for (i = bg->chunk_count; i > 0 ;) {
--i;
if (bg->chunks[i].len >= num_blocks && bg->chunks[i].block <= block) {
if (bg->chunks[i].block == block) {
bg->chunks[i].block += num_blocks;
bg->chunks[i].len -= num_blocks;
- } else if (bg->chunks[i].block + bg->chunks[i].len - 1 == block + num_blocks) {
+ } else if (bg->chunks[i].block + bg->chunks[i].len == block + num_blocks) {
bg->chunks[i].len -= num_blocks;
}
break;
diff --git a/ext4_utils/ext4_crypt_init_extensions.cpp b/ext4_utils/ext4_crypt_init_extensions.cpp
index 2bf88012..35a1c219 100644
--- a/ext4_utils/ext4_crypt_init_extensions.cpp
+++ b/ext4_utils/ext4_crypt_init_extensions.cpp
@@ -41,6 +41,8 @@
static const std::string arbitrary_sequence_number = "42";
static const int vold_command_timeout_ms = 60 * 1000;
+static int set_system_de_policy_on(char const* dir);
+
int e4crypt_install_keyring()
{
key_serial_t device_keyring = add_key("keyring", "e4crypt", 0, 0,
@@ -58,11 +60,22 @@ int e4crypt_install_keyring()
int e4crypt_set_directory_policy(const char* dir)
{
+ if (!dir || strncmp(dir, "/data/", 6)) {
+ return 0;
+ }
+
+ // Special-case /data/media/obb per b/64566063
+ if (strcmp(dir, "/data/media/obb") == 0) {
+ // Try to set policy on this directory, but if it is non-empty this may fail.
+ set_system_de_policy_on(dir);
+ return 0;
+ }
+
// Only set policy on first level /data directories
// To make this less restrictive, consider using a policy file.
// However this is overkill for as long as the policy is simply
// to apply a global policy to all /data folders created via makedir
- if (!dir || strncmp(dir, "/data/", 6) || strchr(dir + 6, '/')) {
+ if (strchr(dir + 6, '/')) {
return 0;
}
@@ -83,7 +96,10 @@ int e4crypt_set_directory_policy(const char* dir)
return 0;
}
}
+ return set_system_de_policy_on(dir);
+}
+static int set_system_de_policy_on(char const* dir) {
std::string ref_filename = std::string("/data") + e4crypt_key_ref;
std::string policy;
if (!android::base::ReadFileToString(ref_filename, &policy)) {
diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
index 077899a4..cadf55c1 100644
--- a/ext4_utils/make_ext4fs.c
+++ b/ext4_utils/make_ext4fs.c
@@ -630,6 +630,13 @@ static void extract_base_fs_allocations(const char *directory, const char *mount
int start_block, end_block;
u32 block_file_size;
u32 real_file_block_size;
+ struct stat buf;
+
+ if (lstat(real_file_name, &buf) == -1)
+ critical_error(err_msg);
+
+ if (!S_ISREG(buf.st_mode))
+ continue;
real_file_fd = open(real_file_name, O_RDONLY);
if (real_file_fd == -1) {
diff --git a/ioblame/Android.mk b/ioblame/Android.mk
new file mode 100644
index 00000000..9f981b04
--- /dev/null
+++ b/ioblame/Android.mk
@@ -0,0 +1,5 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_PREBUILT_EXECUTABLES := ioblame.sh
+include $(BUILD_HOST_PREBUILT)
diff --git a/ioblame/README b/ioblame/README
new file mode 100644
index 00000000..0813ff2b
--- /dev/null
+++ b/ioblame/README
@@ -0,0 +1,225 @@
+What is it ?
+----------
+ioblame is a IO profiler. It gives a detailed listing of the list of
+files that running pids are doing IO to (with the aggregate amount of
+read/write to each file). The goal is that using this tool, app
+developers can identify IO heavy paths, and tune them, then
+iteratively run this tool again to measure improvements/IO reduction.
+
+ioblame is implemented as a collection of kernel filesystem
+tracepoints, and a script.
+
+What does the output from ioblame look like ?
+-------------------------------------------
+ioblame gives 2 different views.
+
+File view is the default.
+
+1) File view : For each file, it gives a list of pids that are doing
+IO on that file (it also gives the amount of IO each pid does and
+the aggregate amount of IO done to the file by all pids).
+
+File: /app/Chrome/Chrome.apk
+ Chrome_ChildIOT Reads: 96 KB
+ Chrome_DBThread Reads: 652 KB
+ Chrome_FileUser Reads: 72 KB
+ Chrome_InProcGp Reads: 732 KB
+ Chrome_IOThread Reads: 1396 KB
+ Compositor Reads: 652 KB
+ CookieMonsterBa Reads: 284 KB
+ CrRendererMain Reads: 17012 KB
+ dboxed_process0 Reads: 512 KB
+ JavaBridge Reads: 128 KB
+ ogle.android.gm Reads: 14996 KB
+ WorkerPool/8556 Reads: 408 KB
+ Total Reads: 36940 KB i_size: 71354 KB
+File: /app/Gmail2Light/Gmail2Light.apk
+ AsyncTask_#2 Reads: 24 KB
+ Chrome_IOThread Reads: 68 KB
+ ogle.android.gm Reads: 1440 KB
+ Thread-6 Reads: 8 KB
+ Total Reads: 1540 KB i_size: 9736 KB
+
+And ditto for writes.
+
+To enable PID view, use -v
+
+PID: CrRendererMain
+ /app/Chrome/Chrome.apk Reads: 17012 KB i_size: 71354 KB
+ /etc/fonts.xml Reads: 24 KB i_size: 22 KB
+ /fonts/CarroisGothicSC-Regular.ttf Reads: 40 KB i_size: 39 KB
+ /fonts/ComingSoon.ttf Reads: 60 KB i_size: 57 KB
+ /fonts/CutiveMono.ttf Reads: 68 KB i_size: 67 KB
+ /fonts/DancingScript-Bold.ttf Reads: 116 KB i_size: 112 KB
+ /fonts/DancingScript-Regular.ttf Reads: 116 KB i_size: 113 KB
+ /fonts/DroidSansMono.ttf Reads: 108 KB i_size: 105 KB
+ /fonts/NotoColorEmoji.ttf Reads: 204 KB i_size: 7108 KB
+ /fonts/NotoNaskhArabic-Bold.ttf Reads: 116 KB i_size: 113 KB
+,,,
+ /fonts/NotoSerif-BoldItalic.ttf Reads: 248 KB i_size: 256 KB
+ /fonts/NotoSerif-Bold.ttf Reads: 244 KB i_size: 242 KB
+ /fonts/NotoSerif-Italic.ttf Reads: 244 KB i_size: 243 KB
+ /fonts/NotoSerif-Regular.ttf Reads: 244 KB i_size: 240 KB
+ /fonts/Roboto-BlackItalic.ttf Reads: 256 KB i_size: 322 KB
+ /fonts/Roboto-Black.ttf Reads: 256 KB i_size: 299 KB
+ /fonts/Roboto-BoldItalic.ttf Reads: 256 KB i_size: 324 KB
+ /fonts/RobotoCondensed-BoldItalic.ttf Reads: 256 KB i_size: 322 KB
+ /fonts/RobotoCondensed-Bold.ttf Reads: 256 KB i_size: 296 KB
+ /fonts/RobotoCondensed-Italic.ttf Reads: 256 KB i_size: 321 KB
+ /fonts/RobotoCondensed-LightItalic.ttf Reads: 256 KB i_size: 324 KB
+ /fonts/RobotoCondensed-Light.ttf Reads: 256 KB i_size: 295 KB
+ /fonts/RobotoCondensed-MediumItalic.ttf Reads: 256 KB i_size: 322 KB
+ /fonts/RobotoCondensed-Medium.ttf Reads: 256 KB i_size: 296 KB
+ /fonts/Roboto-LightItalic.ttf Reads: 256 KB i_size: 324 KB
+ /fonts/Roboto-MediumItalic.ttf Reads: 256 KB i_size: 323 KB
+ /fonts/Roboto-Regular.ttf Reads: 88 KB i_size: 298 KB
+ /fonts/Roboto-ThinItalic.ttf Reads: 256 KB i_size: 321 KB
+ /fonts/Roboto-Thin.ttf Reads: 256 KB i_size: 300 KB
+ /lib/libft2.so Reads: 56 KB i_size: 479 KB
+ /lib/libicuuc.so Reads: 88 KB i_size: 1182 KB
+ Total Reads: 32760 KB
+
+And ditto for writes.
+
+For the -p, writepages option, ioblame does not (and cannot) give you
+the app/pid that did the original write (since the write most likely
+happens from a flush thread or VM reclaim). In this mode, we only get
+the pathname of the file and the amount of data written out.
+
+Finally, it reports the total amount of file data IO done by pids and
+the total IO done to the block device. So we can look at IO overheads
+(eg block level prefetching, filesystem metadata overhead etc).
+
+For detailed examples, look at ioblame-gmail-launch.example and
+ioblame-gmail-run.example.
+
+How do I run ioblame ?
+--------------------
+ioblame -r [ I am only interested in reads ]
+ioblame -w [ I am only interested in writes ]
+ioblame -p [ I am only interested in writepage(s) - mmap'ed writes ]
+ioblame -r -w -p [ I am only interested in reads, writes and writepages ]
+and finally, -v adds the PID view
+
+1) The most common way of running ioblame is to start ioblame, then go
+off and launch the app(s) of interest, do interesting stuff with the
+app(s), and when finished with the app, hit ^C ONCE on
+ioblame. Hitting ^C once will cause ioblame to catch the signal, break
+out of the sleep, terminate its tracing, and process the ftraces and
+dump out IO stats for the app.
+
+example :
+
+srmohan0.mtv.corp.google.com> sh ioblame.sh -r -w -p
+Found aosp_gobo Device
+OK to kill sleep when test is done
+^Csignal INT received, killing streaming trace capture
+
+(at this point, run your apps, when done type ^C ONCE) and output will
+appear on stdout.
+
+2) Sometimes, we want to do IO profiling in a different way (instead of
+running something and then hitting ^C on ioblame). For instance, we
+might want to do IO profiling related to the launch of an App. This
+requires you to modify the script slightly, as described in the next
+paragraph.
+
+If you want to do IO profiling related to App launch, you need to modify
+2 functions - prep_to_do_something and do_something. Again examples of
+changes to these functions clarifies things better :
+
+prep_to_do_something() {
+ adb shell "am force-stop com.google.android.gm" # This line I added for example
+ # stops the running app (gmail)
+ adb shell 'echo 3 > /proc/sys/vm/drop_caches'
+ sleep 1
+}
+
+do_something() {
+ # Arrange things so that the first SIGINT will kill the
+ # child process (sleep), but will return to the parent.
+# trap 'catch_sigint' INT
+# echo "OK to kill sleep when test is done"
+# sleep 1d
+ # For the purpose of this example, I commented out the above 3 lines that
+ # make ioblame sleep forever after catching the SIGINT and instead it launches
+ # gmail, waiting for launch to complete. When launch completes, ioblame will
+ # stop tracing, and process the traces
+ adb shell "am start -W -n com.google.android.gm/.ConversationListActivityGmail"
+}
+
+Limitations :
+-----------
+The ioblame kernel tracepoints currently only cover the getpage(s)
+path (so all filesystem reads) and filesystem write() syscalls. There
+are no tracepoints in the putpage(s) paths. This is because when
+putpage(s) is called, we most often cannot tell which thread/pid has
+dirtied the page that is being written out, because the majority of
+putpage(s) happen from the flush threads or from the pageout
+threads. The upshot of this is the mmap'ed writes are not reported by
+ioblame. In practice, while mmap'ed reads are very common, mmap'ed
+writes are infrequent.
+
+Kernel Patches Required :
+-----------------------
+ioblame needs the kernel to be patched with these 3 kernel patches.
+Without these patches, ioblame won't work at all.
+
+commit ae2f6765db98e2fcb99082e336dd8b24e7644620
+Author: Mohan Srinivasan <srmohan@google.com>
+Date: Fri Mar 10 16:08:30 2017 -0800
+
+ ANDROID: Replace spaces by '_' for some android filesystem tracepoints.
+
+ Andoid files frequently have spaces in them, as do cmdline strings.
+ Replace these spaces with '_', so tools that parse these tracepoints
+ don't get terribly confused.
+
+ Change-Id: I1cbbedf5c803aa6a58d9b8b7836e9125683c49d1
+ Signed-off-by: Mohan Srinivasan <srmohan@google.com>
+ (cherry picked from commit 5035d5f0933758dd515327d038e5bef7e40dbaa7)
+
+commit a2a04ea83d2960867324fa059ba1eedc2fc7784e (HEAD -> android-4.4)
+Author: Mohan Srinivasan <srmohan@google.com>
+Date: Fri Feb 3 15:48:03 2017 -0800
+
+ ANDROID: Refactor fs readpage/write tracepoints.
+
+ Refactor the fs readpage/write tracepoints to move the
+ inode->path lookup outside the tracepoint code, and pass a pointer
+ to the path into the tracepoint code instead. This is necessary
+ because the tracepoint code runs non-preemptible. Thanks to
+ Trilok Soni for catching this in 4.4.
+
+ Change-Id: I7486c5947918d155a30c61d6b9cd5027cf8fbe15
+ Signed-off-by: Mohan Srinivasan <srmohan@google.com>
+
+commit 32cbbe59538d2dd0b77822cc27ce32ca487c467d
+Author: Mohan Srinivasan <srmohan@google.com>
+Date: Mon Sep 19 17:33:50 2016 -0700
+
+ ANDROID: fs: FS tracepoints to track IO.
+
+ Adds tracepoints in ext4/f2fs/mpage to track readpages/buffered
+ write()s. This allows us to track files that are being read/written
+ to PIDs.
+
+ Change-Id: I26bd36f933108927d6903da04d8cb42fd9c3ef3d
+ Signed-off-by: Mohan Srinivasan <srmohan@google.com>
+
+The -w (writepages) option requires this additional patch and
+currently only with f2fs.
+
+commit c60bc59c6af4fbdeaf7bbeaebee6b55d9e488324 (HEAD ->
+android-mtk-gobo-3.18)
+Author: Mohan Srinivasan <srmohan@google.com>
+Date: Fri Sep 8 13:53:01 2017 -0700
+
+ Tracepoints in f2fs data writepage(s).
+
+ Tracepoints f2fs writepage(s). This is experimental (for now).
+ Allowing ioblame to track <pathname, amount of data written>
+ for files.
+
+ Signed-off-by: Mohan Srinivasan <srmohan@google.com>
+ Change-Id: I4c76c6f442e0a2c5872225f8113935f9f368cc64
diff --git a/ioblame/ioblame-gmail-launch.example b/ioblame/ioblame-gmail-launch.example
new file mode 100644
index 00000000..6badfd78
--- /dev/null
+++ b/ioblame/ioblame-gmail-launch.example
@@ -0,0 +1,328 @@
+adbd is already running as root
+Found aosp_gobo Device
+Starting: Intent { cmp=com.google.android.gm/.ConversationListActivityGmail }
+Status: ok
+Activity: com.google.android.gm/.ConversationListActivityGmail
+ThisTime: 2067
+TotalTime: 2067
+WaitTime: 2084
+Complete
+Killing adb shell cat /sys/kernel/debug/tracing/trace_pipe
+ioblame.sh: line 179: 70891 Terminated adb shell cat /sys/kernel/debug/tracing/trace_pipe > trace_saved
+
+READS :
+_______
+
+FILE VIEW:
+File: /
+ ogle.android.gm Reads: 4 KB
+ Total Reads: 4 KB i_size: 163840 KB
+File: /app/Gmail2Light/Gmail2Light.apk
+ AsyncTask_#2 Reads: 24 KB
+ ogle.android.gm Reads: 1076 KB
+ Total Reads: 1100 KB i_size: 9736 KB
+File: /bin/am
+ sh Reads: 4 KB
+ Total Reads: 4 KB i_size: 207 bytes
+File: /bin/cmd
+ am Reads: 16 KB
+ cmd Reads: 48 KB
+ Total Reads: 64 KB i_size: 44 KB
+File: /bin/toybox
+ cat Reads: 304 KB
+ sh Reads: 16 KB
+ Total Reads: 320 KB i_size: 319 KB
+File: /data/com.google.android.gm/files/deviceName
+ AsyncTask_#3 Reads: 4 KB
+ Total Reads: 4 KB i_size: 17 bytes
+File: /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 2 KB
+File: /data/com.google.android.gm/shared_prefs/AndroidMail.Main.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 206 bytes
+File: /data/com.google.android.gm/shared_prefs/c9edm_account-1303398453.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 254 bytes
+File: /data/com.google.android.gm/shared_prefs/c9edm_account-2137146394.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 167 bytes
+File: /data/com.google.android.gm/shared_prefs/G6yPrefs.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 191 bytes
+File: /data/com.google.android.gm/shared_prefs/Gmail.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 1 KB
+File: /data/com.google.android.gm/shared_prefs/_has_set_default_values.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 130 bytes
+File: /data/com.google.android.gm/shared_prefs/UnifiedEmail.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 935 bytes
+File: /fonts/Roboto-Medium.ttf
+ ogle.android.gm Reads: 176 KB
+ Total Reads: 176 KB i_size: 299 KB
+File: /framework/arm/boot-android.hidl.base-V1.0-java.vdex
+ ogle.android.gm Reads: 12 KB
+ Total Reads: 12 KB i_size: 11 KB
+File: /framework/arm/boot.art
+ ogle.android.gm Reads: 16 KB
+ Total Reads: 16 KB i_size: 1956 KB
+File: /framework/arm/boot-core-libart.oat
+ ogle.android.gm Reads: 536 KB
+ Total Reads: 536 KB i_size: 3076 KB
+File: /framework/arm/boot-core-libart.vdex
+ ogle.android.gm Reads: 868 KB
+ Total Reads: 868 KB i_size: 3080 KB
+File: /framework/arm/boot-framework.oat
+ AsyncTask_#2 Reads: 24 KB
+ HeapTaskDaemon Reads: 76 KB
+ Jit_thread_pool Reads: 12 KB
+ ogle.android.gm Reads: 1808 KB
+ Total Reads: 1920 KB i_size: 21357 KB
+File: /framework/arm/boot-framework.vdex
+ AsyncTask_#2 Reads: 36 KB
+ EGL_Init Reads: 116 KB
+ Jit_thread_pool Reads: 196 KB
+ ogle.android.gm Reads: 1284 KB
+ Total Reads: 1632 KB i_size: 19304 KB
+File: /framework/arm/boot.oat
+ AsyncTask_#1 Reads: 36 KB
+ ogle.android.gm Reads: 116 KB
+ Total Reads: 152 KB i_size: 7511 KB
+File: /framework/arm/boot-okhttp.oat
+ ogle.android.gm Reads: 108 KB
+ Total Reads: 108 KB i_size: 545 KB
+File: /framework/arm/boot-okhttp.vdex
+ ogle.android.gm Reads: 244 KB
+ Total Reads: 244 KB i_size: 412 KB
+File: /framework/arm/boot-org.apache.http.legacy.boot.vdex
+ AsyncTask_#2 Reads: 88 KB
+ Total Reads: 88 KB i_size: 509 KB
+File: /framework/com.android.location.provider.jar
+ AsyncTask_#3 Reads: 16 KB
+ Total Reads: 16 KB i_size: 12 KB
+File: /framework/com.android.media.remotedisplay.jar
+ AsyncTask_#3 Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /framework/framework-res.apk
+ android.anim Reads: 24 KB
+ ogle.android.gm Reads: 416 KB
+ Total Reads: 440 KB i_size: 18923 KB
+File: /framework/oat/arm/com.android.location.provider.odex
+ AsyncTask_#3 Reads: 12 KB
+ Total Reads: 12 KB i_size: 20 KB
+File: /framework/oat/arm/com.android.media.remotedisplay.odex
+ AsyncTask_#3 Reads: 12 KB
+ Total Reads: 12 KB i_size: 20 KB
+File: /lib/hw/gralloc.mt6737m.so
+ ogle.android.gm Reads: 12 KB
+ Total Reads: 12 KB i_size: 40 KB
+File: /lib/libbacktrace.so
+ cmd Reads: 68 KB
+ Total Reads: 68 KB i_size: 85 KB
+File: /lib/libbase.so
+ cmd Reads: 12 KB
+ Total Reads: 12 KB i_size: 61 KB
+File: /lib/libbinder.so
+ cmd Reads: 240 KB
+ Total Reads: 240 KB i_size: 407 KB
+File: /lib/libcrypto.so
+ cat Reads: 112 KB
+ Total Reads: 112 KB i_size: 689 KB
+File: /lib/liblzma.so
+ cmd Reads: 76 KB
+ Total Reads: 76 KB i_size: 93 KB
+File: /lib/libpackagelistparser.so
+ cat Reads: 8 KB
+ Total Reads: 8 KB i_size: 15 KB
+File: /lib/libpcre2.so
+ cat Reads: 48 KB
+ Total Reads: 48 KB i_size: 92 KB
+File: /lib/libselinux.so
+ cat Reads: 12 KB
+ Total Reads: 12 KB i_size: 75 KB
+File: /lib/libskia.so
+ ogle.android.gm Reads: 116 KB
+ Total Reads: 116 KB i_size: 5578 KB
+File: /lib/libunwind.so
+ cmd Reads: 68 KB
+ Total Reads: 68 KB i_size: 85 KB
+File: /lib/libutils.so
+ cmd Reads: 16 KB
+ Total Reads: 16 KB i_size: 94 KB
+File: /lib/libvndksupport.so
+ cmd Reads: 4 KB
+ Total Reads: 4 KB i_size: 15 KB
+File: /lib/libz.so
+ cat Reads: 20 KB
+ Total Reads: 20 KB i_size: 95 KB
+File: /priv-app/GmsCore/GmsCore.apk
+ AsyncTask_#3 Reads: 148 KB
+ Total Reads: 148 KB i_size: 37870 KB
+File: /user/0
+ ogle.android.gm Reads: 4 KB
+ Total Reads: 4 KB i_size: 10 bytes
+File: /usr/icu/icudt58l.dat
+ ogle.android.gm Reads: 828 KB
+ Total Reads: 828 KB i_size: 22774 KB
+Grand Total File DATA KB Reads 9560
+PID VIEW:
+PID: am
+ /bin/cmd Reads: 16 KB i_size: 44 KB
+ /bin/am Reads: 4 KB i_size: 207 bytes
+ Total Reads: 20 KB
+PID: android.anim
+ /framework/framework-res.apk Reads: 24 KB i_size: 18923 KB
+ Total Reads: 24 KB
+PID: AsyncTask_#1
+ /framework/arm/boot.oat Reads: 36 KB i_size: 7511 KB
+ Total Reads: 36 KB
+PID: AsyncTask_#2
+ /app/Gmail2Light/Gmail2Light.apk Reads: 24 KB i_size: 9736 KB
+ /framework/arm/boot-framework.oat Reads: 24 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 36 KB i_size: 19304 KB
+ /framework/arm/boot-org.apache.http.legacy.boot.vdex Reads: 88 KB i_size: 509 KB
+ Total Reads: 172 KB
+PID: AsyncTask_#3
+ /data/com.google.android.gm/files/deviceName Reads: 4 KB i_size: 17 bytes
+ /framework/com.android.location.provider.jar Reads: 16 KB i_size: 12 KB
+ /framework/com.android.media.remotedisplay.jar Reads: 8 KB i_size: 4 KB
+ /framework/oat/arm/com.android.location.provider.odex Reads: 12 KB i_size: 20 KB
+ /framework/oat/arm/com.android.media.remotedisplay.odex Reads: 12 KB i_size: 20 KB
+ /priv-app/GmsCore/GmsCore.apk Reads: 148 KB i_size: 37870 KB
+ Total Reads: 200 KB
+PID: cat
+ /bin/toybox Reads: 304 KB i_size: 319 KB
+ /lib/libcrypto.so Reads: 112 KB i_size: 689 KB
+ /lib/libpackagelistparser.so Reads: 8 KB i_size: 15 KB
+ /lib/libpcre2.so Reads: 48 KB i_size: 92 KB
+ /lib/libselinux.so Reads: 12 KB i_size: 75 KB
+ /lib/libz.so Reads: 20 KB i_size: 95 KB
+ Total Reads: 504 KB
+PID: cmd
+ /bin/cmd Reads: 48 KB i_size: 44 KB
+ /lib/libbacktrace.so Reads: 68 KB i_size: 85 KB
+ /lib/libbase.so Reads: 12 KB i_size: 61 KB
+ /lib/libbinder.so Reads: 240 KB i_size: 407 KB
+ /lib/liblzma.so Reads: 76 KB i_size: 93 KB
+ /lib/libunwind.so Reads: 68 KB i_size: 85 KB
+ /lib/libutils.so Reads: 16 KB i_size: 94 KB
+ /lib/libvndksupport.so Reads: 4 KB i_size: 15 KB
+ Total Reads: 532 KB
+PID: EGL_Init
+ /framework/arm/boot-framework.vdex Reads: 116 KB i_size: 19304 KB
+ Total Reads: 116 KB
+PID: HeapTaskDaemon
+ /framework/arm/boot-framework.oat Reads: 76 KB i_size: 21357 KB
+ Total Reads: 76 KB
+PID: Jit_thread_pool
+ /framework/arm/boot-framework.oat Reads: 12 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 196 KB i_size: 19304 KB
+ Total Reads: 208 KB
+PID: ogle.android.gm
+ / Reads: 4 KB i_size: 163840 KB
+ /app/Gmail2Light/Gmail2Light.apk Reads: 1076 KB i_size: 9736 KB
+ /fonts/Roboto-Medium.ttf Reads: 176 KB i_size: 299 KB
+ /framework/arm/boot-android.hidl.base-V1.0-java.vdex Reads: 12 KB i_size: 11 KB
+ /framework/arm/boot.art Reads: 16 KB i_size: 1956 KB
+ /framework/arm/boot-core-libart.oat Reads: 536 KB i_size: 3076 KB
+ /framework/arm/boot-core-libart.vdex Reads: 868 KB i_size: 3080 KB
+ /framework/arm/boot-framework.oat Reads: 1808 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 1284 KB i_size: 19304 KB
+ /framework/arm/boot.oat Reads: 116 KB i_size: 7511 KB
+ /framework/arm/boot-okhttp.oat Reads: 108 KB i_size: 545 KB
+ /framework/arm/boot-okhttp.vdex Reads: 244 KB i_size: 412 KB
+ /framework/framework-res.apk Reads: 416 KB i_size: 18923 KB
+ /lib/hw/gralloc.mt6737m.so Reads: 12 KB i_size: 40 KB
+ /lib/libskia.so Reads: 116 KB i_size: 5578 KB
+ /user/0 Reads: 4 KB i_size: 10 bytes
+ /usr/icu/icudt58l.dat Reads: 828 KB i_size: 22774 KB
+ Total Reads: 7624 KB
+PID: sh
+ /bin/am Reads: 4 KB i_size: 207 bytes
+ /bin/toybox Reads: 16 KB i_size: 319 KB
+ Total Reads: 20 KB
+PID: SharedPreferenc
+ /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml Reads: 4 KB i_size: 2 KB
+ /data/com.google.android.gm/shared_prefs/AndroidMail.Main.xml Reads: 4 KB i_size: 206 bytes
+ /data/com.google.android.gm/shared_prefs/c9edm_account-1303398453.xml Reads: 4 KB i_size: 254 bytes
+ /data/com.google.android.gm/shared_prefs/c9edm_account-2137146394.xml Reads: 4 KB i_size: 167 bytes
+ /data/com.google.android.gm/shared_prefs/G6yPrefs.xml Reads: 4 KB i_size: 191 bytes
+ /data/com.google.android.gm/shared_prefs/Gmail.xml Reads: 4 KB i_size: 1 KB
+ /data/com.google.android.gm/shared_prefs/_has_set_default_values.xml Reads: 4 KB i_size: 130 bytes
+ /data/com.google.android.gm/shared_prefs/UnifiedEmail.xml Reads: 4 KB i_size: 935 bytes
+ Total Reads: 32 KB
+Grand Total File DATA KB Reads 9564
+Total (ALL) Read KB mmcblk0 = 23092
+READ DELTA: Total Blockdev Reads KB - Total File Data Reads KB = 13528 KB
+Total (ALL) Read IOs mmcblk0 = 876
+Debug Grand Total KB READ 9544
+
+Writes :
+_______
+
+FILE VIEW:
+File: /data/com.google.android.gm/databases/EmailProvider.db
+ AsyncTask_#2 Writes: 49 KB
+ Total Writes: 49 KB i_size: 8 KB
+File: /data/com.google.android.gm/databases/EmailProvider.db-journal
+ AsyncTask_#2 Writes: 25 KB
+ Total Writes: 25 KB i_size: 8 KB
+File: /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-shm
+ AsyncTask_#2 Writes: 0 KB
+ Total Writes: 0 KB i_size: 4 KB
+File: /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal
+ AsyncTask_#2 Writes: 4 KB
+ SyncAdapterThre Writes: 32 KB
+ Total Writes: 36 KB i_size: 512 KB
+File: /data/com.google.android.gms/databases/playlog.db-wal
+ lowpool[12] Writes: 16 KB
+ Total Writes: 16 KB i_size: 426 KB
+File: /data/com.google.android.gm/shared_prefs/G6yPrefs.xml
+ queued-work-loo Writes: 0 KB
+ Total Writes: 0 KB i_size: 0 bytes
+File: /data/com.google.android.gm/shared_prefs/MailAppProvider.xml
+ ogle.android.gm Writes: 5 KB
+ Total Writes: 5 KB i_size: 4 KB
+File: /data/com.google.android.gm/shared_prefs/SmartreplyEvents-android.smoke.fast@gmail.com.xml
+ ogle.android.gm Writes: 0 KB
+ Total Writes: 0 KB i_size: 0 bytes
+File: /system/dropbox/drop52.tmp
+ Binder580_3 Writes: 0 KB
+ Total Writes: 0 KB i_size: 0 bytes
+File: /system/users/0/settings_secure.xml
+ SettingsProvide Writes: 12 KB
+ Total Writes: 12 KB i_size: 8 KB
+Grand Total File DATA KB Writes 143
+PID VIEW:
+PID: AsyncTask_#2
+ /data/com.google.android.gm/databases/EmailProvider.db Writes: 49 KB i_size: 8 KB
+ /data/com.google.android.gm/databases/EmailProvider.db-journal Writes: 25 KB i_size: 8 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-shm Writes: 0 KB i_size: 4 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 4 KB i_size: 512 KB
+ Total Writes: 78 KB
+PID: Binder580_3
+ /system/dropbox/drop52.tmp Writes: 0 KB i_size: 0 bytes
+ Total Writes: 0 KB
+PID: lowpool[12]
+ /data/com.google.android.gms/databases/playlog.db-wal Writes: 16 KB i_size: 426 KB
+ Total Writes: 16 KB
+PID: ogle.android.gm
+ /data/com.google.android.gm/shared_prefs/MailAppProvider.xml Writes: 5 KB i_size: 4 KB
+ /data/com.google.android.gm/shared_prefs/SmartreplyEvents-android.smoke.fast@gmail.com.xml Writes: 0 KB i_size: 0 bytes
+ Total Writes: 5 KB
+PID: queued-work-loo
+ /data/com.google.android.gm/shared_prefs/G6yPrefs.xml Writes: 0 KB i_size: 0 bytes
+ Total Writes: 0 KB
+PID: SettingsProvide
+ /system/users/0/settings_secure.xml Writes: 12 KB i_size: 8 KB
+ Total Writes: 12 KB
+PID: SyncAdapterThre
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 32 KB i_size: 512 KB
+ Total Writes: 32 KB
+Grand Total File DATA KB Writes 143
+Total (ALL) Write KB mmcblk0 = 128
+WRITE DELTA: Total Blockdev Writes KB - Total File Data Writes KB = -15 KB
+Total (ALL) Write IOs mmcblk0 = 37
+Debug Grand Total KB WRITTEN 120
diff --git a/ioblame/ioblame-gmail-run.example b/ioblame/ioblame-gmail-run.example
new file mode 100644
index 00000000..72e2c67c
--- /dev/null
+++ b/ioblame/ioblame-gmail-run.example
@@ -0,0 +1,1593 @@
+adbd is already running as root
+Found aosp_gobo Device
+OK to kill sleep when test is done
+signal INT received, killing streaming trace capture
+
+READS :
+_______
+
+FILE VIEW:
+File: /
+ ogle.android.gm Reads: 4 KB
+ Total Reads: 4 KB i_size: 163840 KB
+File: /app/Chrome/Chrome.apk
+ Chrome_ChildIOT Reads: 96 KB
+ Chrome_DBThread Reads: 652 KB
+ Chrome_FileUser Reads: 72 KB
+ Chrome_InProcGp Reads: 732 KB
+ Chrome_IOThread Reads: 1396 KB
+ Compositor Reads: 652 KB
+ CookieMonsterBa Reads: 284 KB
+ CrRendererMain Reads: 17012 KB
+ dboxed_process0 Reads: 512 KB
+ JavaBridge Reads: 128 KB
+ ogle.android.gm Reads: 14996 KB
+ WorkerPool/8556 Reads: 408 KB
+ Total Reads: 36940 KB i_size: 71354 KB
+File: /app/Gmail2Light/Gmail2Light.apk
+ AsyncTask_#2 Reads: 24 KB
+ Chrome_IOThread Reads: 68 KB
+ ogle.android.gm Reads: 1440 KB
+ Thread-6 Reads: 8 KB
+ Total Reads: 1540 KB i_size: 9736 KB
+File: /bin/toybox
+ cat Reads: 304 KB
+ sh Reads: 16 KB
+ Total Reads: 320 KB i_size: 319 KB
+File: /data/com.google.android.gm/app_webview/GPUCache/index
+ Chrome_CacheThr Reads: 4 KB
+ Total Reads: 4 KB i_size: 24 bytes
+File: /data/com.google.android.gm/app_webview/metrics_guid
+ Chrome_FileThre Reads: 4 KB
+ Total Reads: 4 KB i_size: 36 bytes
+File: /data/com.google.android.gm/files/deviceName
+ AsyncTask_#3 Reads: 4 KB
+ Total Reads: 4 KB i_size: 17 bytes
+File: /data/com.google.android.gm/files/gaClientId
+ GAThread Reads: 4 KB
+ Total Reads: 4 KB i_size: 36 bytes
+File: /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 2 KB
+File: /data/com.google.android.gm/shared_prefs/AndroidMail.Main.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 206 bytes
+File: /data/com.google.android.gm/shared_prefs/c9edm_account-1303398453.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 254 bytes
+File: /data/com.google.android.gm/shared_prefs/c9edm_account-2137146394.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 167 bytes
+File: /data/com.google.android.gm/shared_prefs/Folder-android.smoke.fast@gmail.com-^sq_ig_i_personal.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 402 bytes
+File: /data/com.google.android.gm/shared_prefs/G6yPrefs.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 191 bytes
+File: /data/com.google.android.gm/shared_prefs/Gmail.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 1 KB
+File: /data/com.google.android.gm/shared_prefs/_has_set_default_values.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 130 bytes
+File: /data/com.google.android.gm/shared_prefs/Impressions-android.smoke.fast@gmail.com.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 65 bytes
+File: /data/com.google.android.gm/shared_prefs/SmartreplyEvents-android.smoke.fast@gmail.com.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 65 bytes
+File: /data/com.google.android.gm/shared_prefs/UnifiedEmail.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 935 bytes
+File: /data/com.google.android.gm/shared_prefs/WebViewChromiumPrefs.xml
+ SharedPreferenc Reads: 4 KB
+ Total Reads: 4 KB i_size: 127 bytes
+File: /data/com.google.android.gsf/files/signatures/sig-281206196
+ Binder1550_5 Reads: 4 KB
+ Total Reads: 4 KB i_size: 1 KB
+File: /etc/fonts.xml
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 22 KB
+File: /etc/hosts
+ netd Reads: 4 KB
+ Total Reads: 4 KB i_size: 56 bytes
+File: /etc/security/cacerts/7999be0d.0
+ NetworkCursor_F Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/CarroisGothicSC-Regular.ttf
+ CrRendererMain Reads: 40 KB
+ Total Reads: 40 KB i_size: 39 KB
+File: /fonts/ComingSoon.ttf
+ CrRendererMain Reads: 60 KB
+ Total Reads: 60 KB i_size: 57 KB
+File: /fonts/CutiveMono.ttf
+ CrRendererMain Reads: 68 KB
+ Total Reads: 68 KB i_size: 67 KB
+File: /fonts/DancingScript-Bold.ttf
+ CrRendererMain Reads: 116 KB
+ Total Reads: 116 KB i_size: 112 KB
+File: /fonts/DancingScript-Regular.ttf
+ CrRendererMain Reads: 116 KB
+ Total Reads: 116 KB i_size: 113 KB
+File: /fonts/DroidSansMono.ttf
+ CrRendererMain Reads: 108 KB
+ Total Reads: 108 KB i_size: 105 KB
+File: /fonts/NotoColorEmoji.ttf
+ CrRendererMain Reads: 204 KB
+ Total Reads: 204 KB i_size: 7108 KB
+File: /fonts/NotoNaskhArabic-Bold.ttf
+ CrRendererMain Reads: 116 KB
+ Total Reads: 116 KB i_size: 113 KB
+File: /fonts/NotoNaskhArabic-Regular.ttf
+ CrRendererMain Reads: 116 KB
+ Total Reads: 116 KB i_size: 113 KB
+File: /fonts/NotoNaskhArabicUI-Bold.ttf
+ CrRendererMain Reads: 120 KB
+ Total Reads: 120 KB i_size: 116 KB
+File: /fonts/NotoNaskhArabicUI-Regular.ttf
+ CrRendererMain Reads: 120 KB
+ Total Reads: 120 KB i_size: 117 KB
+File: /fonts/NotoSansAdlam-Regular.ttf
+ CrRendererMain Reads: 52 KB
+ Total Reads: 52 KB i_size: 49 KB
+File: /fonts/NotoSansArmenian-Bold.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 15 KB
+File: /fonts/NotoSansArmenian-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 15 KB
+File: /fonts/NotoSansAvestan-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 11 KB
+File: /fonts/NotoSansBalinese-Regular.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 31 KB
+File: /fonts/NotoSansBamum-Regular.ttf
+ CrRendererMain Reads: 132 KB
+ Total Reads: 132 KB i_size: 130 KB
+File: /fonts/NotoSansBatak-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 12 KB
+File: /fonts/NotoSansBengali-Bold.ttf
+ CrRendererMain Reads: 100 KB
+ Total Reads: 100 KB i_size: 96 KB
+File: /fonts/NotoSansBengali-Regular.ttf
+ CrRendererMain Reads: 100 KB
+ Total Reads: 100 KB i_size: 99 KB
+File: /fonts/NotoSansBengaliUI-Bold.ttf
+ CrRendererMain Reads: 104 KB
+ Total Reads: 104 KB i_size: 101 KB
+File: /fonts/NotoSansBengaliUI-Regular.ttf
+ CrRendererMain Reads: 108 KB
+ Total Reads: 108 KB i_size: 104 KB
+File: /fonts/NotoSansBrahmi-Regular.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 23 KB
+File: /fonts/NotoSansBuginese-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansBuhid-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/NotoSansCanadianAboriginal-Regular.ttf
+ CrRendererMain Reads: 48 KB
+ Total Reads: 48 KB i_size: 45 KB
+File: /fonts/NotoSansCarian-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 6 KB
+File: /fonts/NotoSansCham-Bold.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 21 KB
+File: /fonts/NotoSansCham-Regular.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 21 KB
+File: /fonts/NotoSansCherokee-Regular.ttf
+ CrRendererMain Reads: 60 KB
+ Total Reads: 60 KB i_size: 56 KB
+File: /fonts/NotoSansCJK-Regular.ttc
+ CrRendererMain Reads: 2380 KB
+ Total Reads: 2380 KB i_size: 18236 KB
+File: /fonts/NotoSansCoptic-Regular.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 21 KB
+File: /fonts/NotoSansCuneiform-Regular.ttf
+ CrRendererMain Reads: 200 KB
+ Total Reads: 200 KB i_size: 488 KB
+File: /fonts/NotoSansCypriot-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansDeseret-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 10 KB
+File: /fonts/NotoSansDevanagari-Bold.ttf
+ CrRendererMain Reads: 128 KB
+ Total Reads: 128 KB i_size: 128 KB
+File: /fonts/NotoSansDevanagari-Regular.ttf
+ CrRendererMain Reads: 128 KB
+ Total Reads: 128 KB i_size: 132 KB
+File: /fonts/NotoSansDevanagariUI-Bold.ttf
+ CrRendererMain Reads: 120 KB
+ Total Reads: 120 KB i_size: 118 KB
+File: /fonts/NotoSansDevanagariUI-Regular.ttf
+ CrRendererMain Reads: 124 KB
+ Total Reads: 124 KB i_size: 122 KB
+File: /fonts/NotoSansEgyptianHieroglyphs-Regular.ttf
+ CrRendererMain Reads: 200 KB
+ Total Reads: 200 KB i_size: 493 KB
+File: /fonts/NotoSansEthiopic-Bold.ttf
+ CrRendererMain Reads: 128 KB
+ Total Reads: 128 KB i_size: 140 KB
+File: /fonts/NotoSansEthiopic-Regular.ttf
+ CrRendererMain Reads: 128 KB
+ Total Reads: 128 KB i_size: 139 KB
+File: /fonts/NotoSansGeorgian-Bold.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 19 KB
+File: /fonts/NotoSansGeorgian-Regular.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 19 KB
+File: /fonts/NotoSansGlagolitic-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 15 KB
+File: /fonts/NotoSansGothic-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansGujarati-Bold.ttf
+ CrRendererMain Reads: 116 KB
+ Total Reads: 116 KB i_size: 114 KB
+File: /fonts/NotoSansGujarati-Regular.ttf
+ CrRendererMain Reads: 120 KB
+ Total Reads: 120 KB i_size: 117 KB
+File: /fonts/NotoSansGujaratiUI-Bold.ttf
+ CrRendererMain Reads: 112 KB
+ Total Reads: 112 KB i_size: 111 KB
+File: /fonts/NotoSansGujaratiUI-Regular.ttf
+ CrRendererMain Reads: 116 KB
+ Total Reads: 116 KB i_size: 114 KB
+File: /fonts/NotoSansGurmukhi-Bold.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 30 KB
+File: /fonts/NotoSansGurmukhi-Regular.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 31 KB
+File: /fonts/NotoSansGurmukhiUI-Bold.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 31 KB
+File: /fonts/NotoSansGurmukhiUI-Regular.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 31 KB
+File: /fonts/NotoSansHanunoo-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 6 KB
+File: /fonts/NotoSansHebrew-Bold.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 17 KB
+File: /fonts/NotoSansHebrew-Regular.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 16 KB
+File: /fonts/NotoSansImperialAramaic-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansInscriptionalPahlavi-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansInscriptionalParthian-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansJavanese-Regular.ttf
+ CrRendererMain Reads: 40 KB
+ Total Reads: 40 KB i_size: 36 KB
+File: /fonts/NotoSansKaithi-Regular.ttf
+ CrRendererMain Reads: 60 KB
+ Total Reads: 60 KB i_size: 58 KB
+File: /fonts/NotoSansKannada-Bold.ttf
+ CrRendererMain Reads: 80 KB
+ Total Reads: 80 KB i_size: 78 KB
+File: /fonts/NotoSansKannada-Regular.ttf
+ CrRendererMain Reads: 84 KB
+ Total Reads: 84 KB i_size: 80 KB
+File: /fonts/NotoSansKannadaUI-Bold.ttf
+ CrRendererMain Reads: 80 KB
+ Total Reads: 80 KB i_size: 77 KB
+File: /fonts/NotoSansKannadaUI-Regular.ttf
+ CrRendererMain Reads: 80 KB
+ Total Reads: 80 KB i_size: 79 KB
+File: /fonts/NotoSansKayahLi-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansKharoshthi-Regular.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 21 KB
+File: /fonts/NotoSansKhmerUI-Bold.ttf
+ CrRendererMain Reads: 36 KB
+ Total Reads: 36 KB i_size: 35 KB
+File: /fonts/NotoSansKhmerUI-Regular.ttf
+ CrRendererMain Reads: 40 KB
+ Total Reads: 40 KB i_size: 37 KB
+File: /fonts/NotoSansKhmer-VF.ttf
+ CrRendererMain Reads: 128 KB
+ Total Reads: 128 KB i_size: 140 KB
+File: /fonts/NotoSansLao-Bold.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 28 KB
+File: /fonts/NotoSansLao-Regular.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 29 KB
+File: /fonts/NotoSansLaoUI-Bold.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 28 KB
+File: /fonts/NotoSansLaoUI-Regular.ttf
+ CrRendererMain Reads: 32 KB
+ Total Reads: 32 KB i_size: 29 KB
+File: /fonts/NotoSansLepcha-Regular.ttf
+ CrRendererMain Reads: 100 KB
+ Total Reads: 100 KB i_size: 99 KB
+File: /fonts/NotoSansLimbu-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 10 KB
+File: /fonts/NotoSansLinearB-Regular.ttf
+ CrRendererMain Reads: 60 KB
+ Total Reads: 60 KB i_size: 56 KB
+File: /fonts/NotoSansLisu-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansLycian-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/NotoSansLydian-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/NotoSansMalayalam-Bold.ttf
+ CrRendererMain Reads: 56 KB
+ Total Reads: 56 KB i_size: 55 KB
+File: /fonts/NotoSansMalayalam-Regular.ttf
+ CrRendererMain Reads: 56 KB
+ Total Reads: 56 KB i_size: 55 KB
+File: /fonts/NotoSansMalayalamUI-Bold.ttf
+ CrRendererMain Reads: 56 KB
+ Total Reads: 56 KB i_size: 55 KB
+File: /fonts/NotoSansMalayalamUI-Regular.ttf
+ CrRendererMain Reads: 56 KB
+ Total Reads: 56 KB i_size: 55 KB
+File: /fonts/NotoSansMandaic-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 14 KB
+File: /fonts/NotoSansMeeteiMayek-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 13 KB
+File: /fonts/NotoSansMongolian-Regular.ttf
+ CrRendererMain Reads: 112 KB
+ Total Reads: 112 KB i_size: 110 KB
+File: /fonts/NotoSansMyanmar-Bold.ttf
+ CrRendererMain Reads: 108 KB
+ Total Reads: 108 KB i_size: 106 KB
+File: /fonts/NotoSansMyanmar-Regular.ttf
+ CrRendererMain Reads: 108 KB
+ Total Reads: 108 KB i_size: 105 KB
+File: /fonts/NotoSansMyanmarUI-Bold.ttf
+ CrRendererMain Reads: 104 KB
+ Total Reads: 104 KB i_size: 102 KB
+File: /fonts/NotoSansMyanmarUI-Regular.ttf
+ CrRendererMain Reads: 104 KB
+ Total Reads: 104 KB i_size: 100 KB
+File: /fonts/NotoSansNewTaiLue-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 14 KB
+File: /fonts/NotoSansNKo-Regular.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 18 KB
+File: /fonts/NotoSansOgham-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/NotoSansOlChiki-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansOldItalic-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/NotoSansOldPersian-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 12 KB
+File: /fonts/NotoSansOldSouthArabian-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /fonts/NotoSansOldTurkic-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansOriya-Bold.ttf
+ CrRendererMain Reads: 84 KB
+ Total Reads: 84 KB i_size: 82 KB
+File: /fonts/NotoSansOriya-Regular.ttf
+ CrRendererMain Reads: 84 KB
+ Total Reads: 84 KB i_size: 83 KB
+File: /fonts/NotoSansOriyaUI-Bold.ttf
+ CrRendererMain Reads: 80 KB
+ Total Reads: 80 KB i_size: 78 KB
+File: /fonts/NotoSansOriyaUI-Regular.ttf
+ CrRendererMain Reads: 80 KB
+ Total Reads: 80 KB i_size: 78 KB
+File: /fonts/NotoSansOsmanya-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 7 KB
+File: /fonts/NotoSansPhagsPa-Regular.ttf
+ CrRendererMain Reads: 28 KB
+ Total Reads: 28 KB i_size: 27 KB
+File: /fonts/NotoSansPhoenician-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansRejang-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 6 KB
+File: /fonts/NotoSansRunic-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 8 KB
+File: /fonts/NotoSansSamaritan-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 9 KB
+File: /fonts/NotoSansSaurashtra-Regular.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 18 KB
+File: /fonts/NotoSansShavian-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansSinhala-Bold.ttf
+ CrRendererMain Reads: 152 KB
+ Total Reads: 152 KB i_size: 149 KB
+File: /fonts/NotoSansSinhala-Regular.ttf
+ CrRendererMain Reads: 160 KB
+ Total Reads: 160 KB i_size: 156 KB
+File: /fonts/NotoSansSundanese-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 10 KB
+File: /fonts/NotoSansSylotiNagri-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 14 KB
+File: /fonts/NotoSansSymbols-Regular-Subsetted2.ttf
+ CrRendererMain Reads: 36 KB
+ Total Reads: 36 KB i_size: 32 KB
+File: /fonts/NotoSansSymbols-Regular-Subsetted.ttf
+ CrRendererMain Reads: 208 KB
+ Total Reads: 208 KB i_size: 692 KB
+File: /fonts/NotoSansSyriacEastern-Regular.ttf
+ CrRendererMain Reads: 52 KB
+ Total Reads: 52 KB i_size: 48 KB
+File: /fonts/NotoSansSyriacEstrangela-Regular.ttf
+ CrRendererMain Reads: 48 KB
+ Total Reads: 48 KB i_size: 45 KB
+File: /fonts/NotoSansSyriacWestern-Regular.ttf
+ CrRendererMain Reads: 52 KB
+ Total Reads: 52 KB i_size: 51 KB
+File: /fonts/NotoSansTagalog-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansTagbanwa-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 5 KB
+File: /fonts/NotoSansTaiLe-Regular.ttf
+ CrRendererMain Reads: 12 KB
+ Total Reads: 12 KB i_size: 9 KB
+File: /fonts/NotoSansTaiTham-Regular.ttf
+ CrRendererMain Reads: 48 KB
+ Total Reads: 48 KB i_size: 46 KB
+File: /fonts/NotoSansTaiViet-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 15 KB
+File: /fonts/NotoSansTamil-Bold.ttf
+ CrRendererMain Reads: 36 KB
+ Total Reads: 36 KB i_size: 33 KB
+File: /fonts/NotoSansTamil-Regular.ttf
+ CrRendererMain Reads: 36 KB
+ Total Reads: 36 KB i_size: 33 KB
+File: /fonts/NotoSansTamilUI-Bold.ttf
+ CrRendererMain Reads: 36 KB
+ Total Reads: 36 KB i_size: 33 KB
+File: /fonts/NotoSansTamilUI-Regular.ttf
+ CrRendererMain Reads: 36 KB
+ Total Reads: 36 KB i_size: 33 KB
+File: /fonts/NotoSansTelugu-Bold.ttf
+ CrRendererMain Reads: 108 KB
+ Total Reads: 108 KB i_size: 107 KB
+File: /fonts/NotoSansTelugu-Regular.ttf
+ CrRendererMain Reads: 112 KB
+ Total Reads: 112 KB i_size: 108 KB
+File: /fonts/NotoSansTeluguUI-Bold.ttf
+ CrRendererMain Reads: 112 KB
+ Total Reads: 112 KB i_size: 109 KB
+File: /fonts/NotoSansTeluguUI-Regular.ttf
+ CrRendererMain Reads: 112 KB
+ Total Reads: 112 KB i_size: 109 KB
+File: /fonts/NotoSansThaana-Bold.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 14 KB
+File: /fonts/NotoSansThaana-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 14 KB
+File: /fonts/NotoSansThai-Bold.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 17 KB
+File: /fonts/NotoSansThai-Regular.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 20 KB
+File: /fonts/NotoSansThaiUI-Bold.ttf
+ CrRendererMain Reads: 20 KB
+ Total Reads: 20 KB i_size: 18 KB
+File: /fonts/NotoSansThaiUI-Regular.ttf
+ CrRendererMain Reads: 24 KB
+ Total Reads: 24 KB i_size: 21 KB
+File: /fonts/NotoSansTibetan-Bold.ttf
+ CrRendererMain Reads: 244 KB
+ Total Reads: 244 KB i_size: 364 KB
+File: /fonts/NotoSansTibetan-Regular.ttf
+ CrRendererMain Reads: 252 KB
+ Total Reads: 252 KB i_size: 392 KB
+File: /fonts/NotoSansTifinagh-Regular.ttf
+ CrRendererMain Reads: 16 KB
+ Total Reads: 16 KB i_size: 13 KB
+File: /fonts/NotoSansUgaritic-Regular.ttf
+ CrRendererMain Reads: 8 KB
+ Total Reads: 8 KB i_size: 6 KB
+File: /fonts/NotoSansVai-Regular.ttf
+ CrRendererMain Reads: 64 KB
+ Total Reads: 64 KB i_size: 62 KB
+File: /fonts/NotoSansYi-Regular.ttf
+ CrRendererMain Reads: 124 KB
+ Total Reads: 124 KB i_size: 120 KB
+File: /fonts/NotoSerif-BoldItalic.ttf
+ CrRendererMain Reads: 248 KB
+ Total Reads: 248 KB i_size: 256 KB
+File: /fonts/NotoSerif-Bold.ttf
+ CrRendererMain Reads: 244 KB
+ Total Reads: 244 KB i_size: 242 KB
+File: /fonts/NotoSerif-Italic.ttf
+ CrRendererMain Reads: 244 KB
+ Total Reads: 244 KB i_size: 243 KB
+File: /fonts/NotoSerif-Regular.ttf
+ CrRendererMain Reads: 244 KB
+ Total Reads: 244 KB i_size: 240 KB
+File: /fonts/Roboto-BlackItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 322 KB
+File: /fonts/Roboto-Black.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 299 KB
+File: /fonts/Roboto-BoldItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 324 KB
+File: /fonts/Roboto-Bold.ttf
+ ogle.android.gm Reads: 276 KB
+ Total Reads: 276 KB i_size: 299 KB
+File: /fonts/RobotoCondensed-BoldItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 322 KB
+File: /fonts/RobotoCondensed-Bold.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 296 KB
+File: /fonts/RobotoCondensed-Italic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 321 KB
+File: /fonts/RobotoCondensed-LightItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 324 KB
+File: /fonts/RobotoCondensed-Light.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 295 KB
+File: /fonts/RobotoCondensed-MediumItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 322 KB
+File: /fonts/RobotoCondensed-Medium.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 296 KB
+File: /fonts/Roboto-LightItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 324 KB
+File: /fonts/Roboto-Light.ttf
+ ogle.android.gm Reads: 164 KB
+ Total Reads: 164 KB i_size: 299 KB
+File: /fonts/Roboto-MediumItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 323 KB
+File: /fonts/Roboto-Medium.ttf
+ ogle.android.gm Reads: 176 KB
+ Total Reads: 176 KB i_size: 299 KB
+File: /fonts/Roboto-Regular.ttf
+ CrRendererMain Reads: 88 KB
+ ogle.android.gm Reads: 88 KB
+ Total Reads: 176 KB i_size: 298 KB
+File: /fonts/Roboto-ThinItalic.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 321 KB
+File: /fonts/Roboto-Thin.ttf
+ CrRendererMain Reads: 256 KB
+ Total Reads: 256 KB i_size: 300 KB
+File: /framework/android.hidl.base-V1.0-java.jar
+ dboxed_process0 Reads: 8 KB
+ Total Reads: 8 KB i_size: 6 KB
+File: /framework/android.hidl.manager-V1.0-java.jar
+ dboxed_process0 Reads: 12 KB
+ Total Reads: 12 KB i_size: 9 KB
+File: /framework/apache-xml.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 542 KB
+File: /framework/arm/boot-android.hidl.base-V1.0-java.vdex
+ ogle.android.gm Reads: 12 KB
+ Total Reads: 12 KB i_size: 11 KB
+File: /framework/arm/boot.art
+ ogle.android.gm Reads: 16 KB
+ Total Reads: 16 KB i_size: 1956 KB
+File: /framework/arm/boot-conscrypt.vdex
+ dboxed_process0 Reads: 80 KB
+ Total Reads: 80 KB i_size: 374 KB
+File: /framework/arm/boot-core-libart.oat
+ Jit_thread_pool Reads: 28 KB
+ ogle.android.gm Reads: 1136 KB
+ Total Reads: 1164 KB i_size: 3076 KB
+File: /framework/arm/boot-core-libart.vdex
+ Jit_thread_pool Reads: 80 KB
+ ogle.android.gm Reads: 1332 KB
+ Total Reads: 1412 KB i_size: 3080 KB
+File: /framework/arm/boot-ext.oat
+ AsyncTask_#1 Reads: 156 KB
+ Total Reads: 156 KB i_size: 306 KB
+File: /framework/arm/boot-ext.vdex
+ AsyncTask_#1 Reads: 396 KB
+ Total Reads: 396 KB i_size: 1056 KB
+File: /framework/arm/boot-framework.oat
+ AsyncTask_#2 Reads: 116 KB
+ Binder8493_1 Reads: 24 KB
+ Chrome_InProcGp Reads: 196 KB
+ dboxed_process0 Reads: 280 KB
+ droid.launcher3 Reads: 112 KB
+ HeapTaskDaemon Reads: 132 KB
+ Jit_thread_pool Reads: 48 KB
+ NetworkCursor_F Reads: 164 KB
+ ogle.android.gm Reads: 2732 KB
+ Thread-9 Reads: 72 KB
+ Total Reads: 3876 KB i_size: 21357 KB
+File: /framework/arm/boot-framework.vdex
+ AsyncTask_#2 Reads: 40 KB
+ Binder8493_1 Reads: 72 KB
+ Chrome_InProcGp Reads: 300 KB
+ dboxed_process0 Reads: 24 KB
+ droid.launcher3 Reads: 116 KB
+ EGL_Init Reads: 116 KB
+ Jit_thread_pool Reads: 692 KB
+ NetworkCursor_F Reads: 208 KB
+ ogle.android.gm Reads: 2760 KB
+ Thread-9 Reads: 96 KB
+ Total Reads: 4424 KB i_size: 19304 KB
+File: /framework/arm/boot.oat
+ AsyncTask_#1 Reads: 104 KB
+ Chrome_InProcGp Reads: 12 KB
+ Chrome_IOThread Reads: 44 KB
+ dboxed_process0 Reads: 160 KB
+ GAThread Reads: 32 KB
+ NetworkCursor_F Reads: 44 KB
+ ogle.android.gm Reads: 320 KB
+ Thread-4 Reads: 96 KB
+ Total Reads: 812 KB i_size: 7511 KB
+File: /framework/arm/boot-okhttp.oat
+ ogle.android.gm Reads: 108 KB
+ Total Reads: 108 KB i_size: 545 KB
+File: /framework/arm/boot-okhttp.vdex
+ ogle.android.gm Reads: 244 KB
+ Total Reads: 244 KB i_size: 412 KB
+File: /framework/arm/boot-org.apache.http.legacy.boot.oat
+ NetworkCursor_F Reads: 280 KB
+ Total Reads: 280 KB i_size: 576 KB
+File: /framework/arm/boot-org.apache.http.legacy.boot.vdex
+ AsyncTask_#1 Reads: 88 KB
+ NetworkCursor_F Reads: 72 KB
+ Total Reads: 160 KB i_size: 509 KB
+File: /framework/arm/boot.vdex
+ AsyncTask_#1 Reads: 60 KB
+ dboxed_process0 Reads: 392 KB
+ Jit_thread_pool Reads: 356 KB
+ Total Reads: 808 KB i_size: 5144 KB
+File: /framework/bouncycastle.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 531 KB
+File: /framework/com.android.location.provider.jar
+ AsyncTask_#3 Reads: 16 KB
+ Total Reads: 16 KB i_size: 12 KB
+File: /framework/com.android.media.remotedisplay.jar
+ AsyncTask_#3 Reads: 8 KB
+ Total Reads: 8 KB i_size: 4 KB
+File: /framework/conscrypt.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 153 KB
+File: /framework/core-libart.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 1363 KB
+File: /framework/core-oj.jar
+ dboxed_process0 Reads: 24 KB
+ Total Reads: 24 KB i_size: 2214 KB
+File: /framework/ext.jar
+ dboxed_process0 Reads: 192 KB
+ Total Reads: 192 KB i_size: 2142 KB
+File: /framework/framework.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 7342 KB
+File: /framework/framework-res.apk
+ android.anim Reads: 16 KB
+ dboxed_process0 Reads: 496 KB
+ ogle.android.gm Reads: 720 KB
+ Total Reads: 1232 KB i_size: 18923 KB
+File: /framework/ims-common.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 46 KB
+File: /framework/legacy-test.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 16 KB
+File: /framework/oat/arm/com.android.location.provider.odex
+ AsyncTask_#3 Reads: 12 KB
+ Total Reads: 12 KB i_size: 20 KB
+File: /framework/oat/arm/com.android.media.remotedisplay.odex
+ AsyncTask_#3 Reads: 12 KB
+ Total Reads: 12 KB i_size: 20 KB
+File: /framework/okhttp.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 180 KB
+File: /framework/org.apache.http.legacy.boot.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 213 KB
+File: /framework/telephony-common.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 938 KB
+File: /framework/voip-common.jar
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 66 KB
+File: /lib/android.hardware.configstore@1.0.so
+ dboxed_process0 Reads: 112 KB
+ Total Reads: 112 KB i_size: 132 KB
+File: /lib/android.hardware.graphics.bufferqueue@1.0.so
+ dboxed_process0 Reads: 128 KB
+ Total Reads: 128 KB i_size: 223 KB
+File: /lib/android.hardware.renderscript@1.0.so
+ dboxed_process0 Reads: 124 KB
+ Total Reads: 124 KB i_size: 332 KB
+File: /lib/android.hidl.token@1.0.so
+ dboxed_process0 Reads: 80 KB
+ Total Reads: 80 KB i_size: 99 KB
+File: /lib/android.hidl.token@1.0-utils.so
+ dboxed_process0 Reads: 20 KB
+ Total Reads: 20 KB i_size: 20 KB
+File: /lib/egl/libGLES_mali.so
+ Chrome_InProcGp Reads: 220 KB
+ Total Reads: 220 KB i_size: 4454 KB
+File: /lib/hw/gralloc.mt6737m.so
+ ogle.android.gm Reads: 12 KB
+ Total Reads: 12 KB i_size: 40 KB
+File: /lib/libaaudio.so
+ dboxed_process0 Reads: 88 KB
+ Total Reads: 88 KB i_size: 115 KB
+File: /lib/libandroid_runtime.so
+ dboxed_process0 Reads: 88 KB
+ pool-3-thread-1 Reads: 4 KB
+ Total Reads: 92 KB i_size: 1451 KB
+File: /lib/libandroid.so
+ ogle.android.gm Reads: 84 KB
+ Total Reads: 84 KB i_size: 95 KB
+File: /lib/libart-compiler.so
+ Jit_thread_pool Reads: 128 KB
+ Total Reads: 128 KB i_size: 1975 KB
+File: /lib/libart-dexlayout.so
+ dboxed_process0 Reads: 120 KB
+ Total Reads: 120 KB i_size: 155 KB
+File: /lib/libart.so
+ dboxed_process0 Reads: 52 KB
+ ogle.android.gm Reads: 76 KB
+ Total Reads: 128 KB i_size: 5602 KB
+File: /lib/libcamera2ndk.so
+ dboxed_process0 Reads: 92 KB
+ Total Reads: 92 KB i_size: 94 KB
+File: /lib/libcamera_client.so
+ dboxed_process0 Reads: 120 KB
+ Total Reads: 120 KB i_size: 231 KB
+File: /lib/libcrypto.so
+ cat Reads: 112 KB
+ Total Reads: 112 KB i_size: 689 KB
+File: /lib/libdng_sdk.so
+ dboxed_process0 Reads: 356 KB
+ Total Reads: 356 KB i_size: 549 KB
+File: /lib/libdrmframework.so
+ dboxed_process0 Reads: 84 KB
+ Total Reads: 84 KB i_size: 102 KB
+File: /lib/libft2.so
+ CrRendererMain Reads: 56 KB
+ Total Reads: 56 KB i_size: 479 KB
+File: /lib/libGLESv2.so
+ ogle.android.gm Reads: 28 KB
+ Total Reads: 28 KB i_size: 68 KB
+File: /lib/libicuuc.so
+ CrRendererMain Reads: 88 KB
+ dboxed_process0 Reads: 76 KB
+ Total Reads: 164 KB i_size: 1182 KB
+File: /lib/libimg_utils.so
+ dboxed_process0 Reads: 60 KB
+ Total Reads: 60 KB i_size: 66 KB
+File: /lib/liblzma.so
+ Chrome_InProcGp Reads: 88 KB
+ Total Reads: 88 KB i_size: 93 KB
+File: /lib/libmedia_jni.so
+ Chrome_InProcGp Reads: 72 KB
+ dboxed_process0 Reads: 96 KB
+ Total Reads: 168 KB i_size: 299 KB
+File: /lib/libmedia.so
+ dboxed_process0 Reads: 88 KB
+ Total Reads: 88 KB i_size: 496 KB
+File: /lib/libmediautils.so
+ dboxed_process0 Reads: 36 KB
+ Total Reads: 36 KB i_size: 53 KB
+File: /lib/libmemunreachable.so
+ dboxed_process0 Reads: 84 KB
+ Total Reads: 84 KB i_size: 120 KB
+File: /lib/libmtp.so
+ dboxed_process0 Reads: 116 KB
+ Total Reads: 116 KB i_size: 122 KB
+File: /lib/libpackagelistparser.so
+ cat Reads: 8 KB
+ Total Reads: 8 KB i_size: 15 KB
+File: /lib/libpcre2.so
+ cat Reads: 48 KB
+ Total Reads: 48 KB i_size: 92 KB
+File: /lib/libprotobuf-cpp-lite.so
+ dboxed_process0 Reads: 88 KB
+ Total Reads: 88 KB i_size: 197 KB
+File: /lib/libradio.so
+ dboxed_process0 Reads: 36 KB
+ Total Reads: 36 KB i_size: 53 KB
+File: /lib/libRS.so
+ dboxed_process0 Reads: 40 KB
+ Total Reads: 40 KB i_size: 59 KB
+File: /lib/libselinux.so
+ cat Reads: 12 KB
+ Total Reads: 12 KB i_size: 75 KB
+File: /lib/libskia.so
+ ogle.android.gm Reads: 316 KB
+ Total Reads: 316 KB i_size: 5578 KB
+File: /lib/libstagefright.so
+ dboxed_process0 Reads: 244 KB
+ Total Reads: 244 KB i_size: 1487 KB
+File: /lib/libvintf.so
+ dboxed_process0 Reads: 96 KB
+ Total Reads: 96 KB i_size: 187 KB
+File: /lib/libvulkan.so
+ dboxed_process0 Reads: 80 KB
+ Total Reads: 80 KB i_size: 98 KB
+File: /lib/libwebviewchromium_loader.so
+ ogle.android.gm Reads: 12 KB
+ Total Reads: 12 KB i_size: 15 KB
+File: /lib/libwebviewchromium_plat_support.so
+ ogle.android.gm Reads: 16 KB
+ Total Reads: 16 KB i_size: 20 KB
+File: /lib/libwilhelm.so
+ dboxed_process0 Reads: 120 KB
+ Total Reads: 120 KB i_size: 199 KB
+File: /lib/libz.so
+ cat Reads: 20 KB
+ Total Reads: 20 KB i_size: 95 KB
+File: /misc/keychain/pubkey_blacklist.txt
+ NetworkCursor_F Reads: 4 KB
+ Total Reads: 4 KB i_size: 819 bytes
+File: /misc/keychain/serial_blacklist.txt
+ NetworkCursor_F Reads: 4 KB
+ Total Reads: 4 KB i_size: 0 bytes
+File: /priv-app/GmsCore/GmsCore.apk
+ AsyncTask_#3 Reads: 148 KB
+ Total Reads: 148 KB i_size: 37870 KB
+File: /priv-app/Launcher3/oat/arm/Launcher3.vdex
+ Jit_thread_pool Reads: 100 KB
+ Total Reads: 100 KB i_size: 1609 KB
+File: /resource-cache/overlays.list
+ dboxed_process0 Reads: 4 KB
+ Total Reads: 4 KB i_size: 0 bytes
+File: /user/0
+ ogle.android.gm Reads: 4 KB
+ Total Reads: 4 KB i_size: 10 bytes
+File: /usr/hyphen-data/hyph-en-us.hyb
+ ogle.android.gm Reads: 20 KB
+ Total Reads: 20 KB i_size: 58 KB
+File: /usr/icu/icudt58l.dat
+ ogle.android.gm Reads: 1400 KB
+ Total Reads: 1400 KB i_size: 22774 KB
+File: /usr/share/zoneinfo/tzdata
+ ChildProcessMai Reads: 112 KB
+ Total Reads: 112 KB i_size: 488 KB
+Grand Total File DATA KB Reads 76796
+PID VIEW:
+PID: android.anim
+ /framework/framework-res.apk Reads: 16 KB i_size: 18923 KB
+ Total Reads: 16 KB
+PID: AsyncTask_#1
+ /framework/arm/boot-ext.oat Reads: 156 KB i_size: 306 KB
+ /framework/arm/boot-ext.vdex Reads: 396 KB i_size: 1056 KB
+ /framework/arm/boot.oat Reads: 104 KB i_size: 7511 KB
+ /framework/arm/boot-org.apache.http.legacy.boot.vdex Reads: 88 KB i_size: 509 KB
+ /framework/arm/boot.vdex Reads: 60 KB i_size: 5144 KB
+ Total Reads: 804 KB
+PID: AsyncTask_#2
+ /app/Gmail2Light/Gmail2Light.apk Reads: 24 KB i_size: 9736 KB
+ /framework/arm/boot-framework.oat Reads: 116 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 40 KB i_size: 19304 KB
+ Total Reads: 180 KB
+PID: AsyncTask_#3
+ /data/com.google.android.gm/files/deviceName Reads: 4 KB i_size: 17 bytes
+ /framework/com.android.location.provider.jar Reads: 16 KB i_size: 12 KB
+ /framework/com.android.media.remotedisplay.jar Reads: 8 KB i_size: 4 KB
+ /framework/oat/arm/com.android.location.provider.odex Reads: 12 KB i_size: 20 KB
+ /framework/oat/arm/com.android.media.remotedisplay.odex Reads: 12 KB i_size: 20 KB
+ /priv-app/GmsCore/GmsCore.apk Reads: 148 KB i_size: 37870 KB
+ Total Reads: 200 KB
+PID: Binder1550_5
+ /data/com.google.android.gsf/files/signatures/sig-281206196 Reads: 4 KB i_size: 1 KB
+ Total Reads: 4 KB
+PID: Binder8493_1
+ /framework/arm/boot-framework.oat Reads: 24 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 72 KB i_size: 19304 KB
+ Total Reads: 96 KB
+PID: cat
+ /bin/toybox Reads: 304 KB i_size: 319 KB
+ /lib/libcrypto.so Reads: 112 KB i_size: 689 KB
+ /lib/libpackagelistparser.so Reads: 8 KB i_size: 15 KB
+ /lib/libpcre2.so Reads: 48 KB i_size: 92 KB
+ /lib/libselinux.so Reads: 12 KB i_size: 75 KB
+ /lib/libz.so Reads: 20 KB i_size: 95 KB
+ Total Reads: 504 KB
+PID: ChildProcessMai
+ /usr/share/zoneinfo/tzdata Reads: 112 KB i_size: 488 KB
+ Total Reads: 112 KB
+PID: Chrome_CacheThr
+ /data/com.google.android.gm/app_webview/GPUCache/index Reads: 4 KB i_size: 24 bytes
+ Total Reads: 4 KB
+PID: Chrome_ChildIOT
+ /app/Chrome/Chrome.apk Reads: 96 KB i_size: 71354 KB
+ Total Reads: 96 KB
+PID: Chrome_DBThread
+ /app/Chrome/Chrome.apk Reads: 652 KB i_size: 71354 KB
+ Total Reads: 652 KB
+PID: Chrome_FileThre
+ /data/com.google.android.gm/app_webview/metrics_guid Reads: 4 KB i_size: 36 bytes
+ Total Reads: 4 KB
+PID: Chrome_FileUser
+ /app/Chrome/Chrome.apk Reads: 72 KB i_size: 71354 KB
+ Total Reads: 72 KB
+PID: Chrome_InProcGp
+ /app/Chrome/Chrome.apk Reads: 732 KB i_size: 71354 KB
+ /framework/arm/boot-framework.oat Reads: 196 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 300 KB i_size: 19304 KB
+ /framework/arm/boot.oat Reads: 12 KB i_size: 7511 KB
+ /lib/egl/libGLES_mali.so Reads: 220 KB i_size: 4454 KB
+ /lib/liblzma.so Reads: 88 KB i_size: 93 KB
+ /lib/libmedia_jni.so Reads: 72 KB i_size: 299 KB
+ Total Reads: 1620 KB
+PID: Chrome_IOThread
+ /app/Chrome/Chrome.apk Reads: 1396 KB i_size: 71354 KB
+ /app/Gmail2Light/Gmail2Light.apk Reads: 68 KB i_size: 9736 KB
+ /framework/arm/boot.oat Reads: 44 KB i_size: 7511 KB
+ Total Reads: 1508 KB
+PID: Compositor
+ /app/Chrome/Chrome.apk Reads: 652 KB i_size: 71354 KB
+ Total Reads: 652 KB
+PID: CookieMonsterBa
+ /app/Chrome/Chrome.apk Reads: 284 KB i_size: 71354 KB
+ Total Reads: 284 KB
+PID: CrRendererMain
+ /app/Chrome/Chrome.apk Reads: 17012 KB i_size: 71354 KB
+ /etc/fonts.xml Reads: 24 KB i_size: 22 KB
+ /fonts/CarroisGothicSC-Regular.ttf Reads: 40 KB i_size: 39 KB
+ /fonts/ComingSoon.ttf Reads: 60 KB i_size: 57 KB
+ /fonts/CutiveMono.ttf Reads: 68 KB i_size: 67 KB
+ /fonts/DancingScript-Bold.ttf Reads: 116 KB i_size: 112 KB
+ /fonts/DancingScript-Regular.ttf Reads: 116 KB i_size: 113 KB
+ /fonts/DroidSansMono.ttf Reads: 108 KB i_size: 105 KB
+ /fonts/NotoColorEmoji.ttf Reads: 204 KB i_size: 7108 KB
+ /fonts/NotoNaskhArabic-Bold.ttf Reads: 116 KB i_size: 113 KB
+ /fonts/NotoNaskhArabic-Regular.ttf Reads: 116 KB i_size: 113 KB
+ /fonts/NotoNaskhArabicUI-Bold.ttf Reads: 120 KB i_size: 116 KB
+ /fonts/NotoNaskhArabicUI-Regular.ttf Reads: 120 KB i_size: 117 KB
+ /fonts/NotoSansAdlam-Regular.ttf Reads: 52 KB i_size: 49 KB
+ /fonts/NotoSansArmenian-Bold.ttf Reads: 16 KB i_size: 15 KB
+ /fonts/NotoSansArmenian-Regular.ttf Reads: 16 KB i_size: 15 KB
+ /fonts/NotoSansAvestan-Regular.ttf Reads: 12 KB i_size: 11 KB
+ /fonts/NotoSansBalinese-Regular.ttf Reads: 32 KB i_size: 31 KB
+ /fonts/NotoSansBamum-Regular.ttf Reads: 132 KB i_size: 130 KB
+ /fonts/NotoSansBatak-Regular.ttf Reads: 16 KB i_size: 12 KB
+ /fonts/NotoSansBengali-Bold.ttf Reads: 100 KB i_size: 96 KB
+ /fonts/NotoSansBengali-Regular.ttf Reads: 100 KB i_size: 99 KB
+ /fonts/NotoSansBengaliUI-Bold.ttf Reads: 104 KB i_size: 101 KB
+ /fonts/NotoSansBengaliUI-Regular.ttf Reads: 108 KB i_size: 104 KB
+ /fonts/NotoSansBrahmi-Regular.ttf Reads: 24 KB i_size: 23 KB
+ /fonts/NotoSansBuginese-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansBuhid-Regular.ttf Reads: 8 KB i_size: 4 KB
+ /fonts/NotoSansCanadianAboriginal-Regular.ttf Reads: 48 KB i_size: 45 KB
+ /fonts/NotoSansCarian-Regular.ttf Reads: 8 KB i_size: 6 KB
+ /fonts/NotoSansCham-Bold.ttf Reads: 24 KB i_size: 21 KB
+ /fonts/NotoSansCham-Regular.ttf Reads: 24 KB i_size: 21 KB
+ /fonts/NotoSansCherokee-Regular.ttf Reads: 60 KB i_size: 56 KB
+ /fonts/NotoSansCJK-Regular.ttc Reads: 2380 KB i_size: 18236 KB
+ /fonts/NotoSansCoptic-Regular.ttf Reads: 24 KB i_size: 21 KB
+ /fonts/NotoSansCuneiform-Regular.ttf Reads: 200 KB i_size: 488 KB
+ /fonts/NotoSansCypriot-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansDeseret-Regular.ttf Reads: 12 KB i_size: 10 KB
+ /fonts/NotoSansDevanagari-Bold.ttf Reads: 128 KB i_size: 128 KB
+ /fonts/NotoSansDevanagari-Regular.ttf Reads: 128 KB i_size: 132 KB
+ /fonts/NotoSansDevanagariUI-Bold.ttf Reads: 120 KB i_size: 118 KB
+ /fonts/NotoSansDevanagariUI-Regular.ttf Reads: 124 KB i_size: 122 KB
+ /fonts/NotoSansEgyptianHieroglyphs-Regular.ttf Reads: 200 KB i_size: 493 KB
+ /fonts/NotoSansEthiopic-Bold.ttf Reads: 128 KB i_size: 140 KB
+ /fonts/NotoSansEthiopic-Regular.ttf Reads: 128 KB i_size: 139 KB
+ /fonts/NotoSansGeorgian-Bold.ttf Reads: 20 KB i_size: 19 KB
+ /fonts/NotoSansGeorgian-Regular.ttf Reads: 20 KB i_size: 19 KB
+ /fonts/NotoSansGlagolitic-Regular.ttf Reads: 16 KB i_size: 15 KB
+ /fonts/NotoSansGothic-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansGujarati-Bold.ttf Reads: 116 KB i_size: 114 KB
+ /fonts/NotoSansGujarati-Regular.ttf Reads: 120 KB i_size: 117 KB
+ /fonts/NotoSansGujaratiUI-Bold.ttf Reads: 112 KB i_size: 111 KB
+ /fonts/NotoSansGujaratiUI-Regular.ttf Reads: 116 KB i_size: 114 KB
+ /fonts/NotoSansGurmukhi-Bold.ttf Reads: 32 KB i_size: 30 KB
+ /fonts/NotoSansGurmukhi-Regular.ttf Reads: 32 KB i_size: 31 KB
+ /fonts/NotoSansGurmukhiUI-Bold.ttf Reads: 32 KB i_size: 31 KB
+ /fonts/NotoSansGurmukhiUI-Regular.ttf Reads: 32 KB i_size: 31 KB
+ /fonts/NotoSansHanunoo-Regular.ttf Reads: 8 KB i_size: 6 KB
+ /fonts/NotoSansHebrew-Bold.ttf Reads: 20 KB i_size: 17 KB
+ /fonts/NotoSansHebrew-Regular.ttf Reads: 20 KB i_size: 16 KB
+ /fonts/NotoSansImperialAramaic-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansInscriptionalPahlavi-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansInscriptionalParthian-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansJavanese-Regular.ttf Reads: 40 KB i_size: 36 KB
+ /fonts/NotoSansKaithi-Regular.ttf Reads: 60 KB i_size: 58 KB
+ /fonts/NotoSansKannada-Bold.ttf Reads: 80 KB i_size: 78 KB
+ /fonts/NotoSansKannada-Regular.ttf Reads: 84 KB i_size: 80 KB
+ /fonts/NotoSansKannadaUI-Bold.ttf Reads: 80 KB i_size: 77 KB
+ /fonts/NotoSansKannadaUI-Regular.ttf Reads: 80 KB i_size: 79 KB
+ /fonts/NotoSansKayahLi-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansKharoshthi-Regular.ttf Reads: 24 KB i_size: 21 KB
+ /fonts/NotoSansKhmerUI-Bold.ttf Reads: 36 KB i_size: 35 KB
+ /fonts/NotoSansKhmerUI-Regular.ttf Reads: 40 KB i_size: 37 KB
+ /fonts/NotoSansKhmer-VF.ttf Reads: 128 KB i_size: 140 KB
+ /fonts/NotoSansLao-Bold.ttf Reads: 32 KB i_size: 28 KB
+ /fonts/NotoSansLao-Regular.ttf Reads: 32 KB i_size: 29 KB
+ /fonts/NotoSansLaoUI-Bold.ttf Reads: 32 KB i_size: 28 KB
+ /fonts/NotoSansLaoUI-Regular.ttf Reads: 32 KB i_size: 29 KB
+ /fonts/NotoSansLepcha-Regular.ttf Reads: 100 KB i_size: 99 KB
+ /fonts/NotoSansLimbu-Regular.ttf Reads: 12 KB i_size: 10 KB
+ /fonts/NotoSansLinearB-Regular.ttf Reads: 60 KB i_size: 56 KB
+ /fonts/NotoSansLisu-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansLycian-Regular.ttf Reads: 8 KB i_size: 4 KB
+ /fonts/NotoSansLydian-Regular.ttf Reads: 8 KB i_size: 4 KB
+ /fonts/NotoSansMalayalam-Bold.ttf Reads: 56 KB i_size: 55 KB
+ /fonts/NotoSansMalayalam-Regular.ttf Reads: 56 KB i_size: 55 KB
+ /fonts/NotoSansMalayalamUI-Bold.ttf Reads: 56 KB i_size: 55 KB
+ /fonts/NotoSansMalayalamUI-Regular.ttf Reads: 56 KB i_size: 55 KB
+ /fonts/NotoSansMandaic-Regular.ttf Reads: 16 KB i_size: 14 KB
+ /fonts/NotoSansMeeteiMayek-Regular.ttf Reads: 16 KB i_size: 13 KB
+ /fonts/NotoSansMongolian-Regular.ttf Reads: 112 KB i_size: 110 KB
+ /fonts/NotoSansMyanmar-Bold.ttf Reads: 108 KB i_size: 106 KB
+ /fonts/NotoSansMyanmar-Regular.ttf Reads: 108 KB i_size: 105 KB
+ /fonts/NotoSansMyanmarUI-Bold.ttf Reads: 104 KB i_size: 102 KB
+ /fonts/NotoSansMyanmarUI-Regular.ttf Reads: 104 KB i_size: 100 KB
+ /fonts/NotoSansNewTaiLue-Regular.ttf Reads: 16 KB i_size: 14 KB
+ /fonts/NotoSansNKo-Regular.ttf Reads: 20 KB i_size: 18 KB
+ /fonts/NotoSansOgham-Regular.ttf Reads: 8 KB i_size: 4 KB
+ /fonts/NotoSansOlChiki-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansOldItalic-Regular.ttf Reads: 8 KB i_size: 4 KB
+ /fonts/NotoSansOldPersian-Regular.ttf Reads: 16 KB i_size: 12 KB
+ /fonts/NotoSansOldSouthArabian-Regular.ttf Reads: 8 KB i_size: 4 KB
+ /fonts/NotoSansOldTurkic-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansOriya-Bold.ttf Reads: 84 KB i_size: 82 KB
+ /fonts/NotoSansOriya-Regular.ttf Reads: 84 KB i_size: 83 KB
+ /fonts/NotoSansOriyaUI-Bold.ttf Reads: 80 KB i_size: 78 KB
+ /fonts/NotoSansOriyaUI-Regular.ttf Reads: 80 KB i_size: 78 KB
+ /fonts/NotoSansOsmanya-Regular.ttf Reads: 8 KB i_size: 7 KB
+ /fonts/NotoSansPhagsPa-Regular.ttf Reads: 28 KB i_size: 27 KB
+ /fonts/NotoSansPhoenician-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansRejang-Regular.ttf Reads: 8 KB i_size: 6 KB
+ /fonts/NotoSansRunic-Regular.ttf Reads: 12 KB i_size: 8 KB
+ /fonts/NotoSansSamaritan-Regular.ttf Reads: 12 KB i_size: 9 KB
+ /fonts/NotoSansSaurashtra-Regular.ttf Reads: 20 KB i_size: 18 KB
+ /fonts/NotoSansShavian-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansSinhala-Bold.ttf Reads: 152 KB i_size: 149 KB
+ /fonts/NotoSansSinhala-Regular.ttf Reads: 160 KB i_size: 156 KB
+ /fonts/NotoSansSundanese-Regular.ttf Reads: 12 KB i_size: 10 KB
+ /fonts/NotoSansSylotiNagri-Regular.ttf Reads: 16 KB i_size: 14 KB
+ /fonts/NotoSansSymbols-Regular-Subsetted2.ttf Reads: 36 KB i_size: 32 KB
+ /fonts/NotoSansSymbols-Regular-Subsetted.ttf Reads: 208 KB i_size: 692 KB
+ /fonts/NotoSansSyriacEastern-Regular.ttf Reads: 52 KB i_size: 48 KB
+ /fonts/NotoSansSyriacEstrangela-Regular.ttf Reads: 48 KB i_size: 45 KB
+ /fonts/NotoSansSyriacWestern-Regular.ttf Reads: 52 KB i_size: 51 KB
+ /fonts/NotoSansTagalog-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansTagbanwa-Regular.ttf Reads: 8 KB i_size: 5 KB
+ /fonts/NotoSansTaiLe-Regular.ttf Reads: 12 KB i_size: 9 KB
+ /fonts/NotoSansTaiTham-Regular.ttf Reads: 48 KB i_size: 46 KB
+ /fonts/NotoSansTaiViet-Regular.ttf Reads: 16 KB i_size: 15 KB
+ /fonts/NotoSansTamil-Bold.ttf Reads: 36 KB i_size: 33 KB
+ /fonts/NotoSansTamil-Regular.ttf Reads: 36 KB i_size: 33 KB
+ /fonts/NotoSansTamilUI-Bold.ttf Reads: 36 KB i_size: 33 KB
+ /fonts/NotoSansTamilUI-Regular.ttf Reads: 36 KB i_size: 33 KB
+ /fonts/NotoSansTelugu-Bold.ttf Reads: 108 KB i_size: 107 KB
+ /fonts/NotoSansTelugu-Regular.ttf Reads: 112 KB i_size: 108 KB
+ /fonts/NotoSansTeluguUI-Bold.ttf Reads: 112 KB i_size: 109 KB
+ /fonts/NotoSansTeluguUI-Regular.ttf Reads: 112 KB i_size: 109 KB
+ /fonts/NotoSansThaana-Bold.ttf Reads: 16 KB i_size: 14 KB
+ /fonts/NotoSansThaana-Regular.ttf Reads: 16 KB i_size: 14 KB
+ /fonts/NotoSansThai-Bold.ttf Reads: 20 KB i_size: 17 KB
+ /fonts/NotoSansThai-Regular.ttf Reads: 24 KB i_size: 20 KB
+ /fonts/NotoSansThaiUI-Bold.ttf Reads: 20 KB i_size: 18 KB
+ /fonts/NotoSansThaiUI-Regular.ttf Reads: 24 KB i_size: 21 KB
+ /fonts/NotoSansTibetan-Bold.ttf Reads: 244 KB i_size: 364 KB
+ /fonts/NotoSansTibetan-Regular.ttf Reads: 252 KB i_size: 392 KB
+ /fonts/NotoSansTifinagh-Regular.ttf Reads: 16 KB i_size: 13 KB
+ /fonts/NotoSansUgaritic-Regular.ttf Reads: 8 KB i_size: 6 KB
+ /fonts/NotoSansVai-Regular.ttf Reads: 64 KB i_size: 62 KB
+ /fonts/NotoSansYi-Regular.ttf Reads: 124 KB i_size: 120 KB
+ /fonts/NotoSerif-BoldItalic.ttf Reads: 248 KB i_size: 256 KB
+ /fonts/NotoSerif-Bold.ttf Reads: 244 KB i_size: 242 KB
+ /fonts/NotoSerif-Italic.ttf Reads: 244 KB i_size: 243 KB
+ /fonts/NotoSerif-Regular.ttf Reads: 244 KB i_size: 240 KB
+ /fonts/Roboto-BlackItalic.ttf Reads: 256 KB i_size: 322 KB
+ /fonts/Roboto-Black.ttf Reads: 256 KB i_size: 299 KB
+ /fonts/Roboto-BoldItalic.ttf Reads: 256 KB i_size: 324 KB
+ /fonts/RobotoCondensed-BoldItalic.ttf Reads: 256 KB i_size: 322 KB
+ /fonts/RobotoCondensed-Bold.ttf Reads: 256 KB i_size: 296 KB
+ /fonts/RobotoCondensed-Italic.ttf Reads: 256 KB i_size: 321 KB
+ /fonts/RobotoCondensed-LightItalic.ttf Reads: 256 KB i_size: 324 KB
+ /fonts/RobotoCondensed-Light.ttf Reads: 256 KB i_size: 295 KB
+ /fonts/RobotoCondensed-MediumItalic.ttf Reads: 256 KB i_size: 322 KB
+ /fonts/RobotoCondensed-Medium.ttf Reads: 256 KB i_size: 296 KB
+ /fonts/Roboto-LightItalic.ttf Reads: 256 KB i_size: 324 KB
+ /fonts/Roboto-MediumItalic.ttf Reads: 256 KB i_size: 323 KB
+ /fonts/Roboto-Regular.ttf Reads: 88 KB i_size: 298 KB
+ /fonts/Roboto-ThinItalic.ttf Reads: 256 KB i_size: 321 KB
+ /fonts/Roboto-Thin.ttf Reads: 256 KB i_size: 300 KB
+ /lib/libft2.so Reads: 56 KB i_size: 479 KB
+ /lib/libicuuc.so Reads: 88 KB i_size: 1182 KB
+ Total Reads: 32760 KB
+PID: dboxed_process0
+ /app/Chrome/Chrome.apk Reads: 512 KB i_size: 71354 KB
+ /framework/android.hidl.base-V1.0-java.jar Reads: 8 KB i_size: 6 KB
+ /framework/android.hidl.manager-V1.0-java.jar Reads: 12 KB i_size: 9 KB
+ /framework/apache-xml.jar Reads: 20 KB i_size: 542 KB
+ /framework/arm/boot-conscrypt.vdex Reads: 80 KB i_size: 374 KB
+ /framework/arm/boot-framework.oat Reads: 280 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 24 KB i_size: 19304 KB
+ /framework/arm/boot.oat Reads: 160 KB i_size: 7511 KB
+ /framework/arm/boot.vdex Reads: 392 KB i_size: 5144 KB
+ /framework/bouncycastle.jar Reads: 20 KB i_size: 531 KB
+ /framework/conscrypt.jar Reads: 20 KB i_size: 153 KB
+ /framework/core-libart.jar Reads: 20 KB i_size: 1363 KB
+ /framework/core-oj.jar Reads: 24 KB i_size: 2214 KB
+ /framework/ext.jar Reads: 192 KB i_size: 2142 KB
+ /framework/framework.jar Reads: 20 KB i_size: 7342 KB
+ /framework/framework-res.apk Reads: 496 KB i_size: 18923 KB
+ /framework/ims-common.jar Reads: 20 KB i_size: 46 KB
+ /framework/legacy-test.jar Reads: 20 KB i_size: 16 KB
+ /framework/okhttp.jar Reads: 20 KB i_size: 180 KB
+ /framework/org.apache.http.legacy.boot.jar Reads: 20 KB i_size: 213 KB
+ /framework/telephony-common.jar Reads: 20 KB i_size: 938 KB
+ /framework/voip-common.jar Reads: 20 KB i_size: 66 KB
+ /lib/android.hardware.configstore@1.0.so Reads: 112 KB i_size: 132 KB
+ /lib/android.hardware.graphics.bufferqueue@1.0.so Reads: 128 KB i_size: 223 KB
+ /lib/android.hardware.renderscript@1.0.so Reads: 124 KB i_size: 332 KB
+ /lib/android.hidl.token@1.0.so Reads: 80 KB i_size: 99 KB
+ /lib/android.hidl.token@1.0-utils.so Reads: 20 KB i_size: 20 KB
+ /lib/libaaudio.so Reads: 88 KB i_size: 115 KB
+ /lib/libandroid_runtime.so Reads: 88 KB i_size: 1451 KB
+ /lib/libart-dexlayout.so Reads: 120 KB i_size: 155 KB
+ /lib/libart.so Reads: 52 KB i_size: 5602 KB
+ /lib/libcamera2ndk.so Reads: 92 KB i_size: 94 KB
+ /lib/libcamera_client.so Reads: 120 KB i_size: 231 KB
+ /lib/libdng_sdk.so Reads: 356 KB i_size: 549 KB
+ /lib/libdrmframework.so Reads: 84 KB i_size: 102 KB
+ /lib/libicuuc.so Reads: 76 KB i_size: 1182 KB
+ /lib/libimg_utils.so Reads: 60 KB i_size: 66 KB
+ /lib/libmedia_jni.so Reads: 96 KB i_size: 299 KB
+ /lib/libmedia.so Reads: 88 KB i_size: 496 KB
+ /lib/libmediautils.so Reads: 36 KB i_size: 53 KB
+ /lib/libmemunreachable.so Reads: 84 KB i_size: 120 KB
+ /lib/libmtp.so Reads: 116 KB i_size: 122 KB
+ /lib/libprotobuf-cpp-lite.so Reads: 88 KB i_size: 197 KB
+ /lib/libradio.so Reads: 36 KB i_size: 53 KB
+ /lib/libRS.so Reads: 40 KB i_size: 59 KB
+ /lib/libstagefright.so Reads: 244 KB i_size: 1487 KB
+ /lib/libvintf.so Reads: 96 KB i_size: 187 KB
+ /lib/libvulkan.so Reads: 80 KB i_size: 98 KB
+ /lib/libwilhelm.so Reads: 120 KB i_size: 199 KB
+ /resource-cache/overlays.list Reads: 4 KB i_size: 0 bytes
+ Total Reads: 5128 KB
+PID: droid.launcher3
+ /framework/arm/boot-framework.oat Reads: 112 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 116 KB i_size: 19304 KB
+ Total Reads: 228 KB
+PID: EGL_Init
+ /framework/arm/boot-framework.vdex Reads: 116 KB i_size: 19304 KB
+ Total Reads: 116 KB
+PID: GAThread
+ /data/com.google.android.gm/files/gaClientId Reads: 4 KB i_size: 36 bytes
+ /framework/arm/boot.oat Reads: 32 KB i_size: 7511 KB
+ Total Reads: 36 KB
+PID: HeapTaskDaemon
+ /framework/arm/boot-framework.oat Reads: 132 KB i_size: 21357 KB
+ Total Reads: 132 KB
+PID: JavaBridge
+ /app/Chrome/Chrome.apk Reads: 128 KB i_size: 71354 KB
+ Total Reads: 128 KB
+PID: Jit_thread_pool
+ /framework/arm/boot-core-libart.oat Reads: 28 KB i_size: 3076 KB
+ /framework/arm/boot-core-libart.vdex Reads: 80 KB i_size: 3080 KB
+ /framework/arm/boot-framework.oat Reads: 48 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 692 KB i_size: 19304 KB
+ /framework/arm/boot.vdex Reads: 356 KB i_size: 5144 KB
+ /lib/libart-compiler.so Reads: 128 KB i_size: 1975 KB
+ /priv-app/Launcher3/oat/arm/Launcher3.vdex Reads: 100 KB i_size: 1609 KB
+ Total Reads: 1432 KB
+PID: netd
+ /etc/hosts Reads: 4 KB i_size: 56 bytes
+ Total Reads: 4 KB
+PID: NetworkCursor_F
+ /etc/security/cacerts/7999be0d.0 Reads: 8 KB i_size: 4 KB
+ /framework/arm/boot-framework.oat Reads: 164 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 208 KB i_size: 19304 KB
+ /framework/arm/boot.oat Reads: 44 KB i_size: 7511 KB
+ /framework/arm/boot-org.apache.http.legacy.boot.oat Reads: 280 KB i_size: 576 KB
+ /framework/arm/boot-org.apache.http.legacy.boot.vdex Reads: 72 KB i_size: 509 KB
+ /misc/keychain/pubkey_blacklist.txt Reads: 4 KB i_size: 819 bytes
+ /misc/keychain/serial_blacklist.txt Reads: 4 KB i_size: 0 bytes
+ Total Reads: 784 KB
+PID: ogle.android.gm
+ / Reads: 4 KB i_size: 163840 KB
+ /app/Chrome/Chrome.apk Reads: 14996 KB i_size: 71354 KB
+ /app/Gmail2Light/Gmail2Light.apk Reads: 1440 KB i_size: 9736 KB
+ /fonts/Roboto-Bold.ttf Reads: 276 KB i_size: 299 KB
+ /fonts/Roboto-Light.ttf Reads: 164 KB i_size: 299 KB
+ /fonts/Roboto-Medium.ttf Reads: 176 KB i_size: 299 KB
+ /fonts/Roboto-Regular.ttf Reads: 88 KB i_size: 298 KB
+ /framework/arm/boot-android.hidl.base-V1.0-java.vdex Reads: 12 KB i_size: 11 KB
+ /framework/arm/boot.art Reads: 16 KB i_size: 1956 KB
+ /framework/arm/boot-core-libart.oat Reads: 1136 KB i_size: 3076 KB
+ /framework/arm/boot-core-libart.vdex Reads: 1332 KB i_size: 3080 KB
+ /framework/arm/boot-framework.oat Reads: 2732 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 2760 KB i_size: 19304 KB
+ /framework/arm/boot.oat Reads: 320 KB i_size: 7511 KB
+ /framework/arm/boot-okhttp.oat Reads: 108 KB i_size: 545 KB
+ /framework/arm/boot-okhttp.vdex Reads: 244 KB i_size: 412 KB
+ /framework/framework-res.apk Reads: 720 KB i_size: 18923 KB
+ /lib/hw/gralloc.mt6737m.so Reads: 12 KB i_size: 40 KB
+ /lib/libandroid.so Reads: 84 KB i_size: 95 KB
+ /lib/libart.so Reads: 76 KB i_size: 5602 KB
+ /lib/libGLESv2.so Reads: 28 KB i_size: 68 KB
+ /lib/libskia.so Reads: 316 KB i_size: 5578 KB
+ /lib/libwebviewchromium_loader.so Reads: 12 KB i_size: 15 KB
+ /lib/libwebviewchromium_plat_support.so Reads: 16 KB i_size: 20 KB
+ /user/0 Reads: 4 KB i_size: 10 bytes
+ /usr/hyphen-data/hyph-en-us.hyb Reads: 20 KB i_size: 58 KB
+ /usr/icu/icudt58l.dat Reads: 1400 KB i_size: 22774 KB
+ Total Reads: 28492 KB
+PID: pool-3-thread-1
+ /lib/libandroid_runtime.so Reads: 4 KB i_size: 1451 KB
+ Total Reads: 4 KB
+PID: sh
+ /bin/toybox Reads: 16 KB i_size: 319 KB
+ Total Reads: 16 KB
+PID: SharedPreferenc
+ /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml Reads: 4 KB i_size: 2 KB
+ /data/com.google.android.gm/shared_prefs/AndroidMail.Main.xml Reads: 4 KB i_size: 206 bytes
+ /data/com.google.android.gm/shared_prefs/c9edm_account-1303398453.xml Reads: 4 KB i_size: 254 bytes
+ /data/com.google.android.gm/shared_prefs/c9edm_account-2137146394.xml Reads: 4 KB i_size: 167 bytes
+ /data/com.google.android.gm/shared_prefs/Folder-android.smoke.fast@gmail.com-^sq_ig_i_personal.xml Reads: 4 KB i_size: 402 bytes
+ /data/com.google.android.gm/shared_prefs/G6yPrefs.xml Reads: 4 KB i_size: 191 bytes
+ /data/com.google.android.gm/shared_prefs/Gmail.xml Reads: 4 KB i_size: 1 KB
+ /data/com.google.android.gm/shared_prefs/_has_set_default_values.xml Reads: 4 KB i_size: 130 bytes
+ /data/com.google.android.gm/shared_prefs/Impressions-android.smoke.fast@gmail.com.xml Reads: 4 KB i_size: 65 bytes
+ /data/com.google.android.gm/shared_prefs/SmartreplyEvents-android.smoke.fast@gmail.com.xml Reads: 4 KB i_size: 65 bytes
+ /data/com.google.android.gm/shared_prefs/UnifiedEmail.xml Reads: 4 KB i_size: 935 bytes
+ /data/com.google.android.gm/shared_prefs/WebViewChromiumPrefs.xml Reads: 4 KB i_size: 127 bytes
+ Total Reads: 48 KB
+PID: Thread-4
+ /framework/arm/boot.oat Reads: 96 KB i_size: 7511 KB
+ Total Reads: 96 KB
+PID: Thread-6
+ /app/Gmail2Light/Gmail2Light.apk Reads: 8 KB i_size: 9736 KB
+ Total Reads: 8 KB
+PID: Thread-9
+ /framework/arm/boot-framework.oat Reads: 72 KB i_size: 21357 KB
+ /framework/arm/boot-framework.vdex Reads: 96 KB i_size: 19304 KB
+ Total Reads: 168 KB
+PID: WorkerPool/8556
+ /app/Chrome/Chrome.apk Reads: 408 KB i_size: 71354 KB
+ Total Reads: 408 KB
+Grand Total File DATA KB Reads 76796
+Total (ALL) Read KB mmcblk0 = 96576
+READ DELTA: Total Blockdev Reads KB - Total File Data Reads KB = 19780 KB
+Total (ALL) Read IOs mmcblk0 = 2722
+Debug Grand Total KB READ 76796
+
+Writes :
+_______
+
+FILE VIEW:
+File: /data/com.android.providers.downloads/databases/downloads.db
+ Binder8274_1 Writes: 73 KB
+ Binder8274_3 Writes: 33 KB
+ Binder8274_4 Writes: 106 KB
+ sAsyncHandlerTh Writes: 33 KB
+ Thread-4 Writes: 66 KB
+ Thread-5 Writes: 49 KB
+ Binder8274_1 Writes: 73 KB
+ Binder8274_3 Writes: 33 KB
+ Binder8274_4 Writes: 106 KB
+ sAsyncHandlerTh Writes: 33 KB
+ Thread-4 Writes: 66 KB
+ Thread-5 Writes: 49 KB
+ Total Writes: 720 KB i_size: 8 KB
+File: /data/com.android.providers.downloads/databases/downloads.db-journal
+ Binder8274_1 Writes: 37 KB
+ Binder8274_3 Writes: 17 KB
+ Binder8274_4 Writes: 54 KB
+ sAsyncHandlerTh Writes: 17 KB
+ Thread-4 Writes: 34 KB
+ Thread-5 Writes: 25 KB
+ Total Writes: 184 KB i_size: 8 KB
+File: /data/com.android.providers.downloads/files/downloadfile.bin
+ Thread-4 Writes: 79 KB
+ Thread-5 Writes: 23 KB
+ Total Writes: 102 KB i_size: 23 KB
+File: /data/com.google.android.gm/app_sslcache/mail.google.com.443
+ NetworkCursor_F Writes: 5 KB
+ Total Writes: 5 KB i_size: 4 KB
+File: /data/com.google.android.gm/app_webview/Cookies
+ CookieMonsterBa Writes: 358 KB
+ Total Writes: 358 KB i_size: 5 KB
+File: /data/com.google.android.gm/app_webview/Cookies-journal
+ CookieMonsterBa Writes: 188 KB
+ Total Writes: 188 KB i_size: 5 KB
+File: /data/com.google.android.gm/cache/android.smoke.fast@gmail.com/jelly-bean-1.png
+ Background_task Writes: 79 KB
+ Total Writes: 79 KB i_size: 8 KB
+File: /data/com.google.android.gm/cache/android.smoke.fast@gmail.com/PANO_20120828_015822-1.jpg
+ Background_task Writes: 23 KB
+ Total Writes: 23 KB i_size: 8 KB
+File: /data/com.google.android.gm/databases/EmailProvider.db
+ AsyncTask_#2 Writes: 49 KB
+ Total Writes: 49 KB i_size: 8 KB
+File: /data/com.google.android.gm/databases/EmailProvider.db-journal
+ AsyncTask_#2 Writes: 25 KB
+ Total Writes: 25 KB i_size: 8 KB
+File: /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db
+ AsyncQueryWorke Writes: 224 KB
+ AsyncTask_#1 Writes: 264 KB
+ NetworkCursor_F Writes: 4866 KB
+ Thread-13 Writes: 292 KB
+ Thread-15 Writes: 280 KB
+ Thread-16 Writes: 320 KB
+ AsyncTask_#1 Writes: 264 KB
+ AsyncQueryWorke Writes: 224 KB
+ AsyncTask_#1 Writes: 264 KB
+ AsyncTask_#2 Writes: 108 KB
+ AsyncTask_#3 Writes: 64 KB
+ Background_task Writes: 16 KB
+ NetworkCursor_F Writes: 4866 KB
+ SyncAdapterThre Writes: 112 KB
+ Thread-12 Writes: 100 KB
+ Thread-13 Writes: 292 KB
+ Thread-14 Writes: 108 KB
+ Thread-15 Writes: 280 KB
+ Thread-16 Writes: 320 KB
+ Thread-17 Writes: 128 KB
+ Thread-18 Writes: 136 KB
+ Thread-19 Writes: 128 KB
+ Thread-20 Writes: 108 KB
+ Total Writes: 13764 KB i_size: 512 KB
+File: /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-shm
+ AsyncTask_#1 Writes: 0 KB
+ Total Writes: 0 KB i_size: 4 KB
+File: /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal
+ AsyncQueryWorke Writes: 48 KB
+ AsyncTask_#1 Writes: 76 KB
+ AsyncTask_#2 Writes: 108 KB
+ AsyncTask_#3 Writes: 64 KB
+ Background_task Writes: 16 KB
+ NetworkCursor_F Writes: 3242 KB
+ SyncAdapterThre Writes: 112 KB
+ Thread-12 Writes: 100 KB
+ Thread-13 Writes: 96 KB
+ Thread-14 Writes: 108 KB
+ Thread-15 Writes: 104 KB
+ Thread-16 Writes: 116 KB
+ Thread-17 Writes: 128 KB
+ Thread-18 Writes: 136 KB
+ Thread-19 Writes: 128 KB
+ Thread-20 Writes: 108 KB
+ Total Writes: 4690 KB i_size: 512 KB
+File: /data/com.google.android.gms/databases/playlog.db
+ lowpool[11] Writes: 11760 KB
+ Total Writes: 11760 KB i_size: 426 KB
+File: /data/com.google.android.gms/databases/playlog.db-wal
+ lowpool[11] Writes: 10884 KB
+ Total Writes: 10884 KB i_size: 426 KB
+File: /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml
+ ogle.android.gm Writes: 2 KB
+ queued-work-loo Writes: 11 KB
+ Total Writes: 13 KB i_size: 0 bytes
+File: /data/com.google.android.gm/shared_prefs/Gmail.xml
+ ogle.android.gm Writes: 1 KB
+ queued-work-loo Writes: 4 KB
+ Total Writes: 5 KB i_size: 0 bytes
+File: /data/com.google.android.gm/shared_prefs/Impressions-android.smoke.fast@gmail.com.xml
+ queued-work-loo Writes: 0 KB
+ Total Writes: 0 KB i_size: 0 bytes
+File: /data/com.google.android.gm/shared_prefs/MailAppProvider.xml
+ ogle.android.gm Writes: 10 KB
+ queued-work-loo Writes: 97 KB
+ Total Writes: 107 KB i_size: 4 KB
+File: /data/com.google.android.gm/shared_prefs/SmartreplyEvents-android.smoke.fast@gmail.com.xml
+ queued-work-loo Writes: 1 KB
+ Total Writes: 1 KB i_size: 0 bytes
+File: /misc/profiles/cur/0/com.android.systemui/primary.prof
+ Profile_Saver Writes: 10 KB
+ Total Writes: 10 KB i_size: 8 bytes
+File: /system/appops.xml
+ AsyncTask_#7 Writes: 11 KB
+ Total Writes: 11 KB i_size: 8 KB
+File: /system_ce/0/recent_tasks/20_task.xml
+ LazyTaskWriterT Writes: 2 KB
+ Total Writes: 2 KB i_size: 1 KB
+File: /system/job/jobs.xml
+ android.io Writes: 127 KB
+ Total Writes: 127 KB i_size: 8 KB
+File: /system/screen_on_time
+ android.bg Writes: 0 KB
+ Total Writes: 0 KB i_size: 0 bytes
+File: /system/usagestats/0/daily/1499287200538
+ android.bg Writes: 41 KB
+ Total Writes: 41 KB i_size: 8 KB
+File: /system/usagestats/0/monthly/1499287200538
+ android.bg Writes: 5 KB
+ Total Writes: 5 KB i_size: 4 KB
+File: /system/usagestats/0/weekly/1499287200538
+ android.bg Writes: 5 KB
+ Total Writes: 5 KB i_size: 4 KB
+File: /system/usagestats/0/yearly/1499287200538
+ android.bg Writes: 5 KB
+ Total Writes: 5 KB i_size: 4 KB
+File: /system/users/0/app_idle_stats.xml
+ android.bg Writes: 9 KB
+ Total Writes: 9 KB i_size: 8 KB
+File: /system/users/0/settings_secure.xml
+ SettingsProvide Writes: 12 KB
+ Total Writes: 12 KB i_size: 8 KB
+Grand Total File DATA KB Writes 43184
+PID VIEW:
+PID: android.bg
+ /system/screen_on_time Writes: 0 KB i_size: 0 bytes
+ /system/usagestats/0/daily/1499287200538 Writes: 41 KB i_size: 8 KB
+ /system/usagestats/0/monthly/1499287200538 Writes: 5 KB i_size: 4 KB
+ /system/usagestats/0/weekly/1499287200538 Writes: 5 KB i_size: 4 KB
+ /system/usagestats/0/yearly/1499287200538 Writes: 5 KB i_size: 4 KB
+ /system/users/0/app_idle_stats.xml Writes: 9 KB i_size: 8 KB
+ Total Writes: 65 KB
+PID: android.io
+ /system/job/jobs.xml Writes: 127 KB i_size: 8 KB
+ Total Writes: 127 KB
+PID: AsyncQueryWorke
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db Writes: 224 KB i_size: 575 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 48 KB i_size: 575 KB
+ Total Writes: 272 KB
+PID: AsyncTask_#1
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db Writes: 264 KB i_size: 512 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-shm Writes: 0 KB i_size: 4 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 76 KB i_size: 512 KB
+ Total Writes: 340 KB
+PID: AsyncTask_#2
+ /data/com.google.android.gm/databases/EmailProvider.db Writes: 49 KB i_size: 8 KB
+ /data/com.google.android.gm/databases/EmailProvider.db-journal Writes: 25 KB i_size: 8 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 108 KB i_size: 512 KB
+ Total Writes: 182 KB
+PID: AsyncTask_#3
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 64 KB i_size: 512 KB
+ Total Writes: 64 KB
+PID: AsyncTask_#7
+ /system/appops.xml Writes: 11 KB i_size: 8 KB
+ Total Writes: 11 KB
+PID: Background_task
+ /data/com.google.android.gm/cache/android.smoke.fast@gmail.com/jelly-bean-1.png Writes: 79 KB i_size: 8 KB
+ /data/com.google.android.gm/cache/android.smoke.fast@gmail.com/PANO_20120828_015822-1.jpg Writes: 23 KB i_size: 8 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 16 KB i_size: 512 KB
+ Total Writes: 118 KB
+PID: Binder8274_1
+ /data/com.android.providers.downloads/databases/downloads.db Writes: 73 KB i_size: 8 KB
+ /data/com.android.providers.downloads/databases/downloads.db-journal Writes: 37 KB i_size: 8 KB
+ Total Writes: 110 KB
+PID: Binder8274_3
+ /data/com.android.providers.downloads/databases/downloads.db Writes: 33 KB i_size: 8 KB
+ /data/com.android.providers.downloads/databases/downloads.db-journal Writes: 17 KB i_size: 8 KB
+ Total Writes: 50 KB
+PID: Binder8274_4
+ /data/com.android.providers.downloads/databases/downloads.db Writes: 106 KB i_size: 8 KB
+ /data/com.android.providers.downloads/databases/downloads.db-journal Writes: 54 KB i_size: 8 KB
+ Total Writes: 160 KB
+PID: CookieMonsterBa
+ /data/com.google.android.gm/app_webview/Cookies Writes: 358 KB i_size: 5 KB
+ /data/com.google.android.gm/app_webview/Cookies-journal Writes: 188 KB i_size: 5 KB
+ Total Writes: 546 KB
+PID: LazyTaskWriterT
+ /system_ce/0/recent_tasks/20_task.xml Writes: 2 KB i_size: 1 KB
+ Total Writes: 2 KB
+PID: lowpool[11]
+ /data/com.google.android.gms/databases/playlog.db Writes: 11760 KB i_size: 426 KB
+ /data/com.google.android.gms/databases/playlog.db-wal Writes: 10884 KB i_size: 426 KB
+ Total Writes: 22644 KB
+PID: NetworkCursor_F
+ /data/com.google.android.gm/app_sslcache/mail.google.com.443 Writes: 5 KB i_size: 4 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db Writes: 4866 KB i_size: 512 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 3242 KB i_size: 512 KB
+ Total Writes: 8113 KB
+PID: ogle.android.gm
+ /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml Writes: 2 KB i_size: 0 bytes
+ /data/com.google.android.gm/shared_prefs/Gmail.xml Writes: 1 KB i_size: 0 bytes
+ /data/com.google.android.gm/shared_prefs/MailAppProvider.xml Writes: 10 KB i_size: 4 KB
+ Total Writes: 13 KB
+PID: Profile_Saver
+ /misc/profiles/cur/0/com.android.systemui/primary.prof Writes: 10 KB i_size: 8 bytes
+ Total Writes: 10 KB
+PID: queued-work-loo
+ /data/com.google.android.gm/shared_prefs/Account-android.smoke.fast@gmail.com.xml Writes: 11 KB i_size: 0 bytes
+ /data/com.google.android.gm/shared_prefs/Gmail.xml Writes: 4 KB i_size: 0 bytes
+ /data/com.google.android.gm/shared_prefs/Impressions-android.smoke.fast@gmail.com.xml Writes: 0 KB i_size: 0 bytes
+ /data/com.google.android.gm/shared_prefs/MailAppProvider.xml Writes: 97 KB i_size: 4 KB
+ /data/com.google.android.gm/shared_prefs/SmartreplyEvents-android.smoke.fast@gmail.com.xml Writes: 1 KB i_size: 0 bytes
+ Total Writes: 113 KB
+PID: sAsyncHandlerTh
+ /data/com.android.providers.downloads/databases/downloads.db Writes: 33 KB i_size: 8 KB
+ /data/com.android.providers.downloads/databases/downloads.db-journal Writes: 17 KB i_size: 8 KB
+ Total Writes: 50 KB
+PID: SettingsProvide
+ /system/users/0/settings_secure.xml Writes: 12 KB i_size: 8 KB
+ Total Writes: 12 KB
+PID: SyncAdapterThre
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 112 KB i_size: 512 KB
+ Total Writes: 112 KB
+PID: Thread-12
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 100 KB i_size: 512 KB
+ Total Writes: 100 KB
+PID: Thread-13
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db Writes: 292 KB i_size: 512 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 96 KB i_size: 512 KB
+ Total Writes: 388 KB
+PID: Thread-14
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 108 KB i_size: 512 KB
+ Total Writes: 108 KB
+PID: Thread-15
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db Writes: 280 KB i_size: 512 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 104 KB i_size: 512 KB
+ Total Writes: 384 KB
+PID: Thread-16
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db Writes: 320 KB i_size: 512 KB
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 116 KB i_size: 512 KB
+ Total Writes: 436 KB
+PID: Thread-17
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 128 KB i_size: 512 KB
+ Total Writes: 128 KB
+PID: Thread-18
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 136 KB i_size: 512 KB
+ Total Writes: 136 KB
+PID: Thread-19
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 128 KB i_size: 512 KB
+ Total Writes: 128 KB
+PID: Thread-20
+ /data/com.google.android.gm/databases/mailstore.android.smoke.fast@gmail.com.db-wal Writes: 108 KB i_size: 512 KB
+ Total Writes: 108 KB
+PID: Thread-4
+ /data/com.android.providers.downloads/databases/downloads.db Writes: 66 KB i_size: 8 KB
+ /data/com.android.providers.downloads/databases/downloads.db-journal Writes: 34 KB i_size: 8 KB
+ /data/com.android.providers.downloads/files/downloadfile.bin Writes: 79 KB i_size: 79 KB
+ Total Writes: 179 KB
+PID: Thread-5
+ /data/com.android.providers.downloads/databases/downloads.db Writes: 49 KB i_size: 8 KB
+ /data/com.android.providers.downloads/databases/downloads.db-journal Writes: 25 KB i_size: 8 KB
+ /data/com.android.providers.downloads/files/downloadfile.bin Writes: 23 KB i_size: 23 KB
+ Total Writes: 97 KB
+Grand Total File DATA KB Writes 35306
+Total (ALL) Write KB mmcblk0 = 23520
+WRITE DELTA: Total Blockdev Writes KB - Total File Data Writes KB = -11786 KB
+Total (ALL) Write IOs mmcblk0 = 1829
+Debug Grand Total KB WRITTEN 20366
diff --git a/ioblame/ioblame.sh b/ioblame/ioblame.sh
new file mode 100755
index 00000000..cdd1d30c
--- /dev/null
+++ b/ioblame/ioblame.sh
@@ -0,0 +1,521 @@
+#!/bin/sh -u
+
+parseoptions() {
+ trace_reads=false
+ trace_writes=false
+ trace_writepages=false
+ pid_view=false
+
+ while [ $# -ge 1 ]
+ do
+ case $1 in
+ -r)
+ trace_reads=true
+ ;;
+ -w)
+ trace_writes=true
+ ;;
+ -p)
+ trace_writepages=true
+ ;;
+ -v)
+ pid_view=true
+ ;;
+ *)
+ usage
+ ;;
+ esac
+ shift
+ done
+}
+
+usage() {
+ echo "Usage: $0 [-r|-w|-p|-v]"
+ exit 1
+}
+
+getmodel() {
+ model=`adb shell getprop ro.product.name`
+ # Releases are inconsistent with various trailing characters, remove them all
+ model=`echo $model | sed 's/[ \t\r\n]*$//' `
+ echo Found $model Device
+
+ case $model in
+ aosp_gobo | gobo)
+ get_go_devnames
+ ;;
+ marlin | sailfish)
+ get_marlin_sailfish_devnames
+ ;;
+ angler)
+ get_angler_devnames
+ ;;
+ bullhead)
+ get_bullhead_devnames
+ ;;
+ volantis | volantisg)
+ get_volantis_devnames
+ ;;
+ *)
+ echo Unknown Device $model
+ exit 1
+ ;;
+ esac
+}
+
+get_go_devnames () {
+ # Hardcoding all of the mmcblk0 device for now
+ block_device=mmcblk0
+ bdev_set=true
+}
+
+get_volantis_devnames() {
+ bdev_set=true
+ block_device=mmcblk0
+}
+
+get_bullhead_devnames() {
+ bdev_set=true
+ block_device=mmcblk0
+}
+
+get_marlin_sailfish_devnames() {
+ bdev_set=true
+ block_device=sda
+}
+
+get_angler_devnames () {
+ # Get the underlying bdev from the "by-name" mapping
+ block_device=`adb shell 'find /dev/block/platform -name by-name | xargs ls -l' | grep system | awk '{ print $10 }' `
+ # extract the last component of the absolute device pathname we got above
+ block_device=`echo $block_device | awk 'BEGIN { FS ="/" } ; { print $4 }' | sed 's/p.*//g' `
+ bdev_set=true
+}
+
+disk_stats_before() {
+ if [ $bdev_set == true ]; then
+ DISKSTATS=`adb shell 'cat /proc/diskstats' | fgrep -w $block_device `
+ # Get BEFORE read stats for bdev
+ BEFORE_RD_IOS=`echo $DISKSTATS | awk '{ print $4 }' `
+ BEFORE_RD_SECTORS=`echo $DISKSTATS | awk '{ print $6 }' `
+ # Get BEFORE write stats for bdev
+ BEFORE_WR_IOS=`echo $DISKSTATS | awk '{ print $8 }' `
+ BEFORE_WR_SECTORS=`echo $DISKSTATS | awk '{ print $10 }' `
+ fi
+ if [ $f2fs_fs == 1 ] ; then
+ adb shell 'mount -o remount,background_gc=off /data'
+ F2FS_GC_SEGMENTS_BEFORE=`adb shell 'cat /sys/kernel/debug/f2fs/status' | grep segments | egrep 'data|node' | awk '{ segments += $5 } END { print segments }' `
+ fi
+}
+
+disk_stats_after() {
+ if [ $bdev_set == true ]; then
+ DISKSTATS=`adb shell 'cat /proc/diskstats' | fgrep -w $block_device `
+ # Get AFTER read stats for bdev
+ AFTER_RD_IOS=`echo $DISKSTATS | awk '{ print $4 }' `
+ AFTER_RD_SECTORS=`echo $DISKSTATS | awk '{ print $6 }' `
+ # Get BEFORE write stats for bdev
+ AFTER_WR_IOS=`echo $DISKSTATS | awk '{ print $8 }' `
+ AFTER_WR_SECTORS=`echo $DISKSTATS | awk '{ print $10 }' `
+ fi
+ if [ $f2fs_fs == 1 ] ; then
+ F2FS_GC_SEGMENTS_AFTER=`adb shell 'cat /sys/kernel/debug/f2fs/status' | grep segments | egrep 'data|node' | awk '{ segments += $5 } END { print segments }' `
+ adb shell 'mount -o remount,background_gc=on /data'
+ fi
+}
+
+disk_stats_delta_rd() {
+ file_data_KB=$1
+ if [ $bdev_set == true ]; then
+ # Sectors to KB
+ READ_KB=`expr $AFTER_RD_SECTORS - $BEFORE_RD_SECTORS`
+ READ_KB=`expr $READ_KB / 2`
+ echo "Total (ALL) Read KB $block_device = "$READ_KB
+ BLOCK_MINUS_FILE=`expr $READ_KB - $file_data_KB`
+ echo "READ DELTA: Total Blockdev Reads KB - Total File Data Reads KB = "$BLOCK_MINUS_FILE KB
+ echo "Total (ALL) Read IOs $block_device = "`expr $AFTER_RD_IOS - $BEFORE_RD_IOS`
+ fi
+}
+
+disk_stats_delta_wr() {
+ file_data_KB=$1
+ if [ $bdev_set == true ]; then
+ # Sectors to KB
+ WRITE_KB=`expr $AFTER_WR_SECTORS - $BEFORE_WR_SECTORS`
+ WRITE_KB=`expr $WRITE_KB / 2`
+ BLOCK_MINUS_FILE=`expr $WRITE_KB - $file_data_KB`
+ echo "WRITE DELTA: Total Blockdev Writes KB - Total File Data Writes KB = "$BLOCK_MINUS_FILE KB
+ echo "Total (ALL) Write IOs $block_device = "`expr $AFTER_WR_IOS - $BEFORE_WR_IOS`
+ fi
+ if [ $f2fs_fs == 1 ] ; then
+ F2FS_GC_SEGMENTS_DELTA=`expr $F2FS_GC_SEGMENTS_AFTER - $F2FS_GC_SEGMENTS_BEFORE`
+ F2FS_GC_KB_DELTA=`expr $F2FS_GC_SEGMENTS_DELTA \\* 2048`
+ fi
+}
+
+# For good measure clean up traces and reenable traces
+clean_up_tracepoints() {
+ # This is a good point to check if the Android FS tracepoints are enabled in the
+ # kernel or not
+ tracepoint_exists=`adb shell 'if [ -d /sys/kernel/debug/tracing/events/android_fs ]; then echo 0; else echo 1; fi' `
+ if [ $tracepoint_exists == 1 ]; then
+ echo "Android FS tracepoints not enabled in kernel. Exiting..."
+ exit 1
+ fi
+ adb shell 'echo 0 > /sys/kernel/debug/tracing/tracing_on'
+ adb shell 'echo 0 > /sys/kernel/debug/tracing/trace'
+ if [ $trace_reads == true ]; then
+ adb shell 'echo 1 > /sys/kernel/debug/tracing/events/android_fs/android_fs_dataread_start/enable'
+ fi
+ if [ $trace_writes == true ]; then
+ adb shell 'echo 1 > /sys/kernel/debug/tracing/events/android_fs/android_fs_datawrite_start/enable'
+ fi
+ if [ $f2fs_fs == 1 ] ; then
+ if [ $trace_writepages == true ]; then
+ adb shell 'echo 1 > /sys/kernel/debug/tracing/events/android_fs/android_fs_writepages/enable'
+ fi
+ fi
+ adb shell 'echo 1 > /sys/kernel/debug/tracing/tracing_on'
+}
+
+# stream trace out of trace_pipe
+# Start this in the background ('&')
+streamtrace_start() {
+ adb shell cat /sys/kernel/debug/tracing/trace_pipe > trace_saved
+}
+
+# When signal is received, the trace_pipe reader will get killed
+# Call this (just to make sure anyway)
+streamtrace_end() {
+ ps_line=`ps -ef | grep trace_pipe | grep adb `
+ if [ $? == 0 ]; then
+ echo Killing `echo $ps_line | awk '{s = ""; for (i=8; i <= NF ; i++) s = s $i " "; print s}' `
+ kill `echo $ps_line | awk '{print $2}' `
+ fi
+}
+
+copyout_trace() {
+ streamtrace_end
+ if [ $trace_reads == true ]; then
+ adb shell 'echo 0 > /sys/kernel/debug/tracing/events/android_fs/android_fs_dataread_start/enable'
+ fi
+ if [ $trace_writes == true ]; then
+ adb shell 'echo 0 > /sys/kernel/debug/tracing/events/android_fs/android_fs_datawrite_start/enable'
+ fi
+ if [ $f2fs_fs == 1 ] ; then
+ if [ $trace_writepages == true ]; then
+ adb shell 'echo 0 > /sys/kernel/debug/tracing/events/android_fs/android_fs_writepages/enable'
+ fi
+ fi
+ adb shell 'echo 0 > /sys/kernel/debug/tracing/tracing_on'
+}
+
+prep_tracefile_common() {
+ cp trace_saved $infile
+ # Strip away all the extraneous stuff first
+ fgrep $1 $infile | sed 's/^.* \[.*\] //' | sed s/://g | sed s/,//g > foo
+ mv foo $infile
+}
+
+prep_tracefile_rd() {
+ prep_tracefile_common android_fs_dataread
+ # Strip away unnecessary stuff so we can compute latencies easily
+ fgrep android_fs_dataread_start $infile > foo0
+ # Throw away everything upto and including android_fs_dataread:
+ cat foo0 | sed -n -e 's/^.*android_fs_dataread_start //p' > foo1
+ mv foo1 $infile
+ # At this stage, $infile should the following format :
+ # entry_name <filename> offset <offset> bytes <bytes> cmdline <cmdline> pid <pid> i_size <i_size> ino <ino>
+ rm foo0
+}
+
+prep_tracefile_writepages() {
+ prep_tracefile_common android_fs_writepages
+ # Throw away everything up to and including android_fs_writepages_start:
+ cat $infile | sed -n -e 's/^.*android_fs_writepages //p' > foo1
+ mv foo1 $infile
+ # At this stage, $infile should the following format :
+ # entry_name <filename> bytes <bytes> ino <ino>
+}
+
+# Latencies not supported for Writes. 'Write End' is just when the data has been
+# written back to page cache.
+prep_tracefile_wr() {
+ prep_tracefile_common android_fs_datawrite
+ fgrep android_fs_datawrite_start $infile > foo0
+ # Throw away everything upto and including android_fs_datawrite:
+ cat foo0 | sed -n -e 's/^.*android_fs_datawrite_start //p' > foo1
+ mv foo1 $infile
+ # At this stage, $infile should the following format :
+ # entry_name <filename> offset <offset> bytes <bytes> cmdline <cmdline> pid <pid> i_size <i_size> ino <ino>
+ rm foo0
+}
+
+get_unique_files_rw() {
+ # Sort first by filename, then by pid
+ cat $infile | sed s/,//g | sort -d -k2,2 -k8,8 > foo1
+ mv foo1 $infile
+ # $infile now contains lines sorted by <filename, pid>
+ # How many unique files are there ?
+ cat $infile | awk '{ print $2 }' > foo1
+ cat foo1 | uniq > uniq_files
+ rm foo1
+}
+
+get_unique_files_writepages() {
+ cat $infile | sed s/,//g | sort -d -k2,2 > foo1
+ # $infile now contains lines sorted by <filename>
+ mv foo1 $infile
+ # How many unique files are there ?
+ cat $infile | awk '{ print $2 }' > foo1
+ cat foo1 | uniq > uniq_files
+ rm foo1
+}
+
+get_unique_pids_byfile() {
+ # How many unique pids are there reading this file ?
+ cat $1 | awk '{ print $8 }' > foo1
+ cat foo1 | uniq > uniq_pids_byfile
+ rm foo1
+}
+
+get_unique_pids() {
+ # Sort first by pid, then by filename
+ cat $infile | sed s/,//g | sort -d -k8,8 -k2,2 > foo1
+ mv foo1 $infile
+ # $infile now contains lines sorted by <pid, filename>
+ # How many unique pids are there ?
+ cat $infile | awk '{ print $8 }' > foo1
+ cat foo1 | uniq > uniq_pids
+ rm foo1
+}
+
+get_unique_files_bypid() {
+ # How many unique files are there read by this pid ?
+ cat $1 | awk '{ print $2 }' > foo1
+ cat foo1 | uniq > uniq_files_bypid
+ rm foo1
+}
+
+catch_sigint()
+{
+ echo "signal INT received, killing streaming trace capture"
+ streamtrace_end
+}
+
+
+prep_to_do_something() {
+# adb shell "am force-stop com.android.chrome"
+# adb shell "am force-stop com.google.android.gm"
+ adb shell 'echo 3 > /proc/sys/vm/drop_caches'
+ sleep 1
+}
+
+do_something() {
+ # Arrange things so that the first SIGINT will kill the
+ # child process (sleep), but will return to the parent.
+ trap 'catch_sigint' INT
+ echo "OK to kill sleep when test is done"
+ sleep 30d
+# adb shell "am start -W -n com.android.chrome/com.google.android.apps.chrome.Main"
+# adb shell "am start -W -n com.google.android.gm/.ConversationListActivityGmail"
+}
+
+# Get the aggregate list of files read/written. For each file, break up the IOs by pid
+process_files_rw() {
+ read_write=$1
+ get_unique_files_rw
+ # Loop over each file that was involved in IO
+ # Find all the pids doing IO on that file
+ # Aggregate the IO done by each pid on that file and dump it out
+ grand_total_KB=0
+ cp $infile tempfile
+ for i in `cat uniq_files`
+ do
+ # Get just the tracepoints for this file
+ fgrep -w "$i" tempfile > subtrace
+ if [ -s subtrace ]; then
+ echo "File: $i"
+ total_file_KB=0
+ # Remove the tracepoints we just picked up
+ fgrep -v -w "$i" tempfile > foo
+ mv foo tempfile
+ # Get all the pids doing IO on this file
+ get_unique_pids_byfile subtrace
+ for j in `cat uniq_pids_byfile`
+ do
+ echo -n " $j $read_write: "
+ pid_KB=`fgrep -w "$j" subtrace | awk '{ bytes += $6 } END { print bytes }' `
+ pid_KB=`expr $pid_KB / 1024`
+ echo "$pid_KB KB"
+ total_file_KB=`expr $total_file_KB + $pid_KB`
+ done
+ i_size=`tail -n1 subtrace | awk '{ if ($12 > 1024) printf "%d KB", ($12/1024); else printf "%d bytes", $12; }' `
+ echo " Total $read_write: $total_file_KB KB i_size: $i_size"
+ grand_total_KB=`expr $grand_total_KB + $total_file_KB`
+ fi
+ done
+ echo "Grand Total File DATA KB $read_write $grand_total_KB"
+ rm tempfile
+}
+
+process_files_writepages() {
+ get_unique_files_writepages
+ # Loop over each file that was involved in IO
+ # Aggregate the IO done on that file and dump it out
+ grand_total_KB=0
+ cp $infile tempfile
+ for i in `cat uniq_files`
+ do
+ # Get just the tracepoints for this file
+ fgrep -w "$i" tempfile > subtrace
+ if [ -s subtrace ]; then
+ fgrep -v -w "$i" tempfile > foo
+ mv foo tempfile
+ total_file_KB=`cat subtrace | awk '{ bytes += $4 } END { print bytes }' `
+ total_file_KB=`expr $total_file_KB / 1024`
+ if [ $total_file_KB -gt 0 ]; then
+ echo "File: $i Total $read_write: $total_file_KB KB"
+ grand_total_KB=`expr $grand_total_KB + $total_file_KB`
+ fi
+ fi
+ done
+ echo "Grand Total File DATA KB Writepages $grand_total_KB"
+ rm tempfile
+}
+
+# Get the aggregate list of pids. For each pid, break up the IOs by file
+process_pids() {
+ read_write=$1
+ get_unique_pids
+ list_of_pids=`cat uniq_pids`
+ # $list_of_pids is a list of all the pids involved in IO
+ #
+ # Loop over each pid that was involved in IO
+ # Find all the files the pid was doing IO on
+ # Aggregate the IO done by the pid for each file and dump it out
+ #
+ grand_total_KB=0
+ for i in $list_of_pids
+ do
+ echo "PID: $i"
+ total_pid_KB=0
+ # Get just the tracepoints for this pid
+ fgrep -w "$i" $infile > subtrace
+ # Get all the pids doing IO on this file
+ get_unique_files_bypid subtrace
+ list_of_files=`cat uniq_files_bypid`
+ # $list_of_files is a list of all the files IO'ed by this pid
+ for j in $list_of_files
+ do
+ i_size=`fgrep -w "$j" subtrace | tail -n1 | awk '{ if ($12 > 1024) printf "%d KB", ($12/1024); else printf "%d bytes", $12; }' `
+ file_KB=`fgrep -w "$j" subtrace | awk '{ bytes += $6 } END { print bytes }' `
+ file_KB=`expr $file_KB / 1024`
+ echo " $j $read_write: $file_KB KB i_size: $i_size"
+ total_pid_KB=`expr $total_pid_KB + $file_KB`
+ done
+ echo " Total $read_write: $total_pid_KB KB"
+ grand_total_KB=`expr $grand_total_KB + $total_pid_KB`
+ done
+ echo "Grand Total File DATA KB $read_write $grand_total_KB"
+}
+
+# main() starts here :
+
+if [ $# -lt 1 ]; then
+ usage
+fi
+
+bdev_set=false
+infile=tracefile.$$
+
+parseoptions $@
+adb root && sleep 2
+getmodel
+
+found_f2fs=`adb shell 'mount | grep f2fs > /dev/null; echo $?' `
+
+if [ $found_f2fs == 0 ]; then
+ f2fs_fs=1
+else
+ f2fs_fs=0
+fi
+
+if [ $f2fs_fs == 0 ] && [ $trace_writepages == true ]; then
+ echo "Writepages is only supported with f2fs, please use -r, -w"
+ exit 1
+fi
+
+prep_to_do_something
+
+clean_up_tracepoints
+disk_stats_before
+# Start streaming the trace into the tracefile
+streamtrace_start &
+
+do_something
+
+streamtrace_end
+disk_stats_after
+
+copyout_trace
+
+if [ $trace_reads == true ]; then
+ echo
+ echo "READS :"
+ echo "_______"
+ echo
+ prep_tracefile_rd
+ # Get file specific stats - for each file, how many pids read that file ?
+ echo "FILE VIEW:"
+ process_files_rw Reads
+ if [ $pid_view == true ]; then
+ # Get pid specific stats - for each pid, what files do they do IO on ?
+ echo "PID VIEW:"
+ process_pids Reads
+ fi
+ disk_stats_delta_rd $grand_total_KB
+
+ debug_FileKB_rd=`cat $infile | awk '{ bytes += $6 } END { printf "%d", bytes/1024 }' `
+ echo Debug Grand Total KB READ $debug_FileKB_rd
+fi
+
+if [ $trace_writes == true ]; then
+ echo
+ echo "Writes :"
+ echo "_______"
+ echo
+ prep_tracefile_wr
+ # Get file specific stats - for each file, how many pids read that file ?
+
+ echo "FILE VIEW:"
+ process_files_rw Writes
+ if [ $pid_view == true ]; then
+ # Get pid specific stats - for each pid, what files do they do IO on ?
+ echo "PID VIEW:"
+ process_pids Writes
+ fi
+ disk_stats_delta_wr $grand_total_KB
+
+ if [ $f2fs_fs == 1 ] ; then
+ echo f2fs GC_KB delta = $F2FS_GC_KB_DELTA
+ fi
+fi
+
+if [ $f2fs_fs == 1 ] && [ $trace_writepages == true ] ; then
+ echo
+ echo "Writepages :"
+ echo "__________"
+ echo
+ prep_tracefile_writepages
+ # Get file specific stats - for each file, how much did we writepage ?
+
+ echo "FILE VIEW:"
+ process_files_writepages
+
+ disk_stats_delta_wr $grand_total_KB
+
+ echo f2fs GC_KB delta = $F2FS_GC_KB_DELTA
+fi
+
+rm -rf tracefile* uniq_* subtrace trace_saved
diff --git a/ioshark/README b/ioshark/README
index 0c50fec3..f71a2600 100644
--- a/ioshark/README
+++ b/ioshark/README
@@ -19,6 +19,8 @@ files into a wl.tar file.
device (on /data/local/tmp say). Explode the tarfile.
- Run the tester. "ioshark_bench *.wl" runs the test with default
options. Supported ioshark_bench options :
+-b : Explicitly specify a blockdev (to get IO stats from from
+/proc/diskstats).
-d : Preserve the delays between successive filesystem syscalls as
seen in the original straces.
-n <N> : Run for N iterations
diff --git a/ioshark/ioshark_bench.c b/ioshark/ioshark_bench.c
index f44e73e4..7593394e 100644
--- a/ioshark/ioshark_bench.c
+++ b/ioshark/ioshark_bench.c
@@ -68,6 +68,7 @@ int do_delay = 0;
int verbose = 0;
int summary_mode = 0;
int quick_mode = 0;
+char *blockdev_name = NULL; /* if user would like to specify blockdev */
#if 0
static long gettid()
@@ -78,7 +79,7 @@ static long gettid()
void usage()
{
- fprintf(stderr, "%s [-d preserve_delays] [-n num_iterations] [-t num_threads] -q -v | -s <list of parsed input files>\n",
+ fprintf(stderr, "%s [-b blockdev_name] [-d preserve_delays] [-n num_iterations] [-t num_threads] -q -v | -s <list of parsed input files>\n",
progname);
fprintf(stderr, "%s -s, -v are mutually exclusive\n",
progname);
@@ -661,8 +662,11 @@ main(int argc, char **argv)
struct thread_state_s *state;
progname = argv[0];
- while ((c = getopt(argc, argv, "dn:st:qv")) != EOF) {
+ while ((c = getopt(argc, argv, "b:dn:st:qv")) != EOF) {
switch (c) {
+ case 'b':
+ blockdev_name = strdup(optarg);
+ break;
case 'd':
do_delay = 1;
break;
diff --git a/ioshark/ioshark_bench_subr.c b/ioshark/ioshark_bench_subr.c
index 4280a5a4..e8e93c9c 100644
--- a/ioshark/ioshark_bench_subr.c
+++ b/ioshark/ioshark_bench_subr.c
@@ -375,6 +375,8 @@ get_cores(void)
}
#endif
+extern char *blockdev_name;
+
static void
get_blockdev_name(char *bdev)
{
@@ -402,9 +404,11 @@ get_blockdev_name(char *bdev)
} else if (strncmp(dev_name, "marlin", strlen("marlin")) == 0 ||
strncmp(dev_name, "sailfish", strlen("sailfish")) == 0) {
strcpy(bdev, "sda");
+ } else if (blockdev_name != NULL) {
+ strcpy(bdev, blockdev_name);
} else {
fprintf(stderr,
- "%s: Unknown device %s\n",
+ "%s: Unknown device %s, please specify block device name with -b\n",
progname, dev_name);
exit(1);
}
diff --git a/tests/bootloader/bootloadertest.py b/tests/bootloader/bootloadertest.py
index 59233431..963e22f3 100644
--- a/tests/bootloader/bootloadertest.py
+++ b/tests/bootloader/bootloadertest.py
@@ -13,15 +13,20 @@
# limitations under the License.
import adb
+import argparse
import os
import unittest
import fastboot
import subprocess
+import sys
+
+# Default values for arguments
+device_type = "phone"
class ShellTest(unittest.TestCase):
- def __init__(self, *args, **kwargs):
- super(ShellTest, self).__init__(*args, **kwargs)
- self.fastboot = fastboot.FastbootDevice()
+ @classmethod
+ def setUpClass(cls):
+ cls.fastboot = fastboot.FastbootDevice()
def exists_validvals(self, varname, varlist, validlist):
self.assertIn(varname, varlist)
@@ -71,6 +76,20 @@ class ShellTest(unittest.TestCase):
self.fail("%s (%s) is not an integer" % (varname, val))
return num
+ def get_slotcount(self):
+ slotcount = 0
+ try:
+ val = self.fastboot.getvar("slot-count")
+ if val != None:
+ slotcount = int(val)
+ except ValueError:
+ self.fail("slot-count (%s) is not an integer" % val)
+ except subprocess.CalledProcessError:
+ print "Does not appear to be an A/B device."
+ if not slotcount:
+ print "Does not appear to be an A/B device."
+ return slotcount
+
def test_getvarall(self):
"""Tests that required variables are reported by getvar all"""
@@ -137,13 +156,7 @@ class ShellTest(unittest.TestCase):
maxdl = self.get_exists_integer("max-download-size", 16)
self.assertGreater(maxdl, 0)
- slotcount = 0
- try:
- slotcountString = self.fastboot.getvar("slot-count")
- if slotcountString != None:
- slotcount = int(slotcountString)
- except ValueError:
- self.fail("slot-count (%s) is not an integer" % slotcountString)
+ slotcount = self.get_slotcount()
if slotcount > 1:
# test for A/B variables
slots = [chr(slotnum+ord('a')) for slotnum in range(slotcount)]
@@ -154,45 +167,59 @@ class ShellTest(unittest.TestCase):
self.get_exists_yes_no("slot-unbootable:"+slot)
self.get_exists_yes_no("slot-successful:"+slot)
self.get_exists_integer("slot-retry-count:"+slot)
- else:
- print "This does not appear to be an A/B device."
def test_setactive(self):
"""Tests that A/B devices can switch to each slot, and the change persists over a reboot."""
+ # Test invalid if not an A/B device
+ slotcount = self.get_slotcount()
+ if not slotcount:
+ return
- slotcount = 0
- try:
- val = self.fastboot.getvar("slot-count")
- if val != None:
- slotcount = int(val)
- except ValueError:
- self.fail("slot-count (%s) is not an integer" % val)
- except subprocess.CalledProcessError:
- print "Does not appear to be an A/B device."
maxtries = 0
- if slotcount > 1:
- slots = [chr(slotnum+ord('a')) for slotnum in range(slotcount)]
- for slot in slots:
- self.fastboot.set_active(slot)
- self.assertEqual(slot, self.fastboot.getvar("current-slot"))
- self.assertEqual("no", self.fastboot.getvar("slot-unbootable:"+slot))
- self.assertEqual("no", self.fastboot.getvar("slot-successful:"+slot))
- retry = self.get_exists_integer("slot-retry-count:"+slot)
- if maxtries == 0:
- maxtries = retry
- else:
- self.assertEqual(maxtries, retry)
- self.fastboot.reboot(True)
- self.assertEqual(slot, self.fastboot.getvar("current-slot"))
- self.assertEqual("no", self.fastboot.getvar("slot-unbootable:"+slot))
- self.assertEqual("no", self.fastboot.getvar("slot-successful:"+slot))
- retry = self.get_exists_integer("slot-retry-count:"+slot)
- if maxtries == 0:
- maxtries = retry
- else:
- self.assertEqual(maxtries, retry)
- else:
- print "Does not appear to be an A/B device."
+ slots = [chr(slotnum+ord('a')) for slotnum in range(slotcount)]
+ for slot in slots:
+ self.fastboot.set_active(slot)
+ self.assertEqual(slot, self.fastboot.getvar("current-slot"))
+ self.assertEqual("no", self.fastboot.getvar("slot-unbootable:"+slot))
+ self.assertEqual("no", self.fastboot.getvar("slot-successful:"+slot))
+ retry = self.get_exists_integer("slot-retry-count:"+slot)
+ if maxtries == 0:
+ maxtries = retry
+ else:
+ self.assertEqual(maxtries, retry)
+ self.fastboot.reboot(True)
+ self.assertEqual(slot, self.fastboot.getvar("current-slot"))
+ self.assertEqual("no", self.fastboot.getvar("slot-unbootable:"+slot))
+ self.assertEqual("no", self.fastboot.getvar("slot-successful:"+slot))
+ retry = self.get_exists_integer("slot-retry-count:"+slot)
+ if maxtries == 0:
+ maxtries = retry
+ else:
+ self.assertEqual(maxtries, retry)
+
+ def test_hasslot(self):
+ """Tests that A/B devices report partitions that have slots."""
+ # Test invalid if not an A/B device
+ if not self.get_slotcount():
+ return
+
+ self.assertEqual("yes", self.fastboot.getvar("has-slot:system"))
+ self.assertEqual("yes", self.fastboot.getvar("has-slot:boot"))
+
+ # Additional partition on AndroidThings (IoT) devices
+ if device_type == "iot":
+ self.assertEqual("yes", self.fastboot.getvar("has-slot:oem"))
if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--device-type", default="phone",
+ help="Type of device ('phone' or 'iot').")
+ parser.add_argument("extra_args", nargs="*")
+ args = parser.parse_args()
+
+ if args.device_type.lower() not in ("phone", "iot"):
+ raise ValueError("Unsupported device type '%s'." % args.device_type)
+ device_type = args.device_type.lower()
+
+ sys.argv[1:] = args.extra_args
unittest.main(verbosity=3)
diff --git a/tests/kernel.config/Android.mk b/tests/kernel.config/Android.mk
index aa506c08..0c3fedd0 100644
--- a/tests/kernel.config/Android.mk
+++ b/tests/kernel.config/Android.mk
@@ -18,7 +18,6 @@ cts_src_files := \
logger_test.cpp \
multicast_test.cpp \
nfs_test.cpp \
- pstore_test.cpp \
sysvipc_test.cpp \
# Required plus Recommended Tests
@@ -28,6 +27,7 @@ test_src_files := \
aslr_test.cpp \
aslr_rec_test.cpp \
mmc_max_speed_test.cpp \
+ pstore_test.cpp \
include $(CLEAR_VARS)
LOCAL_MODULE := kernel-config-unit-tests
@@ -51,7 +51,7 @@ LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
LOCAL_SHARED_LIBRARIES := libbase
LOCAL_STATIC_LIBRARIES := libgtest libgtest_main
-LOCAL_COMPATIBILITY_SUITE := cts
+LOCAL_COMPATIBILITY_SUITE := cts vts
LOCAL_CTS_TEST_PACKAGE := android.kernel.config
include $(BUILD_CTS_EXECUTABLE)