Re: [PATCH -tip] sched: Clean unused fields from struct rq

From: Gregory Haskins
Date: Wed Mar 18 2009 - 16:58:14 EST


Hi Luis,

Luis Henriques wrote:
> Since they are used on in statistics and are always set to zero, the following
> fields from struct rq have been removed: yld_exp_empty, yld_act_empty and
> yld_both_empty.
>
> Sched Debug version has also been incremented.
>
> Signed-off-by: Luis Henriques <henrix@xxxxxxx>
> ---
> kernel/sched.c | 3 ---
> kernel/sched_debug.c | 5 +----
> kernel/sched_stats.h | 5 ++---
> 3 files changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/kernel/sched.c b/kernel/sched.c
> index 4000304..289eac2 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -646,9 +646,6 @@ struct rq {
> /* could above be rq->cfs_rq.exec_clock + rq->rt_rq.rt_runtime ? */
>
> /* sys_sched_yield() stats */
> - unsigned int yld_exp_empty;
> - unsigned int yld_act_empty;
> - unsigned int yld_both_empty;
> unsigned int yld_count;
>
> /* schedule() stats */
> diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c
> index 2b1260f..58cdc5c 100644
> --- a/kernel/sched_debug.c
> +++ b/kernel/sched_debug.c
> @@ -287,9 +287,6 @@ static void print_cpu(struct seq_file *m, int cpu)
> #ifdef CONFIG_SCHEDSTATS
> #define P(n) SEQ_printf(m, " .%-30s: %d\n", #n, rq->n);
>
> - P(yld_exp_empty);
> - P(yld_act_empty);
> - P(yld_both_empty);
> P(yld_count);
>
> P(sched_switch);
> @@ -314,7 +311,7 @@ static int sched_debug_show(struct seq_file *m, void *v)
> u64 now = ktime_to_ns(ktime_get());
> int cpu;
>
> - SEQ_printf(m, "Sched Debug Version: v0.08, %s %.*s\n",
> + SEQ_printf(m, "Sched Debug Version: v0.09, %s %.*s\n",
>

I actually key off the SCHEDSTAT_VERSION (currently 14) at the top of
kernel/sched_stats.h. Cursory inspection of the existing code and your
patch says that this should actually be the value that needs updating
(vs. vSched-Debug). However, note that I am not sure if there are also
users of sched-debug that need to see that version bump as well in order
to remain compatible.

If you are really motivated, you can test your patches against my
schedtop tool to verify sane behavior (for bumping SCHEDSTAT_VERSION to
15, I would expect it to gracefully report that it cannot handle this
version and exit). You can find both source and rpms here:

http://rt.wiki.kernel.org/index.php/Schedtop_utility

Thanks!
-Greg


Attachment: signature.asc
Description: OpenPGP digital signature