Ravi Bangoria
ba16293dad
tracing: Fix kernel crash while using empty filter with perf
...
Kernel is crashing when user tries to record 'ftrace:function' event
with empty filter:
# perf record -e ftrace:function --filter="" ls
# dmesg
BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
Oops: 0000 [#1 ] SMP PTI
...
RIP: 0010:ftrace_profile_set_filter+0x14b/0x2d0
RSP: 0018:ffffa4a7c0da7d20 EFLAGS: 00010246
RAX: ffffa4a7c0da7d64 RBX: 0000000000000000 RCX: 0000000000000006
RDX: 0000000000000000 RSI: 0000000000000092 RDI: ffff8c48ffc968f0
...
Call Trace:
_perf_ioctl+0x54a/0x6b0
? rcu_all_qs+0x5/0x30
...
After patch:
# perf record -e ftrace:function --filter="" ls
failed to set filter "" on event ftrace:function with 22 (Invalid argument)
Also, if user tries to echo "" > filter, it used to throw an error.
This behavior got changed by commit 80765597bc ("tracing: Rewrite
filter logic to be simpler and faster"). This patch restores the
behavior as a side effect:
Before patch:
# echo "" > filter
#
After patch:
# echo "" > filter
bash: echo: write error: Invalid argument
#
Link: http://lkml.kernel.org/r/20180420150758.19787-1-ravi.bangoria@linux.ibm.com
Fixes: 80765597bc ("tracing: Rewrite filter logic to be simpler and faster")
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2018-04-25 10:27:55 -04:00
..
blktrace.c
blktrace: fix trace mutex deadlock
2017-11-27 12:03:58 -07:00
bpf_trace.c
bpf: Check attach type at prog load time
2018-03-31 02:14:44 +02:00
ftrace.c
ftrace: Drop a VLA in module_exists()
2018-04-06 08:56:48 -04:00
Kconfig
tracing: Add inter-event blurb to HIST_TRIGGERS config option
2018-03-10 16:06:05 -05:00
Makefile
Tracing updates for 4.15:
2017-11-17 14:58:01 -08:00
power-traces.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
ring_buffer.c
ring-buffer: Add set/clear_current_oom_origin() during allocations
2018-04-06 08:56:52 -04:00
ring_buffer_benchmark.c
rpm-traces.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace.c
New features:
2018-04-10 11:27:30 -07:00
trace.h
tracing: Rewrite filter logic to be simpler and faster
2018-03-14 12:35:39 -04:00
trace_benchmark.c
trace: Eliminate cond_resched_rcu_qs() in favor of cond_resched()
2017-12-04 10:28:58 -08:00
trace_benchmark.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_branch.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_clock.c
tracing: Hide global trace clock from lockdep
2018-04-06 08:56:52 -04:00
trace_entries.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_event_perf.c
perf/core: Fix perf_uprobe_init()
2018-04-10 07:33:10 +02:00
trace_events.c
tracing: Make sure the parsed string always terminates with '\0'
2018-01-23 15:57:28 -05:00
trace_events_filter.c
tracing: Fix kernel crash while using empty filter with perf
2018-04-25 10:27:55 -04:00
trace_events_filter_test.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_events_hist.c
tracing: Uninitialized variable in create_tracing_map_fields()
2018-04-06 08:56:50 -04:00
trace_events_trigger.c
tracing: Add variable reference handling to hist triggers
2018-03-10 16:05:58 -05:00
trace_export.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_functions.c
tracing: Update stack trace skipping for ORC unwinder
2018-01-23 15:57:00 -05:00
trace_functions_graph.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_hwlat.c
trace_irqsoff.c
tracing: Add support for preempt and irq enable/disable events
2017-10-10 18:58:43 -04:00
trace_kdb.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_kprobe.c
Merge branch 'perf/urgent' into perf/core
2018-03-29 16:03:48 +02:00
trace_mmiotrace.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_nop.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_output.c
sched/debug: Rename task-state printing helpers
2017-10-10 11:43:29 +02:00
trace_output.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_printk.c
treewide: Align function definition open/close braces
2018-03-26 11:13:09 +02:00
trace_probe.c
tracing: probeevent: Fix to support minus offset from symbol
2018-03-23 12:02:37 -04:00
trace_probe.h
Merge branch 'perf/urgent' into perf/core
2018-03-29 16:03:48 +02:00
trace_sched_switch.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_sched_wakeup.c
Merge branch 'linus' into sched/core, to pick up fixes
2017-11-08 10:17:15 +01:00
trace_selftest.c
Tracing updates for 4.15:
2017-11-17 14:58:01 -08:00
trace_selftest_dynamic.c
ftrace: Mark function tracer test functions noinline/noclone
2018-01-23 15:57:29 -05:00
trace_seq.c
trace_stack.c
tracing: Have stack trace not record if RCU is not watching
2017-12-14 20:48:22 -05:00
trace_stat.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_stat.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace_syscalls.c
Tracing updates for 4.15:
2017-11-17 14:58:01 -08:00
trace_uprobe.c
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-04-15 12:36:31 -07:00
tracing_map.c
tracing: Add per-element variable support to tracing_map
2018-03-10 16:05:53 -05:00
tracing_map.h
tracing: Add per-element variable support to tracing_map
2018-03-10 16:05:53 -05:00