summaryrefslogtreecommitdiff
path: root/fs/proc
diff options
context:
space:
mode:
authorConnor O'Brien <connoro@google.com>2018-01-22 18:28:08 -0800
committerConnor O'Brien <connoro@google.com>2018-03-06 20:40:13 +0000
commitea0dbcb473aab21f18b4f5e0fe6bb5dd4fc74459 (patch)
tree095418cbc972a43700705ddeab6fe644b44e9963 /fs/proc
parent552095deb5650aa958cb29c6ae712728d38c4a5a (diff)
ANDROID: cpufreq: Add time_in_state to /proc/uid directories
Add per-uid files that report the data in binary format rather than text, to allow faster reading & parsing by userspace. Signed-off-by: Connor O'Brien <connoro@google.com> Bug: 72339335 Test: compare values to those reported in /proc/uid_time_in_state Change-Id: I463039ea7f17b842be4c70024fe772539fe2ce02
Diffstat (limited to 'fs/proc')
-rw-r--r--fs/proc/uid.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/fs/proc/uid.c b/fs/proc/uid.c
index 3c7e87c2a820..c0d439a00560 100644
--- a/fs/proc/uid.c
+++ b/fs/proc/uid.c
@@ -2,6 +2,7 @@
* /proc/uid support
*/
+#include <linux/cpufreq_times.h>
#include <linux/fs.h>
#include <linux/hashtable.h>
#include <linux/init.h>
@@ -81,7 +82,20 @@ struct uid_entry {
.fop = FOP, \
}
-static const struct uid_entry uid_base_stuff[] = {};
+#ifdef CONFIG_CPU_FREQ_TIMES
+const struct file_operations proc_uid_time_in_state_operations = {
+ .open = single_uid_time_in_state_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+#endif
+
+static const struct uid_entry uid_base_stuff[] = {
+#ifdef CONFIG_CPU_FREQ_TIMES
+ NOD("time_in_state", 0444, NULL, &proc_uid_time_in_state_operations),
+#endif
+};
const struct inode_operations proc_uid_def_inode_operations = {
.setattr = proc_setattr,