perfmon2 context: thread_struct vs. task_struct?

From: Stephane Eranian <eranian_at_hpl.hp.com>
Date: 2006-03-23 10:32:53
Hello,

The perfmon2 subsystem maintains a structure per-thread
that contains the save-area for the performance counters
and related software state. The save area is used on
context-switch. There can only be one context per thread.
The context is dynamically allocated as such it does not
consume memory in each thread. It is dyanmically attached
to the thread to monitor.

In the current implementation, the context (pfm_context)
pointer is implemented in the thread_struct on the basis
that this is somewhat related to machine state.

Historically, the perfmon subsystem only existed on IA-64
which made the thread_struct (an arch-specific structure)
the obvious place to put this.

Nowadays, perfmon2 supports most major architectures. It
may make sense to move the void *pfm_context pointer from 
the thread_struct into the task_struct. This would save
some indirections, make it readily available to other
archiectures when it is ported.

I admit I am not quite clear as to what goes where between
thread_struct and task_struct.

Would it make sense  to move the pointer to the perfmon2
context into the task_struct?

Thanks.

-- 
-Stephane
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Thu Mar 23 10:39:00 2006

This archive was generated by hypermail 2.1.8 : 2006-03-23 10:39:09 EST