diff options
author | Ingo Molnar <mingo@elte.hu> | 2010-06-09 12:55:20 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-06-09 12:55:57 -0400 |
commit | c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8 (patch) | |
tree | 3f44aa013d31d34951e9610e79ff14c1148ad6ac /include | |
parent | 7be7923633a142402266d642ccebf74f556a649b (diff) | |
parent | 018378c55b03f88ff513aba4e0e93b8d4a9cf241 (diff) |
Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/kmemtrace.h | 25 | ||||
-rw-r--r-- | include/linux/perf_event.h | 32 | ||||
-rw-r--r-- | include/linux/slab_def.h | 3 | ||||
-rw-r--r-- | include/linux/slub_def.h | 3 | ||||
-rw-r--r-- | include/trace/boot.h | 60 | ||||
-rw-r--r-- | include/trace/ftrace.h | 2 |
6 files changed, 12 insertions, 113 deletions
diff --git a/include/linux/kmemtrace.h b/include/linux/kmemtrace.h deleted file mode 100644 index b616d3930c3b..000000000000 --- a/include/linux/kmemtrace.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 Eduard - Gabriel Munteanu | ||
3 | * | ||
4 | * This file is released under GPL version 2. | ||
5 | */ | ||
6 | |||
7 | #ifndef _LINUX_KMEMTRACE_H | ||
8 | #define _LINUX_KMEMTRACE_H | ||
9 | |||
10 | #ifdef __KERNEL__ | ||
11 | |||
12 | #include <trace/events/kmem.h> | ||
13 | |||
14 | #ifdef CONFIG_KMEMTRACE | ||
15 | extern void kmemtrace_init(void); | ||
16 | #else | ||
17 | static inline void kmemtrace_init(void) | ||
18 | { | ||
19 | } | ||
20 | #endif | ||
21 | |||
22 | #endif /* __KERNEL__ */ | ||
23 | |||
24 | #endif /* _LINUX_KMEMTRACE_H */ | ||
25 | |||
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 1218d05728b9..63b5aa5dce69 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -932,8 +932,10 @@ extern atomic_t perf_swevent_enabled[PERF_COUNT_SW_MAX]; | |||
932 | 932 | ||
933 | extern void __perf_sw_event(u32, u64, int, struct pt_regs *, u64); | 933 | extern void __perf_sw_event(u32, u64, int, struct pt_regs *, u64); |
934 | 934 | ||
935 | extern void | 935 | #ifndef perf_arch_fetch_caller_regs |
936 | perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip); | 936 | static inline void |
937 | perf_arch_fetch_caller_regs(struct regs *regs, unsigned long ip) { } | ||
938 | #endif | ||
937 | 939 | ||
938 | /* | 940 | /* |
939 | * Take a snapshot of the regs. Skip ip and frame pointer to | 941 | * Take a snapshot of the regs. Skip ip and frame pointer to |
@@ -943,31 +945,11 @@ perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip); | |||
943 | * - bp for callchains | 945 | * - bp for callchains |
944 | * - eflags, for future purposes, just in case | 946 | * - eflags, for future purposes, just in case |
945 | */ | 947 | */ |
946 | static inline void perf_fetch_caller_regs(struct pt_regs *regs, int skip) | 948 | static inline void perf_fetch_caller_regs(struct pt_regs *regs) |
947 | { | 949 | { |
948 | unsigned long ip; | ||
949 | |||
950 | memset(regs, 0, sizeof(*regs)); | 950 | memset(regs, 0, sizeof(*regs)); |
951 | 951 | ||
952 | switch (skip) { | 952 | perf_arch_fetch_caller_regs(regs, CALLER_ADDR0); |
953 | case 1 : | ||
954 | ip = CALLER_ADDR0; | ||
955 | break; | ||
956 | case 2 : | ||
957 | ip = CALLER_ADDR1; | ||
958 | break; | ||
959 | case 3 : | ||
960 | ip = CALLER_ADDR2; | ||
961 | break; | ||
962 | case 4: | ||
963 | ip = CALLER_ADDR3; | ||
964 | break; | ||
965 | /* No need to support further for now */ | ||
966 | default: | ||
967 | ip = 0; | ||
968 | } | ||
969 | |||
970 | return perf_arch_fetch_caller_regs(regs, ip, skip); | ||
971 | } | 953 | } |
972 | 954 | ||
973 | static inline void | 955 | static inline void |
@@ -977,7 +959,7 @@ perf_sw_event(u32 event_id, u64 nr, int nmi, struct pt_regs *regs, u64 addr) | |||
977 | struct pt_regs hot_regs; | 959 | struct pt_regs hot_regs; |
978 | 960 | ||
979 | if (!regs) { | 961 | if (!regs) { |
980 | perf_fetch_caller_regs(&hot_regs, 1); | 962 | perf_fetch_caller_regs(&hot_regs); |
981 | regs = &hot_regs; | 963 | regs = &hot_regs; |
982 | } | 964 | } |
983 | __perf_sw_event(event_id, nr, nmi, regs, addr); | 965 | __perf_sw_event(event_id, nr, nmi, regs, addr); |
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h index 1812dac8c496..1acfa73ce2ac 100644 --- a/include/linux/slab_def.h +++ b/include/linux/slab_def.h | |||
@@ -14,7 +14,8 @@ | |||
14 | #include <asm/page.h> /* kmalloc_sizes.h needs PAGE_SIZE */ | 14 | #include <asm/page.h> /* kmalloc_sizes.h needs PAGE_SIZE */ |
15 | #include <asm/cache.h> /* kmalloc_sizes.h needs L1_CACHE_BYTES */ | 15 | #include <asm/cache.h> /* kmalloc_sizes.h needs L1_CACHE_BYTES */ |
16 | #include <linux/compiler.h> | 16 | #include <linux/compiler.h> |
17 | #include <linux/kmemtrace.h> | 17 | |
18 | #include <trace/events/kmem.h> | ||
18 | 19 | ||
19 | #ifndef ARCH_KMALLOC_MINALIGN | 20 | #ifndef ARCH_KMALLOC_MINALIGN |
20 | /* | 21 | /* |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 4ba59cfc1f75..6447a723ecb1 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
@@ -10,9 +10,10 @@ | |||
10 | #include <linux/gfp.h> | 10 | #include <linux/gfp.h> |
11 | #include <linux/workqueue.h> | 11 | #include <linux/workqueue.h> |
12 | #include <linux/kobject.h> | 12 | #include <linux/kobject.h> |
13 | #include <linux/kmemtrace.h> | ||
14 | #include <linux/kmemleak.h> | 13 | #include <linux/kmemleak.h> |
15 | 14 | ||
15 | #include <trace/events/kmem.h> | ||
16 | |||
16 | enum stat_item { | 17 | enum stat_item { |
17 | ALLOC_FASTPATH, /* Allocation from cpu slab */ | 18 | ALLOC_FASTPATH, /* Allocation from cpu slab */ |
18 | ALLOC_SLOWPATH, /* Allocation by getting a new cpu slab */ | 19 | ALLOC_SLOWPATH, /* Allocation by getting a new cpu slab */ |
diff --git a/include/trace/boot.h b/include/trace/boot.h deleted file mode 100644 index 088ea089e31d..000000000000 --- a/include/trace/boot.h +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | #ifndef _LINUX_TRACE_BOOT_H | ||
2 | #define _LINUX_TRACE_BOOT_H | ||
3 | |||
4 | #include <linux/module.h> | ||
5 | #include <linux/kallsyms.h> | ||
6 | #include <linux/init.h> | ||
7 | |||
8 | /* | ||
9 | * Structure which defines the trace of an initcall | ||
10 | * while it is called. | ||
11 | * You don't have to fill the func field since it is | ||
12 | * only used internally by the tracer. | ||
13 | */ | ||
14 | struct boot_trace_call { | ||
15 | pid_t caller; | ||
16 | char func[KSYM_SYMBOL_LEN]; | ||
17 | }; | ||
18 | |||
19 | /* | ||
20 | * Structure which defines the trace of an initcall | ||
21 | * while it returns. | ||
22 | */ | ||
23 | struct boot_trace_ret { | ||
24 | char func[KSYM_SYMBOL_LEN]; | ||
25 | int result; | ||
26 | unsigned long long duration; /* nsecs */ | ||
27 | }; | ||
28 | |||
29 | #ifdef CONFIG_BOOT_TRACER | ||
30 | /* Append the traces on the ring-buffer */ | ||
31 | extern void trace_boot_call(struct boot_trace_call *bt, initcall_t fn); | ||
32 | extern void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn); | ||
33 | |||
34 | /* Tells the tracer that smp_pre_initcall is finished. | ||
35 | * So we can start the tracing | ||
36 | */ | ||
37 | extern void start_boot_trace(void); | ||
38 | |||
39 | /* Resume the tracing of other necessary events | ||
40 | * such as sched switches | ||
41 | */ | ||
42 | extern void enable_boot_trace(void); | ||
43 | |||
44 | /* Suspend this tracing. Actually, only sched_switches tracing have | ||
45 | * to be suspended. Initcalls doesn't need it.) | ||
46 | */ | ||
47 | extern void disable_boot_trace(void); | ||
48 | #else | ||
49 | static inline | ||
50 | void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) { } | ||
51 | |||
52 | static inline | ||
53 | void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) { } | ||
54 | |||
55 | static inline void start_boot_trace(void) { } | ||
56 | static inline void enable_boot_trace(void) { } | ||
57 | static inline void disable_boot_trace(void) { } | ||
58 | #endif /* CONFIG_BOOT_TRACER */ | ||
59 | |||
60 | #endif /* __LINUX_TRACE_BOOT_H */ | ||
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 5a64905d7278..fc013a8201e9 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
@@ -705,7 +705,7 @@ perf_trace_##call(void *__data, proto) \ | |||
705 | int __data_size; \ | 705 | int __data_size; \ |
706 | int rctx; \ | 706 | int rctx; \ |
707 | \ | 707 | \ |
708 | perf_fetch_caller_regs(&__regs, 1); \ | 708 | perf_fetch_caller_regs(&__regs); \ |
709 | \ | 709 | \ |
710 | __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \ | 710 | __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \ |
711 | __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\ | 711 | __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\ |