diff options
author | Minchan Kim <minchan@google.com> | 2020-03-05 11:26:14 -0800 |
---|---|---|
committer | Minchan Kim <minchan@google.com> | 2020-03-19 14:17:07 -0700 |
commit | 30616678fe897178d03cac376a284474c7629cfb (patch) | |
tree | a1ac0150489a478dbd8a4b1ef6cb723b51b908a2 /mm | |
parent | 2a1910fadb367d37f8f386b1056dd4c26a6ab506 (diff) |
mm_logd: add pixel mm_logd to monitor mm stats
It monitor /proc/vmstat on every minute by default and store them
to /data/vendor/mm/ directories.
The mm_logd runs only when persist.vendor.log.mm is set to 1.
User could change the interval via persist.vendor.log.mm.interval.
Bug: 151100384
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I89eabf59268a7f4138ae13900f7fa479e6c20217
Diffstat (limited to 'mm')
-rw-r--r-- | mm/Android.bp | 8 | ||||
-rwxr-xr-x | mm/init.mm.logging.sh | 34 | ||||
-rw-r--r-- | mm/pixel-mm-logd.rc | 19 |
3 files changed, 61 insertions, 0 deletions
diff --git a/mm/Android.bp b/mm/Android.bp new file mode 100644 index 0000000..f733d7e --- /dev/null +++ b/mm/Android.bp @@ -0,0 +1,8 @@ +sh_binary { + name: "mm_logd", + src: "init.mm.logging.sh", + vendor: true, + init_rc: [ + "pixel-mm-logd.rc", + ], +} diff --git a/mm/init.mm.logging.sh b/mm/init.mm.logging.sh new file mode 100755 index 0000000..38c54e0 --- /dev/null +++ b/mm/init.mm.logging.sh @@ -0,0 +1,34 @@ +#!/vendor/bin/sh + +if [ $# -eq 1 ]; then + interval=$1 +else + exit 1 +fi + +kcompactd_pid=`pidof -x kcompactd0` +kswapd_pid=`pidof -x kswapd0` + +while true +do + log_time=`date '+%m-%d-%H-%M-%S'` + + log_vmstat=`cat /proc/vmstat` + log_kcompactd=`cat /proc/$kcompactd_pid/stat` + log_kswapd=`cat /proc/$kswapd_pid/stat` + log_stat=`cat /proc/stat` + + log_line="$log_time $log_vmstat" + echo $log_line >> /data/vendor/mm/vmstat/log + + log_line="$log_time $log_kcompactd" + echo $log_line >> /data/vendor/mm/kcompactd/log + + log_line="$log_time $log_kswapd" + echo $log_line >> /data/vendor/mm/kswapd/log + + log_line="$log_time $log_stat" + echo $log_line >> /data/vendor/mm/stat/log + + sleep $interval +done diff --git a/mm/pixel-mm-logd.rc b/mm/pixel-mm-logd.rc new file mode 100644 index 0000000..40bcbe4 --- /dev/null +++ b/mm/pixel-mm-logd.rc @@ -0,0 +1,19 @@ +on property:persist.vendor.log.mm=1 + mkdir /data/vendor/mm 0700 root system + mkdir /data/vendor/mm/vmstat 0700 root system + mkdir /data/vendor/mm/stat 0700 root system + mkdir /data/vendor/mm/kswapd 0700 root system + mkdir /data/vendor/mm/kcompactd 0700 root system + start vendor.mm.logd + +on property:persist.vendor.log.mm=0 + stop vendor.mm.logd + +on property:persist.vendor.log.mm=1 && property:persist.vendor.log.mm.interval=* + restart vendor.mm.logd + +service vendor.mm.logd /vendor/bin/mm_logd ${persist.vendor.log.mm.interval:-60} + class main + user root + group root system + disabled |