sched: Remove sched_switch completely from runqueue structure.
Subsystems (2)
PATCH 1/1 sched: Remove sched_switch completely from runqueue structure.
Currently we don't utilize sched_switch field properly for counting context switch numbers. We can remove it. But, simply removing sched_switch field from sched_stat output will break ABI integrity. So, we make sure /proc/sched_stat output remains as it is by hardcoding zero in place of sched_switch field's output and remove sched_switch from sched_debug output too. And update scheduler-stat documentation accordingly.
---
Documentation/scheduler/sched-stats.txt +2 -1
@@ -38,7 +38,8 @@ First field is a sched_yield() statistic: 1) # of times sched_yield() was called Next three are schedule() statistics: - 2) # of times we switched to the expired queue and reused it + 2) This field is a legacy array expiration count field used in the O(1) + scheduler. We kept it for ABI compatibility, but it is always set to zero. 3) # of times schedule() was called 4) # of times schedule() left the processor idle
kernel/sched/debug.c +0 -1
@@ -288,7 +288,6 @@ static void print_cpu(struct seq_file *m, int cpu)P (yld_count); -P (sched_switch);P (sched_count);P (sched_goidle);#ifdef CONFIG_SMP
kernel/sched/sched.h +0 -1
@@ -462,7 +462,6 @@ struct rq {unsigned int yld_count;/* schedule() stats */ -unsigned int sched_switch;unsigned int sched_count;unsigned int sched_goidle;
kernel/sched/stats.c +2 -2
@@ -32,9 +32,9 @@ static int show_schedstat(struct seq_file *seq, void *v)/* runqueue-specific stats */ seq_printf (seq, -"cpu%d %u %u %u %u %u %u %llu %llu %lu" , +"cpu%d %u 0 %u %u %u %u %llu %llu %lu" , cpu, rq->yld_count, - rq->sched_switch, rq->sched_count, rq->sched_goidle, + rq->sched_count, rq->sched_goidle, rq->ttwu_count, rq->ttwu_local, rq->rq_cpu_time, rq->rq_sched_info.run_delay, rq->rq_sched_info.pcount);
Quoted 10 lines · Rakib Mullick
Currently we don't utilize
sched_switchfield properly for counting context switch numbers. We can remove it.
But, simply removingsched_switchfield fromsched_statoutput will break ABI integrity. So, we make sure/proc/sched_statoutput remains as it is by hardcoding zero in place ofsched_switchfield's output and removesched_switchfromsched_debugoutput too. And update scheduler-stat documentation accordingly.Signed-off-by Rakib Mullick <[email protected]>
Thanks
[tip:sched/core] sched: Remove sched_switch
In reply to Rakib MullickCommit-ID: 30fd049afcfed50e022704036e8629d6bdfe84e6 Gitweb: http://git.kernel.org/tip/30fd049afcfed50e022704036e8629d6bdfe84e6 Author: Rakib Mullick <[email protected]> AuthorDate: Tue, 24 Jan 2012 22:33:56 +0600 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 27 Jan 2012 13:28:53 +0100
sched: Remove sched_switch
Currently we don't utilize the sched_switch field anymore.
But, simply removing sched_switch field from the middle of the sched_stat output will break tools.
So, to stay compatible we hardcode it to zero and remove the field from the scheduler data structures.
Update the schedstat documentation accordingly.
--- Documentation/scheduler/sched-stats.txt | 3 ++- kernel/sched/debug.c | 1 - kernel/sched/sched.h | 1 - kernel/sched/stats.c | 4 ++-- 4 files changed, 4 insertions(+), 5 deletions(-)
Documentation/scheduler/sched-stats.txt +2 -1
@@ -38,7 +38,8 @@ First field is a sched_yield() statistic: 1) # of times sched_yield() was called Next three are schedule() statistics: - 2) # of times we switched to the expired queue and reused it + 2) This field is a legacy array expiration count field used in the O(1) + scheduler. We kept it for ABI compatibility, but it is always set to zero. 3) # of times schedule() was called 4) # of times schedule() left the processor idle
kernel/sched/debug.c +0 -1
@@ -288,7 +288,6 @@ static void print_cpu(struct seq_file *m, int cpu)P (yld_count); -P (sched_switch);P (sched_count);P (sched_goidle);#ifdef CONFIG_SMP
kernel/sched/sched.h +0 -1
@@ -462,7 +462,6 @@ struct rq {unsigned int yld_count;/* schedule() stats */ -unsigned int sched_switch;unsigned int sched_count;unsigned int sched_goidle;
kernel/sched/stats.c +2 -2
@@ -32,9 +32,9 @@ static int show_schedstat(struct seq_file *seq, void *v)/* runqueue-specific stats */ seq_printf (seq, -"cpu%d %u %u %u %u %u %u %llu %llu %lu" , +"cpu%d %u 0 %u %u %u %u %llu %llu %lu" , cpu, rq->yld_count, - rq->sched_switch, rq->sched_count, rq->sched_goidle, + rq->sched_count, rq->sched_goidle, rq->ttwu_count, rq->ttwu_local, rq->rq_cpu_time, rq->rq_sched_info.run_delay, rq->rq_sched_info.pcount);