Steven Rostedt
2e33af0295
tracing: Move fields from event to class structure
...
Move the defined fields from the event to the class structure.
Since the fields of the event are defined by the class they belong
to, it makes sense to have the class hold the information instead
of the individual events. The events of the same class would just
hold duplicate information.
After this change the size of the kernel dropped another 3K:
text data bss dec hex filename
4913961 1088356 861512 6863829 68bbd5 vmlinux.orig
4900252 1057412 861512 6819176 680d68 vmlinux.regs
4900375 1053380 861512 6815267 67fe23 vmlinux.fields
Although the text increased, this was mainly due to the C files
having to adapt to the change. This is a constant increase, where
new tracepoints will not increase the Text. But the big drop is
in the data size (as well as needed allocations to hold the fields).
This will give even more savings as more tracepoints are created.
Note, if just TRACE_EVENT()s are used and not DECLARE_EVENT_CLASS()
with several DEFINE_EVENT()s, then the savings will be lost. But
we are pushing developers to consolidate events with DEFINE_EVENT()
so this should not be an issue.
The kprobes define a unique class to every new event, but are dynamic
so it should not be a issue.
The syscalls however have a single class but the fields for the individual
events are different. The syscalls use a metadata to define the
fields. I moved the fields list from the event to the metadata and
added a "get_fields()" function to the class. This function is used
to find the fields. For normal events and kprobes, get_fields() just
returns a pointer to the fields list_head in the class. For syscall
events, it returns the fields list_head in the metadata for the event.
v2: Fixed the syscall fields. The syscall metadata needs a list
of fields for both enter and exit.
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2010-05-14 14:20:23 -04:00
..
gcov
irq
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2010-04-06 13:03:22 -07:00
power
PM / Hibernate: user.c, fix SNAPSHOT_SET_SWAP_AREA handling
2010-04-10 22:28:56 +02:00
time
sched: Intoduce get_cpu_iowait_time_us()
2010-05-09 19:35:27 +02:00
trace
tracing: Move fields from event to class structure
2010-05-14 14:20:23 -04:00
.gitignore
acct.c
copy_signal() cleanup: kill taskstats_tgid_init() and acct_init_pacct()
2010-03-12 15:52:39 -08:00
async.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
audit.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
audit.h
audit_tree.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
audit_watch.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
auditfilter.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
auditsc.c
audit: preface audit printk with audit
2010-04-05 13:19:45 -07:00
backtracetest.c
bounds.c
kbuild: move bounds.h to include/generated
2009-12-12 13:08:14 +01:00
capability.c
sched: Remove remaining USER_SCHED code
2010-04-02 20:12:00 +02:00
cgroup.c
sched, wait: Use wrapper functions
2010-05-11 17:43:58 +02:00
cgroup_freezer.c
Merge branch 'master' into export-slabh
2010-04-05 11:37:28 +09:00
compat.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
configs.c
cpu.c
stop_machine: reimplement using cpu_stop
2010-05-06 18:49:20 +02:00
cpuset.c
sched: Make select_fallback_rq() cpuset friendly
2010-04-02 20:12:03 +02:00
cred.c
Merge commit 'v2.6.34-rc6' into sched/core
2010-05-07 11:27:54 +02:00
delayacct.c
dma.c
early_res.c
x86: Do not free zero sized per cpu areas
2010-03-29 18:55:40 +02:00
elfcore.c
elf coredump: add extended numbering support
2010-03-06 11:26:46 -08:00
exec_domain.c
exit.c
Merge branch 'linus' into sched/core
2010-04-15 09:36:16 +02:00
extable.c
fork.c
mm: avoid null-pointer deref in sync_mm_rss()
2010-04-07 08:38:02 -07:00
freezer.c
futex.c
futex: Handle futex value corruption gracefully
2010-02-03 15:13:22 +01:00
futex_compat.c
futex: Protect pid lookup in compat code with RCU
2009-12-09 14:22:14 +01:00
groups.c
hrtimer.c
hrtimers: Convert to raw_spinlocks
2009-12-14 23:55:34 +01:00
hung_task.c
softlockup: Fix hung_task_check_count sysctl
2009-11-27 06:21:57 +01:00
hw_breakpoint.c
Merge branch 'perf/core' into perf/urgent
2010-03-04 11:47:52 +01:00
itimer.c
kallsyms.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks
mutex: Better control mutex adaptive spinning config
2009-12-03 11:50:11 +01:00
Kconfig.preempt
kexec.c
percpu: add __percpu sparse annotations to core kernel subsystems
2010-02-17 11:17:38 +09:00
kfifo.c
kfifo: Don't use integer as NULL pointer
2010-02-16 15:11:08 -08:00
kgdb.c
kgdb: Turn off tracing while in the debugger
2010-04-02 14:58:19 -05:00
kmod.c
kmod: fix resource leak in call_usermodehelper_pipe()
2010-01-11 09:34:04 -08:00
kprobes.c
kprobes: Calculate the index correctly when freeing the out-of-line execution slot
2010-03-11 14:06:16 +01:00
ksysfs.c
Merge branch 'for-next' into for-linus
2010-03-08 16:55:37 +01:00
kthread.c
cpuset: fix the problem that cpuset_mem_spread_node() returns an offline node
2010-03-24 16:31:21 -07:00
latencytop.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
lockdep.c
Merge branch 'slabh' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc
2010-04-05 09:39:11 -07:00
lockdep_internals.h
lockdep_proc.c
lockdep_states.h
Makefile
cpu_stop: add dummy implementation for UP
2010-05-08 17:12:33 +02:00
module.c
Merge branch 'sched/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into trace/tip/tracing/core-4
2010-05-14 09:29:52 -04:00
mutex-debug.c
mutex-debug.h
locking: Implement new raw_spinlock
2009-12-14 23:55:32 +01:00
mutex.c
mutex: Better control mutex adaptive spinning config
2009-12-03 11:50:11 +01:00
mutex.h
notifier.c
sched: Use lockdep-based checking on rcu_dereference()
2010-02-25 10:34:26 +01:00
ns_cgroup.c
nsproxy.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
padata.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
panic.c
panic: fix panic_timeout accuracy when running on a hypervisor
2010-03-06 11:26:33 -08:00
params.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2010-03-12 16:04:50 -08:00
perf_event.c
Merge branch 'master' into export-slabh
2010-04-05 11:37:28 +09:00
pid.c
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2010-03-13 14:43:01 -08:00
pid_namespace.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
pm_qos_params.c
posix-cpu-timers.c
Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2010-03-26 15:10:38 -07:00
posix-timers.c
posix-timers.c: Don't export local functions
2010-02-05 14:54:10 +01:00
printk.c
printk: avoid warning when CONFIG_PRINTK is disabled
2010-03-06 11:26:33 -08:00
profile.c
ptrace.c
ptrace: Fix ptrace_regset() comments and diagnose errors specifically
2010-02-23 13:45:26 -08:00
range.c
x86: Change range end to start+size
2010-02-10 17:47:17 -08:00
rcupdate.c
rcu: Make RCU lockdep check the lockdep_recursion variable
2010-04-19 08:37:19 +02:00
rcutiny.c
rcu: Eliminate unneeded function wrapping
2009-11-22 18:58:16 +01:00
rcutorture.c
sched: replace migration_thread with cpu_stop
2010-05-06 18:49:21 +02:00
rcutree.c
rcu: Fix accelerated grace periods for last non-dynticked CPU
2010-02-27 09:53:52 +01:00
rcutree.h
rcu: Increase RCU CPU stall timeouts if PROVE_RCU
2010-03-11 13:38:01 +01:00
rcutree_plugin.h
rcu: Fix holdoff for accelerated GPs for last non-dynticked CPU
2010-02-28 09:17:42 +01:00
rcutree_trace.c
rcu: Stop overflowing signed integers
2010-02-25 10:34:57 +01:00
relay.c
splice: comparing unsigned int < 0
2010-03-06 11:26:32 -08:00
res_counter.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
resource.c
resources: add interfaces that return conflict information
2010-03-23 13:33:50 -07:00
rtmutex-debug.c
sched: Convert pi_lock to raw_spinlock
2009-12-14 23:55:33 +01:00
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutes: Convert rtmutex.lock to raw_spinlock
2009-12-14 23:55:33 +01:00
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
sched, wait: Use wrapper functions
2010-05-11 17:43:58 +02:00
sched_clock.c
sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
2009-12-15 09:04:36 +01:00
sched_cpupri.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
sched_cpupri.h
sched: Convert cpupri lock to raw_spinlock
2009-12-14 23:55:33 +01:00
sched_debug.c
Merge branch 'linus' into sched/core
2010-04-15 09:36:16 +02:00
sched_fair.c
sched: replace migration_thread with cpu_stop
2010-05-06 18:49:21 +02:00
sched_features.h
sched: Remove ASYM_GRAN feature
2010-03-11 18:32:53 +01:00
sched_idletask.c
sched: Cure load average vs NO_HZ woes
2010-04-23 11:02:02 +02:00
sched_rt.c
sched: Add enqueue/dequeue flags
2010-04-02 20:12:05 +02:00
sched_stats.h
seccomp.c
semaphore.c
signal.c
kernel core: use helpers for rlimits
2010-03-06 11:26:33 -08:00
slow-work-debugfs.c
SLOW_WORK: Move slow_work's proc file to debugfs
2009-12-01 08:20:31 -08:00
slow-work.c
slow-work: use get_ref wrapper instead of directly calling get_ref
2010-03-29 09:13:30 -07:00
slow-work.h
SLOW_WORK: CONFIG_SLOW_WORK_PROC should be CONFIG_SLOW_WORK_DEBUG
2010-03-29 09:14:47 -07:00
smp.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
softirq.c
hrtimer, softirq: Fix hrtimer->softirq trampoline
2010-02-03 18:17:40 +01:00
softlockup.c
softlockup: Stop spurious softlockup messages due to overflow
2010-03-21 19:30:13 +01:00
spinlock.c
locking: Cleanup the name space completely
2009-12-14 23:55:33 +01:00
srcu.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
stacktrace.c
stop_machine.c
cpu_stop: add dummy implementation for UP
2010-05-08 17:12:33 +02:00
sys.c
kernel/sys.c: fix compat uname machine
2010-04-24 11:31:24 -07:00
sys_ni.c
Add generic sys_ipc wrapper
2010-03-12 15:52:32 -08:00
sysctl.c
sysctl extern cleanup: lockdep
2010-03-12 15:53:10 -08:00
sysctl_binary.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
sysctl_check.c
ipv4 05/05: add sysctl to accept packets with local source addresses
2009-12-03 12:14:38 -08:00
taskstats.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
test_kprobes.c
time.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
timeconst.pl
timer.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
tracepoint.c
tracing: Let tracepoints have data passed to tracepoint callbacks
2010-05-14 09:50:34 -04:00
tsacct.c
mm: clean up mm_counter
2010-03-06 11:26:23 -08:00
uid16.c
up.c
user-return-notifier.c
core: Clean up user return notifers use of per_cpu
2009-12-02 10:22:59 +01:00
user.c
sched: Remove a stale comment
2010-05-10 08:48:39 +02:00
user_namespace.c
utsname.c
utsname_sysctl.c
wait.c
workqueue.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2009-12-10 09:35:44 -08:00