Rev 2504 | Rev 2790 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2504 | Rev 2712 | ||
|---|---|---|---|
| Line 584... | Line 584... | ||
| 584 | t = avltree_get_instance(node, thread_t, threads_tree_node); |
584 | t = avltree_get_instance(node, thread_t, threads_tree_node); |
| 585 | 585 | ||
| 586 | uint64_t cycles; |
586 | uint64_t cycles; |
| 587 | char suffix; |
587 | char suffix; |
| 588 | order(t->cycles, &cycles, &suffix); |
588 | order(t->cycles, &cycles, &suffix); |
| 589 | 589 | ||
| - | 590 | if (sizeof(void *) == 4) |
|
| 590 | printf("%-6llu %-10s %#10zx %-8s %#10zx %-3ld %#10zx %#10zx %9llu%c ", |
591 | printf("%-6llu %-10s %#10zx %-8s %#10zx %-3ld %#10zx %#10zx %9llu%c ", |
| - | 592 | t->tid, t->name, t, thread_states[t->state], t->task, |
|
| - | 593 | t->task->context, t->thread_code, t->kstack, cycles, suffix); |
|
| - | 594 | else |
|
| - | 595 | printf("%-6llu %-10s %#18zx %-8s %#18zx %-3ld %#18zx %#18zx %9llu%c ", |
|
| 591 | t->tid, t->name, t, thread_states[t->state], t->task, |
596 | t->tid, t->name, t, thread_states[t->state], t->task, |
| 592 | t->task->context, t->thread_code, t->kstack, cycles, suffix); |
597 | t->task->context, t->thread_code, t->kstack, cycles, suffix); |
| 593 | 598 | ||
| 594 | if (t->cpu) |
599 | if (t->cpu) |
| 595 | printf("%-4zd", t->cpu->id); |
600 | printf("%-4zd", t->cpu->id); |
| 596 | else |
601 | else |
| 597 | printf("none"); |
602 | printf("none"); |
| 598 | 603 | ||
| 599 | if (t->state == Sleeping) |
604 | if (t->state == Sleeping) { |
| - | 605 | if (sizeof(uintptr_t) == 4) |
|
| 600 | printf(" %#10zx", t->sleep_queue); |
606 | printf(" %#10zx", t->sleep_queue); |
| - | 607 | else |
|
| - | 608 | printf(" %#18zx", t->sleep_queue); |
|
| - | 609 | } |
|
| 601 | 610 | ||
| 602 | printf("\n"); |
611 | printf("\n"); |
| 603 | 612 | ||
| 604 | return true; |
613 | return true; |
| 605 | } |
614 | } |
| Line 611... | Line 620... | ||
| 611 | 620 | ||
| 612 | /* Messing with thread structures, avoid deadlock */ |
621 | /* Messing with thread structures, avoid deadlock */ |
| 613 | ipl = interrupts_disable(); |
622 | ipl = interrupts_disable(); |
| 614 | spinlock_lock(&threads_lock); |
623 | spinlock_lock(&threads_lock); |
| 615 | 624 | ||
| - | 625 | if (sizeof(uintptr_t) == 4) { |
|
| 616 | printf("tid name address state task ctx code " |
626 | printf("tid name address state task " |
| 617 | " stack cycles cpu waitqueue\n"); |
627 | "ctx code stack cycles cpu " |
| - | 628 | "waitqueue\n"); |
|
| 618 | printf("------ ---------- ---------- -------- ---------- --- --------" |
629 | printf("------ ---------- ---------- -------- ---------- " |
| 619 | "-- ---------- ---------- ---- ---------\n"); |
630 | "--- ---------- ---------- ---------- ---- " |
| - | 631 | "----------\n"); |
|
| - | 632 | } else { |
|
| - | 633 | printf("tid name address state task " |
|
| - | 634 | "ctx code stack cycles cpu " |
|
| - | 635 | "waitqueue\n"); |
|
| - | 636 | printf("------ ---------- ------------------ -------- ------------------ " |
|
| - | 637 | "--- ------------------ ------------------ ---------- ---- " |
|
| - | 638 | "------------------\n"); |
|
| - | 639 | } |
|
| 620 | 640 | ||
| 621 | avltree_walk(&threads_tree, thread_walker, NULL); |
641 | avltree_walk(&threads_tree, thread_walker, NULL); |
| 622 | 642 | ||
| 623 | spinlock_unlock(&threads_lock); |
643 | spinlock_unlock(&threads_lock); |
| 624 | interrupts_restore(ipl); |
644 | interrupts_restore(ipl); |