diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-28 21:20:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-28 21:20:09 -0400 |
commit | c624c86615fb8aa61fa76ed8c935446d06c80e77 (patch) | |
tree | cbb84b5e8185a4c251b574d4b40ad04b6e3e59f0 /samples | |
parent | e55884d2c6ac3ae50e49a1f6fe38601a91181719 (diff) | |
parent | 78aebca2c955c1c5aeb48e12645e13fe3c3461f2 (diff) |
Merge tag 'trace-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing updates from Steven Rostedt:
"This is mostly clean ups and small fixes. Some of the more visible
changes are:
- The function pid code uses the event pid filtering logic
- [ku]probe events have access to current->comm
- trace_printk now has sample code
- PCI devices now trace physical addresses
- stack tracing has less unnessary functions traced"
* tag 'trace-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
printk, tracing: Avoiding unneeded blank lines
tracing: Use __get_str() when manipulating strings
tracing, RAS: Cleanup on __get_str() usage
tracing: Use outer () on __get_str() definition
ftrace: Reduce size of function graph entries
tracing: Have HIST_TRIGGERS select TRACING
tracing: Using for_each_set_bit() to simplify trace_pid_write()
ftrace: Move toplevel init out of ftrace_init_tracefs()
tracing/function_graph: Fix filters for function_graph threshold
tracing: Skip more functions when doing stack tracing of events
tracing: Expose CPU physical addresses (resource values) for PCI devices
tracing: Show the preempt count of when the event was called
tracing: Add trace_printk sample code
tracing: Choose static tp_printk buffer by explicit nesting count
tracing: expose current->comm to [ku]probe events
ftrace: Have set_ftrace_pid use the bitmap like events do
tracing: Move pid_list write processing into its own function
tracing: Move the pid_list seq_file functions to be global
tracing: Move filtered_pid helper functions into trace.c
tracing: Make the pid filtering helper functions global
Diffstat (limited to 'samples')
-rw-r--r-- | samples/Kconfig | 7 | ||||
-rw-r--r-- | samples/Makefile | 2 | ||||
-rw-r--r-- | samples/trace_printk/Makefile | 6 | ||||
-rw-r--r-- | samples/trace_printk/trace-printk.c | 56 |
4 files changed, 70 insertions, 1 deletions
diff --git a/samples/Kconfig b/samples/Kconfig index 559a58baff6e..27a24571e96c 100644 --- a/samples/Kconfig +++ b/samples/Kconfig | |||
@@ -11,6 +11,13 @@ config SAMPLE_TRACE_EVENTS | |||
11 | help | 11 | help |
12 | This build trace event example modules. | 12 | This build trace event example modules. |
13 | 13 | ||
14 | config SAMPLE_TRACE_PRINTK | ||
15 | tristate "Build trace_printk module - tests various trace_printk formats" | ||
16 | depends on EVENT_TRACING && m | ||
17 | help | ||
18 | This builds a module that calls trace_printk() and can be used to | ||
19 | test various trace_printk() calls from a module. | ||
20 | |||
14 | config SAMPLE_KOBJECT | 21 | config SAMPLE_KOBJECT |
15 | tristate "Build kobject examples -- loadable modules only" | 22 | tristate "Build kobject examples -- loadable modules only" |
16 | depends on m | 23 | depends on m |
diff --git a/samples/Makefile b/samples/Makefile index 2e3b523d7097..1a20169d85ac 100644 --- a/samples/Makefile +++ b/samples/Makefile | |||
@@ -2,4 +2,4 @@ | |||
2 | 2 | ||
3 | obj-$(CONFIG_SAMPLES) += kobject/ kprobes/ trace_events/ livepatch/ \ | 3 | obj-$(CONFIG_SAMPLES) += kobject/ kprobes/ trace_events/ livepatch/ \ |
4 | hw_breakpoint/ kfifo/ kdb/ hidraw/ rpmsg/ seccomp/ \ | 4 | hw_breakpoint/ kfifo/ kdb/ hidraw/ rpmsg/ seccomp/ \ |
5 | configfs/ connector/ v4l/ | 5 | configfs/ connector/ v4l/ trace_printk/ |
diff --git a/samples/trace_printk/Makefile b/samples/trace_printk/Makefile new file mode 100644 index 000000000000..19900ab2b00d --- /dev/null +++ b/samples/trace_printk/Makefile | |||
@@ -0,0 +1,6 @@ | |||
1 | # builds a module that calls various trace_printk routines | ||
2 | # then to use one (as root): insmod <module_name.ko> | ||
3 | |||
4 | # This module can also be used to test the trace_printk code. | ||
5 | |||
6 | obj-$(CONFIG_SAMPLE_TRACE_PRINTK) += trace-printk.o | ||
diff --git a/samples/trace_printk/trace-printk.c b/samples/trace_printk/trace-printk.c new file mode 100644 index 000000000000..e9e0040ff7be --- /dev/null +++ b/samples/trace_printk/trace-printk.c | |||
@@ -0,0 +1,56 @@ | |||
1 | #include <linux/module.h> | ||
2 | #include <linux/kthread.h> | ||
3 | #include <linux/irq_work.h> | ||
4 | |||
5 | /* Must not be static to force gcc to consider these non constant */ | ||
6 | char *trace_printk_test_global_str = | ||
7 | "This is a dynamic string that will use trace_puts\n"; | ||
8 | |||
9 | char *trace_printk_test_global_str_irq = | ||
10 | "(irq) This is a dynamic string that will use trace_puts\n"; | ||
11 | |||
12 | char *trace_printk_test_global_str_fmt = | ||
13 | "%sThis is a %s that will use trace_printk\n"; | ||
14 | |||
15 | static struct irq_work irqwork; | ||
16 | |||
17 | static void trace_printk_irq_work(struct irq_work *work) | ||
18 | { | ||
19 | trace_printk("(irq) This is a static string that will use trace_bputs\n"); | ||
20 | trace_printk(trace_printk_test_global_str_irq); | ||
21 | |||
22 | trace_printk("(irq) This is a %s that will use trace_bprintk()\n", | ||
23 | "static string"); | ||
24 | |||
25 | trace_printk(trace_printk_test_global_str_fmt, | ||
26 | "(irq) ", "dynamic string"); | ||
27 | } | ||
28 | |||
29 | static int __init trace_printk_init(void) | ||
30 | { | ||
31 | init_irq_work(&irqwork, trace_printk_irq_work); | ||
32 | |||
33 | trace_printk("This is a static string that will use trace_bputs\n"); | ||
34 | trace_printk(trace_printk_test_global_str); | ||
35 | |||
36 | /* Kick off printing in irq context */ | ||
37 | irq_work_queue(&irqwork); | ||
38 | |||
39 | trace_printk("This is a %s that will use trace_bprintk()\n", | ||
40 | "static string"); | ||
41 | |||
42 | trace_printk(trace_printk_test_global_str_fmt, "", "dynamic string"); | ||
43 | |||
44 | return 0; | ||
45 | } | ||
46 | |||
47 | static void __exit trace_printk_exit(void) | ||
48 | { | ||
49 | } | ||
50 | |||
51 | module_init(trace_printk_init); | ||
52 | module_exit(trace_printk_exit); | ||
53 | |||
54 | MODULE_AUTHOR("Steven Rostedt"); | ||
55 | MODULE_DESCRIPTION("trace-printk"); | ||
56 | MODULE_LICENSE("GPL"); | ||