summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kern/task.c3
-rw-r--r--kern/task.h9
2 files changed, 12 insertions, 0 deletions
diff --git a/kern/task.c b/kern/task.c
index 13b3c76..0b5a6f7 100644
--- a/kern/task.c
+++ b/kern/task.c
@@ -45,6 +45,7 @@
#include <kern/slab.h>
#include <kern/kalloc.h>
#include <kern/processor.h>
+#include <kern/printf.h>
#include <kern/sched_prim.h> /* for thread_wakeup */
#include <kern/ipc_tt.h>
#include <kern/syscall_emulation.h>
@@ -164,6 +165,8 @@ kern_return_t task_create(
}
#endif /* FAST_TAS */
+ snprintf (new_task->name, sizeof new_task->name, "%p", new_task);
+
ipc_task_enable(new_task);
*child_task = new_task;
diff --git a/kern/task.h b/kern/task.h
index e852033..7ae10cd 100644
--- a/kern/task.h
+++ b/kern/task.h
@@ -48,6 +48,13 @@
#include <vm/vm_types.h>
#include <machine/task.h>
+/*
+ * Task name buffer size. The size is chosen so that struct task fits
+ * into three cache lines. The size of a cache line on a typical CPU
+ * is 64 bytes.
+ */
+#define TASK_NAME_SIZE 32
+
struct task {
/* Synchronization/destruction information */
decl_simple_lock_data(,lock) /* Task's lock */
@@ -113,6 +120,8 @@ struct task {
natural_t cow_faults; /* copy-on-write faults counter */
natural_t messages_sent; /* messages sent counter */
natural_t messages_received; /* messages received counter */
+
+ char name[TASK_NAME_SIZE];
};
#define task_lock(task) simple_lock(&(task)->lock)