[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] ddb: add `show all tasks' command
From: |
Justus Winter |
Subject: |
[PATCH] ddb: add `show all tasks' command |
Date: |
Tue, 16 Sep 2014 14:29:30 +0200 |
* ddb/db_command.c (db_show_all_cmds): Add `tasks'.
* ddb/db_print.c (db_show_all_tasks): New function.
* ddb/db_print.h (db_show_all_tasks): New prototype.
---
ddb/db_command.c | 1 +
ddb/db_print.c | 24 ++++++++++++++++++++++++
ddb/db_print.h | 6 ++++++
3 files changed, 31 insertions(+)
diff --git a/ddb/db_command.c b/ddb/db_command.c
index 8171119..5651667 100644
--- a/ddb/db_command.c
+++ b/ddb/db_command.c
@@ -304,6 +304,7 @@ db_command_list(
}
struct db_command db_show_all_cmds[] = {
+ { "tasks", db_show_all_tasks, 0, 0 },
{ "threads", db_show_all_threads, 0, 0 },
{ "slocks", db_show_all_slocks, 0, 0 },
{ (char *)0 }
diff --git a/ddb/db_print.c b/ddb/db_print.c
index e711ab6..24a3e33 100644
--- a/ddb/db_print.c
+++ b/ddb/db_print.c
@@ -276,6 +276,30 @@ db_print_task(
}
}
+void
+db_show_all_tasks(db_expr_t addr,
+ boolean_t have_addr,
+ db_expr_t count,
+ const char *modif)
+{
+ task_t task;
+ int task_id = 0;
+ processor_set_t pset;
+
+ db_printf(" ID %-*s NAME [THREADS]\n", 2*sizeof(vm_offset_t), "TASK");
+
+ queue_iterate(&all_psets, pset, processor_set_t, all_psets)
+ queue_iterate(&pset->tasks, task, task_t, pset_tasks) {
+ db_printf("%3d %0*X %s [%d]\n",
+ task_id,
+ 2*sizeof(vm_offset_t),
+ task,
+ task->name,
+ task->thread_count);
+ task_id++;
+ }
+}
+
/*ARGSUSED*/
void
db_show_all_threads(addr, have_addr, count, modif)
diff --git a/ddb/db_print.h b/ddb/db_print.h
index dacb47b..87db97b 100644
--- a/ddb/db_print.h
+++ b/ddb/db_print.h
@@ -38,6 +38,12 @@ void db_show_one_thread(
db_expr_t count,
const char * modif);
+void db_show_all_tasks(
+ db_expr_t addr,
+ int have_addr,
+ db_expr_t count,
+ const char * modif);
+
void db_show_all_threads(
db_expr_t addr,
int have_addr,
--
2.1.0
- [PATCH] ddb: add `show all tasks' command,
Justus Winter <=