From 1afc3d9b7035782e091d9bb3e9643aac0b9cf93a Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Thu, 26 Sep 2019 12:24:18 +0900 Subject: [PATCH] Keep track of number of context switches per CPU Change-Id: I7a2194c8777a7efcd34e1ed7f4734da03fb4d433 --- kernel/include/cls.h | 1 + kernel/process.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/include/cls.h b/kernel/include/cls.h index e7e42a83..3ba98905 100644 --- a/kernel/include/cls.h +++ b/kernel/include/cls.h @@ -100,6 +100,7 @@ struct cpu_local_var { int in_interrupt; int no_preempt; int timer_enabled; + unsigned long nr_ctx_switches; int kmalloc_initialized; struct ihk_os_cpu_monitor *monitor; struct rusage_percpu *rusage; diff --git a/kernel/process.c b/kernel/process.c index b8224146..c00e29ea 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -3518,8 +3518,11 @@ void schedule(void) set_timer(1); if (switch_ctx) { - dkprintf("schedule: %d => %d \n", - prev ? prev->tid : 0, next ? next->tid : 0); + ++cpu_local_var(nr_ctx_switches); + dkprintf("%s: %d => %d [ctx sws: %lu]\n", + __func__, + prev ? prev->tid : 0, next ? next->tid : 0, + cpu_local_var(nr_ctx_switches)); if (prev && prev->ptrace_debugreg) { save_debugreg(prev->ptrace_debugreg);