<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/trace/trace_syscalls.c, branch v3.0.86</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/trace/trace_syscalls.c?h=v3.0.86</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/trace/trace_syscalls.c?h=v3.0.86'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-02-08T02:30:14Z</updated>
<entry>
<title>tracing/syscalls: Early terminate search for sys_ni_syscall</title>
<updated>2011-02-08T02:30:14Z</updated>
<author>
<name>Ian Munsie</name>
<email>imunsie@au1.ibm.com</email>
</author>
<published>2011-02-03T03:27:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ae07f551c42d6e4162436ca452a199deac9dab4d'/>
<id>urn:sha1:ae07f551c42d6e4162436ca452a199deac9dab4d</id>
<content type='text'>
Many system calls are unimplemented and mapped to sys_ni_syscall, but at
boot ftrace would still search through every syscall metadata entry for
a match which wouldn't be there.

This patch adds causes the search to terminate early if the system call
is not mapped.

Signed-off-by: Ian Munsie &lt;imunsie@au1.ibm.com&gt;
LKML-Reference: &lt;1296703645-18718-7-git-send-email-imunsie@au1.ibm.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing/syscalls: Allow arch specific syscall symbol matching</title>
<updated>2011-02-08T02:29:03Z</updated>
<author>
<name>Ian Munsie</name>
<email>imunsie@au1.ibm.com</email>
</author>
<published>2011-02-03T03:27:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b2d55496818d64310b9f5486d4eea76ea614d7f8'/>
<id>urn:sha1:b2d55496818d64310b9f5486d4eea76ea614d7f8</id>
<content type='text'>
Some architectures have unusual symbol names and the generic code to
match the symbol name with the function name for the syscall metadata
will fail. For example, symbols on PPC64 start with a period and the
generic code will fail to match them.

This patch moves the match logic out into a separate function which an
arch can override by defining ARCH_HAS_SYSCALL_MATCH_SYM_NAME in
asm/ftrace.h and implementing arch_syscall_match_sym_name.

Signed-off-by: Ian Munsie &lt;imunsie@au1.ibm.com&gt;
LKML-Reference: &lt;1296703645-18718-5-git-send-email-imunsie@au1.ibm.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing/syscalls: Make arch_syscall_addr weak</title>
<updated>2011-02-08T02:26:22Z</updated>
<author>
<name>Ian Munsie</name>
<email>imunsie@au1.ibm.com</email>
</author>
<published>2011-02-03T03:27:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c763ba06bd9b5db2c46c36276c89103d92d2c604'/>
<id>urn:sha1:c763ba06bd9b5db2c46c36276c89103d92d2c604</id>
<content type='text'>
Some architectures use non-trivial system call tables and will not work
with the generic arch_syscall_addr code. For example, PowerPC64 uses a
table of twin long longs.

This patch makes the generic arch_syscall_addr weak to allow
architectures with non-trivial system call tables to override it.

Signed-off-by: Ian Munsie &lt;imunsie@au1.ibm.com&gt;
LKML-Reference: &lt;1296703645-18718-4-git-send-email-imunsie@au1.ibm.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing/syscalls: Convert redundant syscall_nr checks into WARN_ON</title>
<updated>2011-02-08T02:25:52Z</updated>
<author>
<name>Ian Munsie</name>
<email>imunsie@au1.ibm.com</email>
</author>
<published>2011-02-03T03:27:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3773b389b6927595512558594d040c1edba46f36'/>
<id>urn:sha1:3773b389b6927595512558594d040c1edba46f36</id>
<content type='text'>
With the ftrace events now checking if the syscall_nr is valid upon
initialisation it should no longer be possible to register or unregister
a syscall event without a valid syscall_nr since they should not be
created. This adds a WARN_ON_ONCE in the register and unregister
functions to locate potential regressions in the future.

Signed-off-by: Ian Munsie &lt;imunsie@au1.ibm.com&gt;
LKML-Reference: &lt;1296703645-18718-3-git-send-email-imunsie@au1.ibm.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing/syscalls: Don't add events for unmapped syscalls</title>
<updated>2011-02-08T02:24:44Z</updated>
<author>
<name>Ian Munsie</name>
<email>imunsie@au1.ibm.com</email>
</author>
<published>2011-02-03T03:27:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ba976970c79fd2fbfe1a4b3b6766a318f4eb9d4c'/>
<id>urn:sha1:ba976970c79fd2fbfe1a4b3b6766a318f4eb9d4c</id>
<content type='text'>
FTRACE_SYSCALLS would create events for each and every system call, even
if it had failed to map the system call's name with it's number. This
resulted in a number of events being created that would not behave as
expected.

This could happen, for example, on architectures who's symbol names are
unusual and will not match the system call name. It could also happen
with system calls which were mapped to sys_ni_syscall.

This patch changes the default system call number in the metadata to -1.
If the system call name from the metadata is not successfully mapped to
a system call number during boot, than the event initialisation routine
will now return an error, preventing the event from being created.

Signed-off-by: Ian Munsie &lt;imunsie@au1.ibm.com&gt;
LKML-Reference: &lt;1296703645-18718-2-git-send-email-imunsie@au1.ibm.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing: Replace syscall_meta_data struct array with pointer array</title>
<updated>2011-02-03T14:29:06Z</updated>
<author>
<name>Steven Rostedt</name>
<email>srostedt@redhat.com</email>
</author>
<published>2011-02-02T22:06:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3d56e331b6537671c66f1b510bed0f1e0331dfc8'/>
<id>urn:sha1:3d56e331b6537671c66f1b510bed0f1e0331dfc8</id>
<content type='text'>
Currently the syscall_meta structures for the syscall tracepoints are
placed in the __syscall_metadata section, and at link time, the linker
makes one large array of all these syscall metadata structures. On boot
up, this array is read (much like the initcall sections) and the syscall
data is 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 __syscall_metadata 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 __syscall_metadata 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;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing: Remove syscall_exit_fields</title>
<updated>2011-01-14T23:06:35Z</updated>
<author>
<name>Lai Jiangshan</name>
<email>laijs@cn.fujitsu.com</email>
</author>
<published>2011-01-14T09:49:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7f85803a26f304e698c673838aab06cc6d4d6e59'/>
<id>urn:sha1:7f85803a26f304e698c673838aab06cc6d4d6e59</id>
<content type='text'>
There is no need for syscall_exit_fields as the syscall
exit event class can already host the fields in its structure,
like most other trace events do by default. Use that
default behavior instead.

Following this scheme, we don't need anymore to override the
get_fields() callback of the syscall exit event class either.

Hence both syscall_exit_fields and syscall_get_exit_fields() can
be removed.

Also changed some indentation to keep the following under 80
characters:

".fields		= LIST_HEAD_INIT(event_class_syscall_exit.fields),"

Acked-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Signed-off-by: Lai Jiangshan &lt;laijs@cn.fujitsu.com&gt;
LKML-Reference: &lt;4D301C0E.8090408@cn.fujitsu.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tracing: Use a global field list for all syscall exit events</title>
<updated>2010-06-28T21:12:44Z</updated>
<author>
<name>Li Zefan</name>
<email>lizf@cn.fujitsu.com</email>
</author>
<published>2010-05-24T08:22:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c9642c49aae1272d7c24008a40ae614470b957a6'/>
<id>urn:sha1:c9642c49aae1272d7c24008a40ae614470b957a6</id>
<content type='text'>
All syscall exit events have the same fields.

The kernel size drops 2.5K:

   text    data     bss     dec     hex filename
7018612 2034376 7251132 16304120         f8c7f8 vmlinux.o.orig
7018612 2031888 7251132 16301632         f8be40 vmlinux.o

Signed-off-by: Li Zefan &lt;lizf@cn.fujitsu.com&gt;
LKML-Reference: &lt;4BFA3746.8070100@cn.fujitsu.com&gt;
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>perf_events, trace: Fix probe unregister race</title>
<updated>2010-05-31T06:46:09Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2010-05-21T10:31:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3771f0771154675d4a0ca780be2411f3cc357208'/>
<id>urn:sha1:3771f0771154675d4a0ca780be2411f3cc357208</id>
<content type='text'>
tracepoint_probe_unregister() does not synchronize against the probe
callbacks, so do that explicitly. This properly serializes the callbacks
and the free of the data used therein.

Also, use this_cpu_ptr() where possible.

Acked-by: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
LKML-Reference: &lt;1274438476.1674.1702.camel@laptop&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/core-7</title>
<updated>2010-05-21T15:49:57Z</updated>
<author>
<name>Steven Rostedt</name>
<email>srostedt@redhat.com</email>
</author>
<published>2010-05-21T15:49:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ff5f149b6aec8edbfa3698721667acd043009a33'/>
<id>urn:sha1:ff5f149b6aec8edbfa3698721667acd043009a33</id>
<content type='text'>
Conflicts:
	include/linux/ftrace_event.h
	include/trace/ftrace.h
	kernel/trace/trace_event_perf.c
	kernel/trace/trace_kprobe.c
	kernel/trace/trace_syscalls.c

Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
</content>
</entry>
</feed>
