aboutsummaryrefslogtreecommitdiffstats
path: root/libcutils
diff options
context:
space:
mode:
authorSan Mehat <san@google.com>2009-10-29 12:11:17 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2009-10-29 12:11:17 -0700
commitb22f804c639b2f47fdd6841c90da0e6df7b572f6 (patch)
tree7ebca39bb75a2b10b9301b9faa784b2d974a49f3 /libcutils
parent6e7240a6d0f7ed63cc340df4950b1cd8b83569ae (diff)
parentd2e4e46ce4bc29c3328fccfbbbe0590eaa8713f7 (diff)
downloadsystem_core-b22f804c639b2f47fdd6841c90da0e6df7b572f6.tar.gz
system_core-b22f804c639b2f47fdd6841c90da0e6df7b572f6.tar.bz2
system_core-b22f804c639b2f47fdd6841c90da0e6df7b572f6.zip
am d2e4e46c: cutils: schedpolicy: Add debug code to log sched policy transitions
Merge commit 'd2e4e46ce4bc29c3328fccfbbbe0590eaa8713f7' into eclair-plus-aosp * commit 'd2e4e46ce4bc29c3328fccfbbbe0590eaa8713f7': cutils: schedpolicy: Add debug code to log sched policy transitions
Diffstat (limited to 'libcutils')
-rw-r--r--libcutils/sched_policy.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/libcutils/sched_policy.c b/libcutils/sched_policy.c
index 93fcd4ae..8357bba3 100644
--- a/libcutils/sched_policy.c
+++ b/libcutils/sched_policy.c
@@ -23,6 +23,9 @@
#include <errno.h>
#include <fcntl.h>
+#define LOG_TAG "SchedPolicy"
+#include "cutils/log.h"
+
#ifdef HAVE_SCHED_H
#include <sched.h>
@@ -37,6 +40,8 @@
#define SCHED_BATCH 3
#endif
+#define POLICY_DEBUG 1
+
static int __sys_supports_schedgroups = -1;
static int add_tid_to_cgroup(int tid, const char *grp_name)
@@ -155,6 +160,38 @@ int set_sched_policy(int tid, SchedPolicy policy)
{
initialize();
+#if POLICY_DEBUG
+ char statfile[64];
+ char statline[1024];
+ char thread_name[255];
+ int fd;
+
+ sprintf(statfile, "/proc/%d/stat", tid);
+ memset(thread_name, 0, sizeof(thread_name));
+
+ fd = open(statfile, O_RDONLY);
+ if (fd >= 0) {
+ int rc = read(fd, statline, 1023);
+ close(fd);
+ statline[rc] = 0;
+ char *p = statline;
+ char *q;
+
+ for (p = statline; *p != '('; p++);
+ p++;
+ for (q = p; *q != ')'; q++);
+
+ strncpy(thread_name, p, (q-p));
+ }
+ if (policy == SP_BACKGROUND) {
+ LOGD("vvv tid %d (%s)", tid, thread_name);
+ } else if (policy == SP_FOREGROUND) {
+ LOGD("^^^ tid %d (%s)", tid, thread_name);
+ } else {
+ LOGD("??? tid %d (%s)", tid, thread_name);
+ }
+#endif
+
if (__sys_supports_schedgroups) {
const char *grp = NULL;