Commit Graph

15 Commits

Author SHA1 Message Date
Jin Qian dd41d6b171 storaged: allow dump window to be less than an hour
This is useful for CTS where we just need dump from last few minutes.

Bug: 34198239
Bug: 34845096
Change-Id: Ic543e7184606f419f8989bf0cb992cd46e48845c
2017-02-10 17:25:34 -08:00
Jin Qian 1275b1b6aa storaged: add --force option to dumpsys
This option forces storaged to generate io usage report since last
report. This is for testing purpose so that we can run some app and
get the app's IO usage right away instead of waiting an hour for next
report.

Bug: 34198239
Bug: 34845096
Change-Id: I9cd217df37a9b6c8f383eb25d41602e8e8c8f9ba
2017-02-10 15:48:21 -08:00
Jin Qian e5ea17c840 storaged: add dumpsys flags to limit data size
--threshold <bytes>
This skips io usage not greater than <bytes> for current report.

--time_window <secs>
This sets uid_io collection interval to <secs> for future reports.
The new interval will be ignore if it's less than 5 minutes.

Test: adb shell dumpsys --threshold 4096 --time_window 300
Bug: 33086174
Bug: 34198239
Change-Id: I723c0850fa504a113da0a14945c4fbc64ea47659
2017-02-10 15:28:34 -08:00
Jin Qian 5b962c6dbd storaged: account on/off charger per uid io usage
Register a listener to batteryproperties service for charger stats
change.

Aggregate IO usage based on charger stats in a collection window.

Bug: 33086174
Bug: 34198239
Change-Id: Ibe306c9c3ff8b8ada6be034aa8511268cb9a9b1c
2017-02-07 21:41:15 +00:00
Jin Qian 9cdfdd3ff9 storaged: add --hours flag for dumpsys
1. Add a flag to report IO usage for last N hours.
2. Change interval back to 1 hour so that we have finer usage data.
3. Don't clear events after dumpsys call. Use a max buffer limit.
4. Clear old events if they're more than 5 days old or when no room
for new events.
5. Skip uids with no IO usage to save space.
6. Replace interval with a timestamp in event entry.

Test: adb shell dumpsys storaged --hours 2
Bug: 34198239
Bug: 33086174
Change-Id: I66e8fb6ec155584115fab817c3ed2c78e637ac40
2017-02-01 16:48:21 -08:00
Jin Qian 284bd76d3e storaged: change uid_io reporting
Increase reporting interval to once per day.
Report foreground and background I/O usage.
Remove threshold to report all usages.

Test: adb shell dumpsys storaged
Bug: 34198239
Bug: 33086174
Change-Id: I3b4ea8200bdb8becb5b441051f52477bbd1f3ccf
2017-01-30 14:22:49 -08:00
Jin Qian a2e5bd1347 storaged: add dumpsys interface
Write alerts to an internal buffer and flush to dumpsys
when dump is called.

Test: adb shell dumpsys storaged
Bug: 33086174
Bug: 34198239
Change-Id: I39e5dfd9c4e9a5f3ec3d74356b28e9ddf77f6624
2017-01-25 18:07:30 -08:00
Jin Qian 88ad33eff1 storaged: remove task io code
Bug: 34612499
Change-Id: Id0599ee2ae025a186259e95363c1ddd0feae8079
2017-01-24 14:45:50 -08:00
Jin Qian 3790f5bfaf storaged: replace cmd arguments with properties
Add properties to control event intervals.
Add a property to check time spent in event loop.

Bug: 34612341
Bug: 34198239
Change-Id: I01f64c84e17153377ece7ae530be106e3f55287e
2017-01-24 14:45:50 -08:00
Jin Qian bcd6e3b9d9 storaged: monitor per-uid IO usage
Add uid_monitor class to query /proc/uid_io/stats periodically.
Add a log tag to record any UID that exceeds IO threshold.

Test: adb shell storaged -u
Bug: 34198239
Change-Id: I53568c30dbefe2f4bdb18054d3dedb30b4133d8b
2017-01-24 14:45:35 -08:00
Jin Qian b00d5467d3 storaged: fix crash when cmdline is longer than 64 characters
Bug: 34331490
Change-Id: I40302f4d54b7d8fe4fc5ecbc76df42df68a35504
2017-01-17 15:45:05 -08:00
Jin Qian 27506fa41f storaged: remove redundant logging
Don't log disk_stats and emmc_info to system buffer since they
are already uploaded to events buffer.

Use DEBUG flag to control disk perf logging.

Bug: 34331490
Change-Id: I5f628a1a46e1f72588da064523da69737bd67dcb
2017-01-17 15:43:25 -08:00
Jin Qian 0c77270ffc storaged: increase periodic polling interval
set default polling internal to 1 minute
set default disk stats publish to 1 hour
set default emmc info publish to 1 day

Bug: 34331490
Change-Id: Ifd86ddf9d826fb252de9dc8d6881e80ccb193e3b
2017-01-17 15:37:37 -08:00
Jin Qian 535ddbe2c9 storaged: replace kmsg with LOG macros
Also convert android_log_event to C++ style calls.

Change-Id: I7d62c81789fe7925fe9cae3e2a798b6af8c8be9d
2017-01-13 19:02:23 +00:00
ynwang 62cb372279 storaged: add storaged native daemon
Storaged periodically checks the devices' disk stats and eMMC lifetime.
This information is logged to both the kernel and event log. By event
logging, the data can be aggregated by the checkin service and then
sent to Sawmill.

It also periodically traverses /proc/[pid], maintaining the I/O usage of
all tasks (all sampled tasks). The task I/O data can be reported using
the --dump option.

Storaged is booted when the device boots up and requires the permission
for reading /proc/diskstats, /proc/[pid]/io and debugfs(eMMC ext_csd).
For detailed description, please refer to go/storaged.

Bug: 28826771
Change-Id: I774b1a44cc30092bac1bfcbc08bf487295e7cfed
2016-12-15 15:56:33 -08:00