diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-06 12:30:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-06 12:30:52 -0400 |
commit | 4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9 (patch) | |
tree | 1f69733e5daab4915a76a41de0e4d1dc61e12cfb /include/linux | |
parent | 3a3527b6461b1298cc53ce72f336346739297ac8 (diff) | |
parent | fc9ea5a1e53ee54f681e226d735008e2a6f8f470 (diff) |
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)
tracing/kprobes: unregister_trace_probe needs to be called under mutex
perf: expose event__process function
perf events: Fix mmap offset determination
perf, powerpc: fsl_emb: Restore setting perf_sample_data.period
perf, powerpc: Convert the FSL driver to use local64_t
perf tools: Don't keep unreferenced maps when unmaps are detected
perf session: Invalidate last_match when removing threads from rb_tree
perf session: Free the ref_reloc_sym memory at the right place
x86,mmiotrace: Add support for tracing STOS instruction
perf, sched migration: Librarize task states and event headers helpers
perf, sched migration: Librarize the GUI class
perf, sched migration: Make the GUI class client agnostic
perf, sched migration: Make it vertically scrollable
perf, sched migration: Parameterize cpu height and spacing
perf, sched migration: Fix key bindings
perf, sched migration: Ignore unhandled task states
perf, sched migration: Handle ignored migrate out events
perf: New migration tool overview
tracing: Drop cpparg() macro
perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call
...
Fix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/ftrace.h | 5 | ||||
-rw-r--r-- | include/linux/ftrace_event.h | 18 | ||||
-rw-r--r-- | include/linux/kernel.h | 5 | ||||
-rw-r--r-- | include/linux/kmemtrace.h | 25 | ||||
-rw-r--r-- | include/linux/nmi.h | 13 | ||||
-rw-r--r-- | include/linux/perf_event.h | 95 | ||||
-rw-r--r-- | include/linux/sched.h | 24 | ||||
-rw-r--r-- | include/linux/slab_def.h | 3 | ||||
-rw-r--r-- | include/linux/slub_def.h | 3 | ||||
-rw-r--r-- | include/linux/syscalls.h | 2 |
10 files changed, 85 insertions, 108 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 41e46330d9be..dcd6a7c3a435 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
@@ -1,3 +1,8 @@ | |||
1 | /* | ||
2 | * Ftrace header. For implementation details beyond the random comments | ||
3 | * scattered below, see: Documentation/trace/ftrace-design.txt | ||
4 | */ | ||
5 | |||
1 | #ifndef _LINUX_FTRACE_H | 6 | #ifndef _LINUX_FTRACE_H |
2 | #define _LINUX_FTRACE_H | 7 | #define _LINUX_FTRACE_H |
3 | 8 | ||
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 3167f2df4126..02b8b24f8f51 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
@@ -11,8 +11,6 @@ struct trace_array; | |||
11 | struct tracer; | 11 | struct tracer; |
12 | struct dentry; | 12 | struct dentry; |
13 | 13 | ||
14 | DECLARE_PER_CPU(struct trace_seq, ftrace_event_seq); | ||
15 | |||
16 | struct trace_print_flags { | 14 | struct trace_print_flags { |
17 | unsigned long mask; | 15 | unsigned long mask; |
18 | const char *name; | 16 | const char *name; |
@@ -58,6 +56,9 @@ struct trace_iterator { | |||
58 | struct ring_buffer_iter *buffer_iter[NR_CPUS]; | 56 | struct ring_buffer_iter *buffer_iter[NR_CPUS]; |
59 | unsigned long iter_flags; | 57 | unsigned long iter_flags; |
60 | 58 | ||
59 | /* trace_seq for __print_flags() and __print_symbolic() etc. */ | ||
60 | struct trace_seq tmp_seq; | ||
61 | |||
61 | /* The below is zeroed out in pipe_read */ | 62 | /* The below is zeroed out in pipe_read */ |
62 | struct trace_seq seq; | 63 | struct trace_seq seq; |
63 | struct trace_entry *ent; | 64 | struct trace_entry *ent; |
@@ -146,14 +147,19 @@ struct ftrace_event_class { | |||
146 | int (*raw_init)(struct ftrace_event_call *); | 147 | int (*raw_init)(struct ftrace_event_call *); |
147 | }; | 148 | }; |
148 | 149 | ||
150 | extern int ftrace_event_reg(struct ftrace_event_call *event, | ||
151 | enum trace_reg type); | ||
152 | |||
149 | enum { | 153 | enum { |
150 | TRACE_EVENT_FL_ENABLED_BIT, | 154 | TRACE_EVENT_FL_ENABLED_BIT, |
151 | TRACE_EVENT_FL_FILTERED_BIT, | 155 | TRACE_EVENT_FL_FILTERED_BIT, |
156 | TRACE_EVENT_FL_RECORDED_CMD_BIT, | ||
152 | }; | 157 | }; |
153 | 158 | ||
154 | enum { | 159 | enum { |
155 | TRACE_EVENT_FL_ENABLED = (1 << TRACE_EVENT_FL_ENABLED_BIT), | 160 | TRACE_EVENT_FL_ENABLED = (1 << TRACE_EVENT_FL_ENABLED_BIT), |
156 | TRACE_EVENT_FL_FILTERED = (1 << TRACE_EVENT_FL_FILTERED_BIT), | 161 | TRACE_EVENT_FL_FILTERED = (1 << TRACE_EVENT_FL_FILTERED_BIT), |
162 | TRACE_EVENT_FL_RECORDED_CMD = (1 << TRACE_EVENT_FL_RECORDED_CMD_BIT), | ||
157 | }; | 163 | }; |
158 | 164 | ||
159 | struct ftrace_event_call { | 165 | struct ftrace_event_call { |
@@ -171,6 +177,7 @@ struct ftrace_event_call { | |||
171 | * 32 bit flags: | 177 | * 32 bit flags: |
172 | * bit 1: enabled | 178 | * bit 1: enabled |
173 | * bit 2: filter_active | 179 | * bit 2: filter_active |
180 | * bit 3: enabled cmd record | ||
174 | * | 181 | * |
175 | * Changes to flags must hold the event_mutex. | 182 | * Changes to flags must hold the event_mutex. |
176 | * | 183 | * |
@@ -257,8 +264,7 @@ static inline void | |||
257 | perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr, | 264 | perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr, |
258 | u64 count, struct pt_regs *regs, void *head) | 265 | u64 count, struct pt_regs *regs, void *head) |
259 | { | 266 | { |
260 | perf_tp_event(addr, count, raw_data, size, regs, head); | 267 | perf_tp_event(addr, count, raw_data, size, regs, head, rctx); |
261 | perf_swevent_put_recursion_context(rctx); | ||
262 | } | 268 | } |
263 | #endif | 269 | #endif |
264 | 270 | ||
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 5de838b0fc1a..38e462e00594 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -513,9 +513,6 @@ extern void tracing_start(void); | |||
513 | extern void tracing_stop(void); | 513 | extern void tracing_stop(void); |
514 | extern void ftrace_off_permanent(void); | 514 | extern void ftrace_off_permanent(void); |
515 | 515 | ||
516 | extern void | ||
517 | ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3); | ||
518 | |||
519 | static inline void __attribute__ ((format (printf, 1, 2))) | 516 | static inline void __attribute__ ((format (printf, 1, 2))) |
520 | ____trace_printk_check_format(const char *fmt, ...) | 517 | ____trace_printk_check_format(const char *fmt, ...) |
521 | { | 518 | { |
@@ -591,8 +588,6 @@ __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap); | |||
591 | 588 | ||
592 | extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode); | 589 | extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode); |
593 | #else | 590 | #else |
594 | static inline void | ||
595 | ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { } | ||
596 | static inline int | 591 | static inline int |
597 | trace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); | 592 | trace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); |
598 | 593 | ||
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/nmi.h b/include/linux/nmi.h index b752e807adde..06aab5eee134 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h | |||
@@ -20,10 +20,14 @@ extern void touch_nmi_watchdog(void); | |||
20 | extern void acpi_nmi_disable(void); | 20 | extern void acpi_nmi_disable(void); |
21 | extern void acpi_nmi_enable(void); | 21 | extern void acpi_nmi_enable(void); |
22 | #else | 22 | #else |
23 | #ifndef CONFIG_HARDLOCKUP_DETECTOR | ||
23 | static inline void touch_nmi_watchdog(void) | 24 | static inline void touch_nmi_watchdog(void) |
24 | { | 25 | { |
25 | touch_softlockup_watchdog(); | 26 | touch_softlockup_watchdog(); |
26 | } | 27 | } |
28 | #else | ||
29 | extern void touch_nmi_watchdog(void); | ||
30 | #endif | ||
27 | static inline void acpi_nmi_disable(void) { } | 31 | static inline void acpi_nmi_disable(void) { } |
28 | static inline void acpi_nmi_enable(void) { } | 32 | static inline void acpi_nmi_enable(void) { } |
29 | #endif | 33 | #endif |
@@ -47,4 +51,13 @@ static inline bool trigger_all_cpu_backtrace(void) | |||
47 | } | 51 | } |
48 | #endif | 52 | #endif |
49 | 53 | ||
54 | #ifdef CONFIG_LOCKUP_DETECTOR | ||
55 | int hw_nmi_is_cpu_stuck(struct pt_regs *); | ||
56 | u64 hw_nmi_get_sample_period(void); | ||
57 | extern int watchdog_enabled; | ||
58 | struct ctl_table; | ||
59 | extern int proc_dowatchdog_enabled(struct ctl_table *, int , | ||
60 | void __user *, size_t *, loff_t *); | ||
61 | #endif | ||
62 | |||
50 | #endif | 63 | #endif |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 5d0266d94985..937495c25073 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -214,8 +214,9 @@ struct perf_event_attr { | |||
214 | * See also PERF_RECORD_MISC_EXACT_IP | 214 | * See also PERF_RECORD_MISC_EXACT_IP |
215 | */ | 215 | */ |
216 | precise_ip : 2, /* skid constraint */ | 216 | precise_ip : 2, /* skid constraint */ |
217 | mmap_data : 1, /* non-exec mmap data */ | ||
217 | 218 | ||
218 | __reserved_1 : 47; | 219 | __reserved_1 : 46; |
219 | 220 | ||
220 | union { | 221 | union { |
221 | __u32 wakeup_events; /* wakeup every n events */ | 222 | __u32 wakeup_events; /* wakeup every n events */ |
@@ -461,6 +462,7 @@ enum perf_callchain_context { | |||
461 | 462 | ||
462 | #ifdef CONFIG_PERF_EVENTS | 463 | #ifdef CONFIG_PERF_EVENTS |
463 | # include <asm/perf_event.h> | 464 | # include <asm/perf_event.h> |
465 | # include <asm/local64.h> | ||
464 | #endif | 466 | #endif |
465 | 467 | ||
466 | struct perf_guest_info_callbacks { | 468 | struct perf_guest_info_callbacks { |
@@ -531,14 +533,16 @@ struct hw_perf_event { | |||
531 | struct hrtimer hrtimer; | 533 | struct hrtimer hrtimer; |
532 | }; | 534 | }; |
533 | #ifdef CONFIG_HAVE_HW_BREAKPOINT | 535 | #ifdef CONFIG_HAVE_HW_BREAKPOINT |
534 | /* breakpoint */ | 536 | struct { /* breakpoint */ |
535 | struct arch_hw_breakpoint info; | 537 | struct arch_hw_breakpoint info; |
538 | struct list_head bp_list; | ||
539 | }; | ||
536 | #endif | 540 | #endif |
537 | }; | 541 | }; |
538 | atomic64_t prev_count; | 542 | local64_t prev_count; |
539 | u64 sample_period; | 543 | u64 sample_period; |
540 | u64 last_period; | 544 | u64 last_period; |
541 | atomic64_t period_left; | 545 | local64_t period_left; |
542 | u64 interrupts; | 546 | u64 interrupts; |
543 | 547 | ||
544 | u64 freq_time_stamp; | 548 | u64 freq_time_stamp; |
@@ -548,7 +552,10 @@ struct hw_perf_event { | |||
548 | 552 | ||
549 | struct perf_event; | 553 | struct perf_event; |
550 | 554 | ||
551 | #define PERF_EVENT_TXN_STARTED 1 | 555 | /* |
556 | * Common implementation detail of pmu::{start,commit,cancel}_txn | ||
557 | */ | ||
558 | #define PERF_EVENT_TXN 0x1 | ||
552 | 559 | ||
553 | /** | 560 | /** |
554 | * struct pmu - generic performance monitoring unit | 561 | * struct pmu - generic performance monitoring unit |
@@ -562,14 +569,28 @@ struct pmu { | |||
562 | void (*unthrottle) (struct perf_event *event); | 569 | void (*unthrottle) (struct perf_event *event); |
563 | 570 | ||
564 | /* | 571 | /* |
565 | * group events scheduling is treated as a transaction, | 572 | * Group events scheduling is treated as a transaction, add group |
566 | * add group events as a whole and perform one schedulability test. | 573 | * events as a whole and perform one schedulability test. If the test |
567 | * If test fails, roll back the whole group | 574 | * fails, roll back the whole group |
568 | */ | 575 | */ |
569 | 576 | ||
577 | /* | ||
578 | * Start the transaction, after this ->enable() doesn't need | ||
579 | * to do schedulability tests. | ||
580 | */ | ||
570 | void (*start_txn) (const struct pmu *pmu); | 581 | void (*start_txn) (const struct pmu *pmu); |
571 | void (*cancel_txn) (const struct pmu *pmu); | 582 | /* |
583 | * If ->start_txn() disabled the ->enable() schedulability test | ||
584 | * then ->commit_txn() is required to perform one. On success | ||
585 | * the transaction is closed. On error the transaction is kept | ||
586 | * open until ->cancel_txn() is called. | ||
587 | */ | ||
572 | int (*commit_txn) (const struct pmu *pmu); | 588 | int (*commit_txn) (const struct pmu *pmu); |
589 | /* | ||
590 | * Will cancel the transaction, assumes ->disable() is called for | ||
591 | * each successfull ->enable() during the transaction. | ||
592 | */ | ||
593 | void (*cancel_txn) (const struct pmu *pmu); | ||
573 | }; | 594 | }; |
574 | 595 | ||
575 | /** | 596 | /** |
@@ -584,7 +605,9 @@ enum perf_event_active_state { | |||
584 | 605 | ||
585 | struct file; | 606 | struct file; |
586 | 607 | ||
587 | struct perf_mmap_data { | 608 | #define PERF_BUFFER_WRITABLE 0x01 |
609 | |||
610 | struct perf_buffer { | ||
588 | atomic_t refcount; | 611 | atomic_t refcount; |
589 | struct rcu_head rcu_head; | 612 | struct rcu_head rcu_head; |
590 | #ifdef CONFIG_PERF_USE_VMALLOC | 613 | #ifdef CONFIG_PERF_USE_VMALLOC |
@@ -650,7 +673,8 @@ struct perf_event { | |||
650 | 673 | ||
651 | enum perf_event_active_state state; | 674 | enum perf_event_active_state state; |
652 | unsigned int attach_state; | 675 | unsigned int attach_state; |
653 | atomic64_t count; | 676 | local64_t count; |
677 | atomic64_t child_count; | ||
654 | 678 | ||
655 | /* | 679 | /* |
656 | * These are the total time in nanoseconds that the event | 680 | * These are the total time in nanoseconds that the event |
@@ -709,7 +733,7 @@ struct perf_event { | |||
709 | atomic_t mmap_count; | 733 | atomic_t mmap_count; |
710 | int mmap_locked; | 734 | int mmap_locked; |
711 | struct user_struct *mmap_user; | 735 | struct user_struct *mmap_user; |
712 | struct perf_mmap_data *data; | 736 | struct perf_buffer *buffer; |
713 | 737 | ||
714 | /* poll related */ | 738 | /* poll related */ |
715 | wait_queue_head_t waitq; | 739 | wait_queue_head_t waitq; |
@@ -807,7 +831,7 @@ struct perf_cpu_context { | |||
807 | 831 | ||
808 | struct perf_output_handle { | 832 | struct perf_output_handle { |
809 | struct perf_event *event; | 833 | struct perf_event *event; |
810 | struct perf_mmap_data *data; | 834 | struct perf_buffer *buffer; |
811 | unsigned long wakeup; | 835 | unsigned long wakeup; |
812 | unsigned long size; | 836 | unsigned long size; |
813 | void *addr; | 837 | void *addr; |
@@ -910,8 +934,10 @@ extern atomic_t perf_swevent_enabled[PERF_COUNT_SW_MAX]; | |||
910 | 934 | ||
911 | extern void __perf_sw_event(u32, u64, int, struct pt_regs *, u64); | 935 | extern void __perf_sw_event(u32, u64, int, struct pt_regs *, u64); |
912 | 936 | ||
913 | extern void | 937 | #ifndef perf_arch_fetch_caller_regs |
914 | perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip); | 938 | static inline void |
939 | perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip) { } | ||
940 | #endif | ||
915 | 941 | ||
916 | /* | 942 | /* |
917 | * Take a snapshot of the regs. Skip ip and frame pointer to | 943 | * Take a snapshot of the regs. Skip ip and frame pointer to |
@@ -921,31 +947,11 @@ perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip); | |||
921 | * - bp for callchains | 947 | * - bp for callchains |
922 | * - eflags, for future purposes, just in case | 948 | * - eflags, for future purposes, just in case |
923 | */ | 949 | */ |
924 | static inline void perf_fetch_caller_regs(struct pt_regs *regs, int skip) | 950 | static inline void perf_fetch_caller_regs(struct pt_regs *regs) |
925 | { | 951 | { |
926 | unsigned long ip; | ||
927 | |||
928 | memset(regs, 0, sizeof(*regs)); | 952 | memset(regs, 0, sizeof(*regs)); |
929 | 953 | ||
930 | switch (skip) { | 954 | perf_arch_fetch_caller_regs(regs, CALLER_ADDR0); |
931 | case 1 : | ||
932 | ip = CALLER_ADDR0; | ||
933 | break; | ||
934 | case 2 : | ||
935 | ip = CALLER_ADDR1; | ||
936 | break; | ||
937 | case 3 : | ||
938 | ip = CALLER_ADDR2; | ||
939 | break; | ||
940 | case 4: | ||
941 | ip = CALLER_ADDR3; | ||
942 | break; | ||
943 | /* No need to support further for now */ | ||
944 | default: | ||
945 | ip = 0; | ||
946 | } | ||
947 | |||
948 | return perf_arch_fetch_caller_regs(regs, ip, skip); | ||
949 | } | 955 | } |
950 | 956 | ||
951 | static inline void | 957 | static inline void |
@@ -955,21 +961,14 @@ perf_sw_event(u32 event_id, u64 nr, int nmi, struct pt_regs *regs, u64 addr) | |||
955 | struct pt_regs hot_regs; | 961 | struct pt_regs hot_regs; |
956 | 962 | ||
957 | if (!regs) { | 963 | if (!regs) { |
958 | perf_fetch_caller_regs(&hot_regs, 1); | 964 | perf_fetch_caller_regs(&hot_regs); |
959 | regs = &hot_regs; | 965 | regs = &hot_regs; |
960 | } | 966 | } |
961 | __perf_sw_event(event_id, nr, nmi, regs, addr); | 967 | __perf_sw_event(event_id, nr, nmi, regs, addr); |
962 | } | 968 | } |
963 | } | 969 | } |
964 | 970 | ||
965 | extern void __perf_event_mmap(struct vm_area_struct *vma); | 971 | extern void perf_event_mmap(struct vm_area_struct *vma); |
966 | |||
967 | static inline void perf_event_mmap(struct vm_area_struct *vma) | ||
968 | { | ||
969 | if (vma->vm_flags & VM_EXEC) | ||
970 | __perf_event_mmap(vma); | ||
971 | } | ||
972 | |||
973 | extern struct perf_guest_info_callbacks *perf_guest_cbs; | 972 | extern struct perf_guest_info_callbacks *perf_guest_cbs; |
974 | extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks); | 973 | extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks); |
975 | extern int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks); | 974 | extern int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks); |
@@ -1001,7 +1000,7 @@ static inline bool perf_paranoid_kernel(void) | |||
1001 | extern void perf_event_init(void); | 1000 | extern void perf_event_init(void); |
1002 | extern void perf_tp_event(u64 addr, u64 count, void *record, | 1001 | extern void perf_tp_event(u64 addr, u64 count, void *record, |
1003 | int entry_size, struct pt_regs *regs, | 1002 | int entry_size, struct pt_regs *regs, |
1004 | struct hlist_head *head); | 1003 | struct hlist_head *head, int rctx); |
1005 | extern void perf_bp_event(struct perf_event *event, void *data); | 1004 | extern void perf_bp_event(struct perf_event *event, void *data); |
1006 | 1005 | ||
1007 | #ifndef perf_misc_flags | 1006 | #ifndef perf_misc_flags |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 0478888c6899..3992f50de614 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -316,20 +316,16 @@ extern void scheduler_tick(void); | |||
316 | 316 | ||
317 | extern void sched_show_task(struct task_struct *p); | 317 | extern void sched_show_task(struct task_struct *p); |
318 | 318 | ||
319 | #ifdef CONFIG_DETECT_SOFTLOCKUP | 319 | #ifdef CONFIG_LOCKUP_DETECTOR |
320 | extern void softlockup_tick(void); | ||
321 | extern void touch_softlockup_watchdog(void); | 320 | extern void touch_softlockup_watchdog(void); |
322 | extern void touch_softlockup_watchdog_sync(void); | 321 | extern void touch_softlockup_watchdog_sync(void); |
323 | extern void touch_all_softlockup_watchdogs(void); | 322 | extern void touch_all_softlockup_watchdogs(void); |
324 | extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | 323 | extern int proc_dowatchdog_thresh(struct ctl_table *table, int write, |
325 | void __user *buffer, | 324 | void __user *buffer, |
326 | size_t *lenp, loff_t *ppos); | 325 | size_t *lenp, loff_t *ppos); |
327 | extern unsigned int softlockup_panic; | 326 | extern unsigned int softlockup_panic; |
328 | extern int softlockup_thresh; | 327 | extern int softlockup_thresh; |
329 | #else | 328 | #else |
330 | static inline void softlockup_tick(void) | ||
331 | { | ||
332 | } | ||
333 | static inline void touch_softlockup_watchdog(void) | 329 | static inline void touch_softlockup_watchdog(void) |
334 | { | 330 | { |
335 | } | 331 | } |
@@ -2435,18 +2431,6 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) | |||
2435 | 2431 | ||
2436 | #endif /* CONFIG_SMP */ | 2432 | #endif /* CONFIG_SMP */ |
2437 | 2433 | ||
2438 | #ifdef CONFIG_TRACING | ||
2439 | extern void | ||
2440 | __trace_special(void *__tr, void *__data, | ||
2441 | unsigned long arg1, unsigned long arg2, unsigned long arg3); | ||
2442 | #else | ||
2443 | static inline void | ||
2444 | __trace_special(void *__tr, void *__data, | ||
2445 | unsigned long arg1, unsigned long arg2, unsigned long arg3) | ||
2446 | { | ||
2447 | } | ||
2448 | #endif | ||
2449 | |||
2450 | extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); | 2434 | extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask); |
2451 | extern long sched_getaffinity(pid_t pid, struct cpumask *mask); | 2435 | extern long sched_getaffinity(pid_t pid, struct cpumask *mask); |
2452 | 2436 | ||
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/linux/syscalls.h b/include/linux/syscalls.h index 13ebb5413a79..a6bfd1367d2a 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -167,7 +167,6 @@ extern struct trace_event_functions exit_syscall_print_funcs; | |||
167 | .enter_event = &event_enter_##sname, \ | 167 | .enter_event = &event_enter_##sname, \ |
168 | .exit_event = &event_exit_##sname, \ | 168 | .exit_event = &event_exit_##sname, \ |
169 | .enter_fields = LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \ | 169 | .enter_fields = LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \ |
170 | .exit_fields = LIST_HEAD_INIT(__syscall_meta_##sname.exit_fields), \ | ||
171 | }; | 170 | }; |
172 | 171 | ||
173 | #define SYSCALL_DEFINE0(sname) \ | 172 | #define SYSCALL_DEFINE0(sname) \ |
@@ -182,7 +181,6 @@ extern struct trace_event_functions exit_syscall_print_funcs; | |||
182 | .enter_event = &event_enter__##sname, \ | 181 | .enter_event = &event_enter__##sname, \ |
183 | .exit_event = &event_exit__##sname, \ | 182 | .exit_event = &event_exit__##sname, \ |
184 | .enter_fields = LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \ | 183 | .enter_fields = LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \ |
185 | .exit_fields = LIST_HEAD_INIT(__syscall_meta__##sname.exit_fields), \ | ||
186 | }; \ | 184 | }; \ |
187 | asmlinkage long sys_##sname(void) | 185 | asmlinkage long sys_##sname(void) |
188 | #else | 186 | #else |