aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/uid_cputime.c
Commit message (Collapse)AuthorAgeFilesLines
* ANDROID: uid_sys_stats: rename uid_cputime.c to uid_sys_stats.cJin Qian2017-05-231-489/+0
| | | | | | | | This module tracks cputime and io stats. Signed-off-by: Jin Qian <jinqian@google.com> Bug: 34198239 Change-Id: I9ee7d9e915431e0bb714b36b5a2282e1fdcc7342
* ANDROID: uid_cputime: add per-uid IO usage accountingJin Qian2017-05-231-16/+233
| | | | | | | | | | | | | | | | | | IO usages are accounted in foreground and background buckets. For each uid, io usage is calculated in two steps. delta = current total of all uid tasks - previus total current bucket += delta Bucket is determined by current uid stat. Userspace writes to /proc/uid_procstat/set <uid> <stat> when uid stat is updated. /proc/uid_io/stats shows IO usage in this format. <uid> <foreground IO> <background IO> Signed-off-by: Jin Qian <jinqian@google.com> Bug: 34198239 Change-Id: I3369e59e063b1e5ee0dfe3804c711d93cb937c0c
* UID: fix UID_CPUTIME issueAnmin Hsu2017-04-111-0/+18
| | | | | | | | | | | | | | | | | | | [Detail] KernelUidCpuTimeReader read uid_cputime_stat to get system time, but uid_cputime have some issue cause system update value error. Use workaround to fix this issue. [Solution] enable UID_CPUTIME and check new system is smaller than old. If true return old system time. [Feature] UID MTK-Commit-Id: db35d391a485746c9a12f4413a17961a94792323 Change-Id: I27bacb410365bd5144ef34177fe54a88535d1c0d Signed-off-by: May Huang <may.huang@mediatek.com> CR-Id: ALPS02294778
* uid_cputime: Check for the range while removing range of UIDs.Ruchi Kandoi2016-09-101-4/+5
| | | | | | | | | | | Checking if the uid_entry->uid matches the uid intended to be removed will prevent deleting unwanted uid_entry. Type cast the key for the hashtable to the same size, as when they were inserted. This will make sure that we can find the uid_entry we want. Bug: 25195548 Change-Id: I567942123cfb20e4b61ad624da19ec4cc84642c1 Signed-off: Ruchi kandoi <kandoiruchi@google.com>
* uid_cputime: Iterates over all the threads instead of processes.Ruchi Kandoi2016-09-101-3/+3
| | | | | | Bug: 22833116 Change-Id: I775a18f61bd2f4df2bec23d01bd49421d0969f87 Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
* uid_cputime: fix cputime overflowJin Qian2016-09-101-4/+6
| | | | | | | | | | | Converting cputime_t to usec caused overflow when the value is greater than 1 hour. Use msec and convert to unsigned long long to support bigger range. Bug: 22461683 Change-Id: I853fe3e8e7dbf0d3e2cc5c6f9688a5a6e1f1fb3e Signed-off-by: Jin Qian <jinqian@google.com>
* uid_cputime: Avoids double accounting of process stime, utime and cpu_power inRuchi Kandoi2016-09-101-0/+6
| | | | | | | | | | | | | | | task exit. This avoids the race where a particular process is terminating and we read the show_uid_stats. At this time since the task_struct still exists and we will account for the terminating process as one of the active task, where as the stats would have been added in the task exit callback. Bug: 22064385 Change-Id: Id2ae04b33fcd230eda9683a41b6019d4dd8f5d85 Signed-off-by: Jin Qian <jinqian@google.com> Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
* uid_cputime: Extends the cputime functionality to report power per uidRuchi Kandoi2016-09-101-2/+10
| | | | | | | | /proc/uid_cputime/show_uid_stats shows a third field power for each of the uids. It represents the power in the units (uAusec) Change-Id: I52fdc5e59647e9dc97561a26d56f462a2689ba9c Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
* proc: uid_cputime: fix show_uid_stat permissionJin Qian2016-09-101-1/+1
| | | | | Change-Id: Ice9084e39da599261df0be6dc305b817b50cfbbf Signed-off-by: Jin Qian <jinqian@google.com>
* proc: uid_cputime: create uids from kuidsAmit Pundir2016-09-101-3/+5
| | | | | | | | | | | | | | | | | | | Create uids from kuids using from_kuid_munged(), otherwise we run into following build error and warnings: -------------------- CC drivers/misc/uid_cputime.o drivers/misc/uid_cputime.c: In function ‘uid_stat_show’: drivers/misc/uid_cputime.c:90:36: error: incompatible type for argument 1 of ‘find_or_register_uid’ drivers/misc/uid_cputime.c:54:26: note: expected ‘uid_t’ but argument is of type ‘kuid_t’ drivers/misc/uid_cputime.c:94:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘kuid_t’ [-Wformat] drivers/misc/uid_cputime.c: In function ‘process_notifier’: drivers/misc/uid_cputime.c:194:6: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’ make[2]: *** [drivers/misc/uid_cputime.o] Error 1 -------------------- Change-Id: Ifecb98001f7fe2fac74d1ef3e1abd03d43fc9059 Signed-off-by: Amit Pundir <amit.pundir@linaro.org> (cherry picked from commit b0f4decae627cf2d74e6f72c7ecb939c77d48625)
* proc: uid: Adds accounting for the cputimes per uid.jinqian2016-09-101-0/+235
Adds proc files /proc/uid_cputime/show_uid_stat and /proc/uid_cputime/remove_uid_range. show_uid_stat lists the total utime and stime for the active as well as terminated processes for each of the uids. Writing a range of uids to remove_uid_range will delete the accounting for all the uids within that range. Change-Id: I21d9210379da730b33ddc1a0ea663c8c9d2ac15b