[kdb] [PATCH 1] kdb-cmd-rq-extend

jidong xiao jidong.xiao at gmail.com
Fri Oct 23 04:24:30 CDT 2009


I have tested these patches on x86_64 machine, and all of them work fine.

Regards
Jason

On Mon, Oct 12, 2009 at 11:20 PM, Joe Korty <joe.korty at ccur.com> wrote:
> Revamp the KDB rq command.
>
> This patch adds new rq fields to the display, and
> also puts the various xxx_printf's under the correct
> #ifdefs.
>
> Signed-off-by: Joe Korty <joe.korty at ccur.com>
>
> Index: 2.6.31.3-kdb/kernel/sched.c
> ===================================================================
> --- 2.6.31.3-kdb.orig/kernel/sched.c    2009-10-12 11:05:03.000000000 -0400
> +++ 2.6.31.3-kdb/kernel/sched.c 2009-10-12 11:05:08.000000000 -0400
> @@ -10593,7 +10593,7 @@
>        int pri, printed_header = 0;
>        struct task_struct *p;
>
> -       xxx_printf("  %s rt bitmap: 0x%lx 0x%lx 0x%lx\n",
> +       xxx_printf(" %s rt bitmap: 0x%lx 0x%lx 0x%lx\n",
>                name,
>                array->bitmap[0], array->bitmap[1], array->bitmap[2]);
>
> @@ -10651,6 +10651,7 @@
>  void
>  kdb_runqueue(unsigned long cpu, kdb_printf_t xxx_printf)
>  {
> +       int i;
>        struct rq *rq;
>
>        rq = cpu_rq(cpu);
> @@ -10660,13 +10661,29 @@
>                   rq->curr, rq->curr->pid, rq->curr->comm);
>        if (rq->curr == rq->idle)
>                xxx_printf(" is idle");
> -       xxx_printf("\n ");
> +       xxx_printf("\n");
> +
> +       xxx_printf(" nr_running:%ld ", rq->nr_running);
> +       xxx_printf(" nr_uninterruptible:%ld ", rq->nr_uninterruptible);
> +       xxx_printf(" nr_migrations_in:%lld\n", (long long)rq->nr_migrations_in);
> +
> +       xxx_printf(" nr_switches:%llu ", (long long)rq->nr_switches);
> +       xxx_printf(" nr_iowait:%u ", atomic_read(&rq->nr_iowait));
> +       xxx_printf(" next_balance:%lu\n", rq->next_balance);
> +
>  #ifdef CONFIG_SMP
> -       xxx_printf(" cpu_load:%lu %lu %lu",
> -                       rq->cpu_load[0], rq->cpu_load[1], rq->cpu_load[2]);
> +       xxx_printf(" active_balance:%u ", rq->active_balance);
> +       xxx_printf(" idle_at_tick:%u\n", rq->idle_at_tick);
> +
> +       xxx_printf(" push_cpu:%u ", rq->push_cpu);
> +       xxx_printf(" cpu:%u ", rq->cpu);
> +       xxx_printf(" online:%u\n", rq->online);
>  #endif
> -       xxx_printf(" nr_running:%lu nr_switches:%llu\n",
> -                  rq->nr_running, (long long)rq->nr_switches);
> +
> +       xxx_printf(" cpu_load:");
> +       for (i=0; i<CPU_LOAD_IDX_MAX; i++)
> +               xxx_printf(" %lu", rq->cpu_load[i]);
> +       xxx_printf("\n");
>        kdb_prio("active", &rq->rt.active, xxx_printf, (unsigned int)cpu);
>  }
>  EXPORT_SYMBOL(kdb_runqueue);
>
> _______________________________________________
> kdb mailing list
> kdb at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/kdb
>



More information about the kdb mailing list