storaged: handle negative delta in io usage
When UID is uninstalled and reinstalled, IO usage of the UID is reset. This caused problem in accounting since it assumes IO usage is always increasing for the same UID. In such case, use the current usage instead of negative delta for accounting. Bug: 34198239 Change-Id: I74661feccc05d19ba8a0feff8a2e38d72c7d1465
This commit is contained in:
parent
cee1918b08
commit
baff640d5d
|
@ -204,18 +204,23 @@ void uid_monitor::update_curr_io_stats_locked()
|
|||
}
|
||||
|
||||
struct uid_io_usage& usage = curr_io_stats[uid.name];
|
||||
usage.bytes[READ][FOREGROUND][charger_stat] +=
|
||||
uid.io[FOREGROUND].read_bytes -
|
||||
int64_t fg_rd_delta = uid.io[FOREGROUND].read_bytes -
|
||||
last_uid_io_stats[uid.uid].io[FOREGROUND].read_bytes;
|
||||
usage.bytes[READ][BACKGROUND][charger_stat] +=
|
||||
uid.io[BACKGROUND].read_bytes -
|
||||
int64_t bg_rd_delta = uid.io[BACKGROUND].read_bytes -
|
||||
last_uid_io_stats[uid.uid].io[BACKGROUND].read_bytes;
|
||||
usage.bytes[WRITE][FOREGROUND][charger_stat] +=
|
||||
uid.io[FOREGROUND].write_bytes -
|
||||
int64_t fg_wr_delta = uid.io[FOREGROUND].write_bytes -
|
||||
last_uid_io_stats[uid.uid].io[FOREGROUND].write_bytes;
|
||||
int64_t bg_wr_delta = uid.io[BACKGROUND].write_bytes -
|
||||
last_uid_io_stats[uid.uid].io[BACKGROUND].write_bytes;
|
||||
|
||||
usage.bytes[READ][FOREGROUND][charger_stat] +=
|
||||
(fg_rd_delta < 0) ? uid.io[FOREGROUND].read_bytes : fg_rd_delta;
|
||||
usage.bytes[READ][BACKGROUND][charger_stat] +=
|
||||
(bg_rd_delta < 0) ? uid.io[BACKGROUND].read_bytes : bg_rd_delta;
|
||||
usage.bytes[WRITE][FOREGROUND][charger_stat] +=
|
||||
(fg_wr_delta < 0) ? uid.io[FOREGROUND].write_bytes : fg_wr_delta;
|
||||
usage.bytes[WRITE][BACKGROUND][charger_stat] +=
|
||||
uid.io[BACKGROUND].write_bytes -
|
||||
last_uid_io_stats[uid.uid].io[BACKGROUND].write_bytes;;
|
||||
(bg_wr_delta < 0) ? uid.io[BACKGROUND].write_bytes : bg_wr_delta;
|
||||
}
|
||||
|
||||
last_uid_io_stats = uid_io_stats;
|
||||
|
|
Loading…
Reference in New Issue