#include <xen/errno.h>
#include <xen/trace.h>
#include <xen/cpu.h>
+#include <xen/keyhandler.h>
#define d2printk(x...)
//#define d2printk printk
unsigned long flags;
spinlock_t *lock;
int loop;
- char cpustr[100];
+#define cpustr keyhandler_scratch
/*
* We need both locks:
spin_unlock(lock);
spin_unlock_irqrestore(&prv->lock, flags);
+#undef cpustr
}
static void
struct csched2_private *prv = CSCHED2_PRIV(ops);
unsigned long flags;
int i, loop;
+#define cpustr keyhandler_scratch
/* We need the private lock as we access global scheduler data
* and (below) the list of active domains. */
fraction = prv->rqd[i].avgload * 100 / (1ULL<<prv->load_window_shift);
+ cpulist_scnprintf(cpustr, sizeof(cpustr), &prv->rqd[i].active);
printk("Runqueue %d:\n"
"\tncpus = %u\n"
+ "\tcpus = %s\n"
"\tmax_weight = %d\n"
"\tinstload = %d\n"
"\taveload = %3"PRI_stime"\n",
i,
cpumask_weight(&prv->rqd[i].active),
+ cpustr,
prv->rqd[i].max_weight,
prv->rqd[i].load,
fraction);
+ cpumask_scnprintf(cpustr, sizeof(cpustr), &prv->rqd[i].idle);
+ printk("\tidlers: %s\n", cpustr);
+ cpumask_scnprintf(cpustr, sizeof(cpustr), &prv->rqd[i].tickled);
+ printk("\ttickled: %s\n", cpustr);
}
printk("Domain info:\n");
}
spin_unlock_irqrestore(&prv->lock, flags);
+#undef cpustr
}
static void activate_runqueue(struct csched2_private *prv, int rqi)