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