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);