Steven Rostedt
3d56e331b6
tracing: Replace syscall_meta_data struct array with pointer array
...
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 <davem@davemloft.net>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2011-02-03 09:29:06 -05:00
..
bitops
bitops: remove duplicated extern declarations
2010-10-09 21:51:45 +02:00
4level-fixup.h
mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
2009-07-27 12:10:38 -07:00
atomic-long.h
asm-generic: merge branch 'master' of torvalds/linux-2.6
2009-06-12 11:32:58 +02:00
atomic.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
2010-10-22 11:17:06 -07:00
atomic64.h
lib: Provide generic atomic64_t implementation
2009-06-15 13:27:38 +10:00
audit_change_attr.h
audit: make link()/linkat() match "attribute change" predicate
2010-10-30 08:45:43 -04:00
audit_dir_write.h
audit_read.h
audit_signal.h
audit_write.h
auxvec.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
bitops.h
asm-generic: make bitops.h usable
2009-06-11 21:02:31 +02:00
bitsperlong.h
asm-generic: introduce asm/bitsperlong.h
2009-06-11 21:02:14 +02:00
bug.h
panic: Allow warnings to set different taint flags
2010-05-19 08:36:48 +01:00
bugs.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
cache.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
cacheflush.h
block: add helpers to run flush_dcache_page() against a bio and a request's pages
2009-11-26 09:16:19 +01:00
checksum.h
add generic lib/checksum.c
2009-06-11 21:02:51 +02:00
cmpxchg-local.h
Fix IRQ flag handling naming
2010-10-07 14:08:55 +01:00
cmpxchg.h
cputime.h
taskstats: use real microsecond granularity for CPU times
2010-10-27 18:03:17 -07:00
current.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
delay.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
device.h
Driver Core: Add platform device arch data V3
2009-07-22 00:28:38 +02:00
div64.h
dma-coherent.h
dma-mapping-broken.h
dma-mapping: remove dma_is_consistent API
2010-08-11 08:59:21 -07:00
dma-mapping-common.h
dma-mapping: remove unnecessary sync_single_range_* in dma_map_ops
2010-05-27 09:12:52 -07:00
dma.h
asm-generic: add legacy I/O header files
2009-06-11 21:02:42 +02:00
emergency-restart.h
errno-base.h
errno.h
cfg80211: add rfkill support
2009-06-03 14:06:14 -04:00
fb.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
fcntl.h
asm-generic: fcntl: make exported headers use strict posix types
2010-10-09 21:51:43 +02:00
futex.h
getorder.h
asm-generic: rename page.h and uaccess.h
2009-06-11 21:02:17 +02:00
gpio.h
Revert "gpiolib: annotate gpio-intialization with __must_check"
2011-01-13 17:26:46 -08:00
hardirq.h
Fix IRQ flag handling naming
2010-10-07 14:08:55 +01:00
hw_irq.h
asm-generic: add legacy I/O header files
2009-06-11 21:02:42 +02:00
ide_iops.h
int-l64.h
asm-generic: introduce asm/bitsperlong.h
2009-06-11 21:02:14 +02:00
int-ll64.h
asm-generic: introduce asm/bitsperlong.h
2009-06-11 21:02:14 +02:00
io.h
asm-generic/io.h: add reads[bwl]/writes[bwl] helpers
2011-01-10 07:18:03 -05:00
ioctl.h
ioctls.h
TTY: Add tty ioctl to figure device node of the system console.
2010-12-16 16:18:28 -08:00
iomap.h
ipcbuf.h
asm-generic: add generic sysv ipc headers
2009-06-11 21:02:15 +02:00
irq.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
irq_regs.h
core: Replace __get_cpu_var with __this_cpu_read if not used for an address.
2010-12-17 15:07:19 +01:00
irqflags.h
Fix IRQ flag handling naming
2010-10-07 14:08:55 +01:00
Kbuild
include: replace unifdef-y with header-y
2010-08-14 22:26:51 +02:00
Kbuild.asm
include: replace unifdef-y with header-y
2010-08-14 22:26:51 +02:00
kdebug.h
asm-generic: kdebug.h: Checkpatch cleanup
2010-10-09 21:51:44 +02:00
kmap_types.h
include/asm-generic/kmap_types.h: add helpful reminder
2010-05-25 08:07:03 -07:00
libata-portmap.h
linkage.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
local.h
local_t: Remove cpu_local_xx macros
2010-01-05 15:34:49 +09:00
local64.h
arch: Implement local64_t
2010-06-09 11:12:36 +02:00
memory_model.h
tree-wide: fix assorted typos all over the place
2009-12-04 15:39:55 +01:00
mm_hooks.h
mman-common.h
thp: mm: define MADV_NOHUGEPAGE
2011-01-13 17:32:47 -08:00
mman.h
mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions
2009-09-22 07:17:41 -07:00
mmu.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
mmu_context.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
module.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
msgbuf.h
asm-generic: add generic sysv ipc headers
2009-06-11 21:02:15 +02:00
mutex-dec.h
mutex-null.h
mutex-xchg.h
mutex.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
page.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
param.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
parport.h
asm-generic: add legacy I/O header files
2009-06-11 21:02:42 +02:00
pci-dma-compat.h
dma-mapping: pci: move pci_set_dma_mask and pci_set_consistent_dma_mask to pci-dma-compat.h
2010-03-12 15:52:42 -08:00
pci.h
PCI: remove pcibios_scan_all_fns()
2009-09-09 13:29:18 -07:00
percpu.h
percpu: Optimize __get_cpu_var()
2010-09-10 10:56:51 +02:00
pgalloc.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
pgtable-nopmd.h
mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
2009-07-27 12:10:38 -07:00
pgtable-nopud.h
mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
2009-07-27 12:10:38 -07:00
pgtable.h
fix non-x86 build failure in pmdp_get_and_clear
2011-01-16 15:05:44 -08:00
poll.h
posix_types.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
resource.h
rtc.h
asm-generic: make get_rtc_time overridable
2009-06-11 21:02:18 +02:00
scatterlist.h
asm-generic: remove ARCH_HAS_SG_CHAIN in scatterlist.h
2010-05-27 09:12:54 -07:00
sections.h
asm/sections: add text/data checking functions for arches to override
2009-09-23 07:39:30 -07:00
segment.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
sembuf.h
asm-generic: add generic sysv ipc headers
2009-06-11 21:02:15 +02:00
serial.h
asm-generic: add legacy I/O header files
2009-06-11 21:02:42 +02:00
setup.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
shmbuf.h
asm-generic: add generic sysv ipc headers
2009-06-11 21:02:15 +02:00
shmparam.h
asm-generic: add generic sysv ipc headers
2009-06-11 21:02:15 +02:00
siginfo.h
HWPOISON: Add new SIGBUS error codes for hardware poison signals
2009-09-16 11:50:06 +02:00
signal-defs.h
asm-generic: rename termios.h, signal.h and mman.h
2009-06-11 21:01:52 +02:00
signal.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
socket.h
net: Generalize socket rx gap / receive queue overflow cmsg
2009-10-12 13:26:31 -07:00
sockios.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
spinlock.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
stat.h
asm-generic/stat.h: support 64-bit file time_t for stat()
2010-11-01 15:31:29 -04:00
statfs.h
add f_flags to struct statfs(64)
2010-08-09 16:48:44 -04:00
string.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
swab.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
syscall.h
asm-generic: syscall_get_nr returns int
2009-09-22 19:56:50 -07:00
syscalls.h
Fix the declaration of sys_execve() in asm-generic/syscalls.h
2010-08-18 12:12:38 -07:00
system.h
asm-generic: cmpxchg does not handle non-long arguments
2010-10-09 21:51:27 +02:00
termbits.h
tty: Add EXTPROC support for LINEMODE
2010-08-10 13:47:39 -07:00
termios-base.h
asm-generic: rename termios.h, signal.h and mman.h
2009-06-11 21:01:52 +02:00
termios.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
timex.h
asm-generic: add legacy I/O header files
2009-06-11 21:02:42 +02:00
tlb.h
mm: Pass virtual address to [__]p{te,ud,md}_free_tlb()
2009-07-27 12:10:38 -07:00
tlbflush.h
asm-generic: add generic NOMMU versions of some headers
2009-06-11 21:02:50 +02:00
topology.h
topology: alternate fix for ia64 tiger_defconfig build breakage
2010-08-09 20:44:57 -07:00
types.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
uaccess-unaligned.h
asm-generic: rename page.h and uaccess.h
2009-06-11 21:02:17 +02:00
uaccess.h
asm-generic: uaccess: fix up local access_ok() usage
2009-06-19 14:58:08 +02:00
ucontext.h
asm-generic: add generic ABI headers
2009-06-11 21:02:15 +02:00
unaligned.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
unistd.h
Add fanotify syscalls to <asm-generic/unistd.h>.
2010-08-13 08:08:37 -04:00
user.h
asm-generic: add generic versions of common headers
2009-06-11 21:02:37 +02:00
vga.h
asm-generic: add legacy I/O header files
2009-06-11 21:02:42 +02:00
vmlinux.lds.h
tracing: Replace syscall_meta_data struct array with pointer array
2011-02-03 09:29:06 -05:00
xor.h