Justus Winter, le Sat 01 Feb 2014 15:09:23 +0100, a écrit :
> * kern/task.c (task_create): Initialize name with the address of the task.
> * kern/task.h (TASK_NAME_SIZE): New definition.
> (struct task): Add field name.
Ack.
> ---
> kern/task.c | 3 +++
> kern/task.h | 9 +++++++++
> 2 files changed, 12 insertions(+)
>
> 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)
> --
> 1.8.5.2
>
--
Samuel
> Allez, soyez sympa ... traduisez-lui "linux"
Linux, c'est comme le miel : c'est vachement bon mais ça attire les
mouches. En plus, ça colle aux doigts et on a du mal à s'en défaire.
-+- TP in: Guide du linuxien pervers - "Barrez vous les mouches !"