scheduler: Improve debug commands
This commit is contained in:
@@ -224,15 +224,11 @@ static int
|
|||||||
dump_run_queue(int argc, char **argv)
|
dump_run_queue(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int32 cpuCount = smp_get_num_cpus();
|
int32 cpuCount = smp_get_num_cpus();
|
||||||
int32 coreCount = 0;
|
int32 coreCount = gRunQueueCount;
|
||||||
for (int32 i = 0; i < cpuCount; i++) {
|
|
||||||
if (gCPU[i].topology_id[CPU_TOPOLOGY_SMT] == 0)
|
|
||||||
gCPUToCore[i] = coreCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
ThreadRunQueue::ConstIterator iterator;
|
ThreadRunQueue::ConstIterator iterator;
|
||||||
for (int32 i = 0; i < coreCount; i++) {
|
for (int32 i = 0; i < coreCount; i++) {
|
||||||
kprintf("\nCore %" B_PRId32 " run queue:\n", i);
|
kprintf("%sCore %" B_PRId32 " run queue:\n", i > 0 ? "\n" : "", i);
|
||||||
iterator = gRunQueues[i].GetConstIterator();
|
iterator = gRunQueues[i].GetConstIterator();
|
||||||
dump_queue(iterator);
|
dump_queue(iterator);
|
||||||
}
|
}
|
||||||
@@ -240,7 +236,7 @@ dump_run_queue(int argc, char **argv)
|
|||||||
for (int32 i = 0; i < cpuCount; i++) {
|
for (int32 i = 0; i < cpuCount; i++) {
|
||||||
iterator = gPinnedRunQueues[i].GetConstIterator();
|
iterator = gPinnedRunQueues[i].GetConstIterator();
|
||||||
|
|
||||||
if (iterator.HasNext()) {
|
if (iterator.HasNext() && !thread_is_idle_thread(iterator.Next())) {
|
||||||
kprintf("\nCPU %" B_PRId32 " run queue:\n", i);
|
kprintf("\nCPU %" B_PRId32 " run queue:\n", i);
|
||||||
dump_queue(iterator);
|
dump_queue(iterator);
|
||||||
}
|
}
|
||||||
@@ -251,7 +247,7 @@ dump_run_queue(int argc, char **argv)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dump_heap(CPUHeap* heap)
|
dump_cpu_load_heap(CPUHeap* heap)
|
||||||
{
|
{
|
||||||
kprintf("cpu priority load\n");
|
kprintf("cpu priority load\n");
|
||||||
CPUEntry* entry = heap->PeekMinimum();
|
CPUEntry* entry = heap->PeekMinimum();
|
||||||
@@ -305,14 +301,16 @@ dump_core_load_heap(CoreLoadHeap* heap)
|
|||||||
static int
|
static int
|
||||||
dump_cpu_heap(int argc, char** argv)
|
dump_cpu_heap(int argc, char** argv)
|
||||||
{
|
{
|
||||||
kprintf("\ncore load\n");
|
kprintf("core load\n");
|
||||||
dump_core_load_heap(gCoreLoadHeap);
|
dump_core_load_heap(gCoreLoadHeap);
|
||||||
kprintf("---------\n");
|
|
||||||
dump_core_load_heap(gCoreHighLoadHeap);
|
dump_core_load_heap(gCoreHighLoadHeap);
|
||||||
|
|
||||||
for (int32 i = 0; i < gRunQueueCount; i++) {
|
for (int32 i = 0; i < gRunQueueCount; i++) {
|
||||||
|
if (gCoreEntries[i].fCPUCount < 2)
|
||||||
|
continue;
|
||||||
|
|
||||||
kprintf("\nCore %" B_PRId32 " heap:\n", i);
|
kprintf("\nCore %" B_PRId32 " heap:\n", i);
|
||||||
dump_heap(&gCPUPriorityHeaps[i]);
|
dump_cpu_load_heap(&gCPUPriorityHeaps[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user