<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/trace/ftrace.h, branch v3.4.9</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/trace/ftrace.h?h=v3.4.9</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/trace/ftrace.h?h=v3.4.9'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-10-04T09:07:54Z</updated>
<entry>
<title>perf: Fix counter of ftrace events</title>
<updated>2011-10-04T09:07:54Z</updated>
<author>
<name>Andrew Vagin</name>
<email>avagin@openvz.org</email>
</author>
<published>2011-09-26T15:55:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=92e51938f5d005026ba4bb5b1fae5a86dc195b86'/>
<id>urn:sha1:92e51938f5d005026ba4bb5b1fae5a86dc195b86</id>
<content type='text'>
Each event adds some points to its counters. By default it adds 1,
and a number of points may be transmited in event's parameters.

E.g. sched:sched_stat_runtime adds how long process has been running.

But this functionality was broken by v2.6.31-rc5-392-gf413cdb
and now the event's parameters doesn't affect on a number of points.

TP_perf_assign isn't defined, so __perf_count(c) isn't executed and
__count is always equal to 1.

Signed-off-by: Andrew Vagin &lt;avagin@openvz.org&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/1317052535-1765247-2-git-send-email-avagin@openvz.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine</title>
<updated>2011-05-26T02:13:44Z</updated>
<author>
<name>liubo</name>
<email>liubo2009@cn.fujitsu.com</email>
</author>
<published>2011-04-19T01:35:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2fc1b6f0d0a719e1e2a30bf076a3a799feaf6af2'/>
<id>urn:sha1:2fc1b6f0d0a719e1e2a30bf076a3a799feaf6af2</id>
<content type='text'>
Filesystem, like Btrfs, has some "ULL" macros, and when these macros are passed
to tracepoints'__print_symbolic(), there will be 64-&gt;32 truncate WARNINGS during
compiling on 32bit box.

Signed-off-by: Liu Bo &lt;liubo2009@cn.fujitsu.com&gt;
Link: http://lkml.kernel.org/r/4DACE6E0.7000507@cn.fujitsu.com
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing: Replace trace_event struct array with pointer array</title>
<updated>2011-02-03T02:37:13Z</updated>
<author>
<name>Steven Rostedt</name>
<email>srostedt@redhat.com</email>
</author>
<published>2011-01-27T14:15:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e4a9ea5ee7c8812a7bf0c3fb725ceeaa3d4c2fcc'/>
<id>urn:sha1:e4a9ea5ee7c8812a7bf0c3fb725ceeaa3d4c2fcc</id>
<content type='text'>
Currently the trace_event structures are placed in the _ftrace_events
section, and at link time, the linker makes one large array of all
the trace_event structures. On boot up, this array is read (much like
the initcall sections) and the events are processed.

The problem is that there is no guarantee that gcc will place complex
structures nicely together in an array format. Two structures in the
same file may be placed awkwardly, because gcc has no clue that they
are suppose to be in an array.

A hack was used previous to force the alignment to 4, to pack the
structures together. But this caused alignment issues with other
architectures (sparc).

Instead of packing the structures into an array, the structures' addresses
are now put into the _ftrace_event section. As pointers are always the
natural alignment, gcc should always pack them tightly together
(otherwise initcall, extable, etc would also fail).

By having the pointers to the structures in the section, we can still
iterate the trace_events without causing unnecessary alignment problems
with other architectures, or depending on the current behaviour of
gcc that will likely change in the future just to tick us kernel developers
off a little more.

The _ftrace_event section is also moved into the .init.data section
as it is now only needed at boot up.

Suggested-by: David Miller &lt;davem@davemloft.net&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing/events: Show real number in array fields</title>
<updated>2010-11-19T15:18:47Z</updated>
<author>
<name>Steven Rostedt</name>
<email>srostedt@redhat.com</email>
</author>
<published>2010-11-13T03:32:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=042957801626465492b9428860de39a3cb2a8219'/>
<id>urn:sha1:042957801626465492b9428860de39a3cb2a8219</id>
<content type='text'>
Currently we have in something like the sched_switch event:

  field:char prev_comm[TASK_COMM_LEN];	offset:12;	size:16;	signed:1;

When a userspace tool such as perf tries to parse this, the
TASK_COMM_LEN is meaningless. This is done because the TRACE_EVENT() macro
simply uses a #len to show the string of the length. When the length is
an enum, we get a string that means nothing for tools.

By adding a static buffer and a mutex to protect it, we can store the
string into that buffer with snprintf and show the actual number.
Now we get:

  field:char prev_comm[16];       offset:12;      size:16;        signed:1;

Something much more useful.

Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing: Allow syscall trace events for non privileged users</title>
<updated>2010-11-18T13:37:44Z</updated>
<author>
<name>Frederic Weisbecker</name>
<email>fweisbec@gmail.com</email>
</author>
<published>2010-11-18T01:11:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=53cf810b1934f08a68e131aeeb16267a778f43df'/>
<id>urn:sha1:53cf810b1934f08a68e131aeeb16267a778f43df</id>
<content type='text'>
As for the raw syscalls events, individual syscall events won't
leak system wide information on task bound tracing. Allow non
privileged users to use them in such workflow.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Jason Baron &lt;jbaron@redhat.com&gt;
</content>
</entry>
<entry>
<title>tracing: New macro to set up initial event flags value</title>
<updated>2010-11-18T13:37:42Z</updated>
<author>
<name>Frederic Weisbecker</name>
<email>fweisbec@gmail.com</email>
</author>
<published>2010-11-18T00:46:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1ed0c5971159974185653170543a764cc061c857'/>
<id>urn:sha1:1ed0c5971159974185653170543a764cc061c857</id>
<content type='text'>
This introduces the new TRACE_EVENT_FLAGS() macro in order
to set up initial event flags value.

This macro must simply follow the definition of a trace event
and take the event name and the flag value as parameters:

TRACE_EVENT(my_event, .....
....
);

TRACE_EVENT_FLAGS(my_event, 1)

This will set up 1 as the initial my_event-&gt;flags value.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@redhat.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
Cc: Jason Baron &lt;jbaron@redhat.com&gt;
</content>
</entry>
<entry>
<title>tracing: Drop cpparg() macro</title>
<updated>2010-08-01T23:31:28Z</updated>
<author>
<name>Frederic Weisbecker</name>
<email>fweisbec@gmail.com</email>
</author>
<published>2010-07-20T16:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=819ce45afebd77a9de736fa5304ba8352d11dff9'/>
<id>urn:sha1:819ce45afebd77a9de736fa5304ba8352d11dff9</id>
<content type='text'>
Drop the cpparg() macro that wraps CPP parameters. We already have
the PARAM() macro for that, no need to have several versions.

Signed-off-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
</content>
</entry>
<entry>
<title>tracing: Reduce latency and remove percpu trace_seq</title>
<updated>2010-07-21T02:05:34Z</updated>
<author>
<name>Lai Jiangshan</name>
<email>laijs@cn.fujitsu.com</email>
</author>
<published>2010-06-03T10:26:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bc289ae98b75d93228d24f521ef02a076e506e94'/>
<id>urn:sha1:bc289ae98b75d93228d24f521ef02a076e506e94</id>
<content type='text'>
__print_flags() and __print_symbolic() use percpu trace_seq:

1) Its memory is allocated at compile time, it wastes memory if we don't use tracing.
2) It is percpu data and it wastes more memory for multi-cpus system.
3) It disables preemption when it executes its core routine
   "trace_seq_printf(s, "%s: ", #call);" and introduces latency.

So we move this trace_seq to struct trace_iterator.

Signed-off-by: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
LKML-Reference: &lt;4C078350.7090106@cn.fujitsu.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing: Use class-&gt;reg() for all registering of events</title>
<updated>2010-06-29T01:13:14Z</updated>
<author>
<name>Steven Rostedt</name>
<email>srostedt@redhat.com</email>
</author>
<published>2010-06-08T15:22:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a1d0ce8213e9ddf4046ef5ba95c55762d075f541'/>
<id>urn:sha1:a1d0ce8213e9ddf4046ef5ba95c55762d075f541</id>
<content type='text'>
Because kprobes and syscalls need special processing to register
events, the class-&gt;reg() method was created to handle the differences.

But instead of creating a default -&gt;reg for perf and ftrace events,
the code was scattered with:

	if (class-&gt;reg)
		class-&gt;reg();
	else
		default_reg();

This is messy and can also lead to bugs.

This patch cleans up this code and creates a default reg() entry for
the events allowing for the code to directly call the class-&gt;reg()
without the condition.

Reported-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Acked-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core</title>
<updated>2010-06-09T16:55:57Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2010-06-09T16:55:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8'/>
<id>urn:sha1:c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8</id>
<content type='text'>
</content>
</entry>
</feed>
