Re: [patch] trace: Add user-space event tracing/injection

From: Pekka Enberg
Date: Wed Nov 17 2010 - 07:33:20 EST


On 11/17/10 2:30 PM, Ingo Molnar wrote:
What does the duration in milliseconds mean there? For things like
GC and JIT, I want something like:

void gc(void)
{
prctl(PR_TASK_PERF_USER_TRACE_START, ...)

collect();

prctl(PR_TASK_PERF_USER_TRACE_END, ...)
}

So that it's clear from the tracing output that the VM was busy
doing GC for n milliseconds. Barring background JIT'ing and
pauseless GC, I'd also be interested in showing how much time the VM
was actually _blocking_ the running application (which can happen
with signals too, btw, for things like accessing data that's lazily
initialized).
We can add two events: user_event_entry/user_event_exit - or we could use the string
to differentiate, and start it with:

"entry: ..."
"exit: ..."

And then the event timestamps (which are absolute and are available) could be used
to calculate the duration of this period.

'trace' could even be taught to treat such entry:/exit: strings in a special way, so
that you dont have to write Jato specific trace decoding bits?

Yes, makes sense. I like the API so lets convince others that it's important enough to be merged. :-)

Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/