Vaibhav Nagarnaik
be910e74f6
ring-buffer: Allow for rescheduling when removing pages
...
commit 83f365554e47997ec68dc4eca3f5dce525cd15c3 upstream.
When reducing ring buffer size, pages are removed by scheduling a work
item on each CPU for the corresponding CPU ring buffer. After the pages
are removed from ring buffer linked list, the pages are free()d in a
tight loop. The loop does not give up CPU until all pages are removed.
In a worst case behavior, when lot of pages are to be freed, it can
cause system stall.
After the pages are removed from the list, the free() can happen while
the work is rescheduled. Call cond_resched() in the loop to prevent the
system hangup.
Link: http://lkml.kernel.org/r/20180907223129.71994-1-vnagarnaik@google.com
Cc: stable@vger.kernel.org
Fixes: 83f40318da ("ring-buffer: Make removal of ring buffer pages atomic")
Reported-by: Jason Behmer <jbehmer@google.com>
Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-29 03:07:32 -07:00
..
blktrace.c
tracing/blktrace: Fix to allow setting same value
2018-09-09 20:01:22 +02:00
bpf_trace.c
bpf: fix bpf_trace_printk on 32 bit archs
2017-08-30 10:21:39 +02:00
ftrace.c
ftrace: Remove incorrect setting of glob search field
2018-02-17 13:21:20 +01:00
Kconfig
This release cycle is rather small. Just a few fixes to tracing.
2016-10-06 11:48:41 -07:00
Makefile
Disable the __builtin_return_address() warning globally after all
2016-10-12 10:23:41 -07:00
power-traces.c
cpufreq: schedutil: New governor based on scheduler utilization data
2016-04-02 01:09:12 +02:00
ring_buffer.c
ring-buffer: Allow for rescheduling when removing pages
2018-09-29 03:07:32 -07:00
ring_buffer_benchmark.c
ring_buffer: Remove unneeded smp_wmb() before wakeup of reader benchmark
2015-11-03 16:19:02 -05:00
rpm-traces.c
trace.c
tracing: Do not call start/stop() functions when tracing_on does not change
2018-09-09 20:01:22 +02:00
trace.h
ftrace: Fix function pid filter on instances
2017-04-21 09:31:22 +02:00
trace_benchmark.c
tracing: Only benchmark the time tracepoints take if tracing is on
2015-11-02 13:34:58 -05:00
trace_benchmark.h
tracing: Add tracepoint benchmark tracepoint
2014-05-29 22:49:54 -04:00
trace_branch.c
tracing: Remove {start,stop}_branch_trace
2015-10-21 10:10:09 -04:00
trace_clock.c
tracing: Export tracing clock functions
2015-05-12 15:56:57 -04:00
trace_entries.h
tracing: Add NMI tracing in hwlat detector
2016-09-02 12:47:55 -04:00
trace_event_perf.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2016-05-17 16:26:30 -07:00
trace_events.c
tracing: Fix converting enum's from the map in trace_event_eval_update()
2018-01-23 19:57:07 +01:00
trace_events_filter.c
tracing: Fix regex_match_front() to not over compare the test string
2018-05-16 10:08:43 +02:00
trace_events_filter_test.h
trace_events_hist.c
tracing: Exclude 'generic fields' from histograms
2017-12-25 14:23:44 +01:00
trace_events_trigger.c
tracing: Fix possible double free in event_enable_trigger_func()
2018-08-03 07:55:12 +02:00
trace_export.c
tracing: ftrace_event_is_function() can return boolean
2015-11-02 14:28:05 -05:00
trace_functions.c
ftrace: Have set_ftrace_pid use the bitmap like events do
2016-06-20 09:54:19 -04:00
trace_functions_graph.c
tracing: Fix missing return symbol in function_graph output
2018-07-11 16:26:43 +02:00
trace_hwlat.c
tracing: Fix hwlat kthread migration
2017-02-09 08:08:28 +01:00
trace_irqsoff.c
tracing: Remove redundant reset per-CPU buff in irqsoff tracer
2016-03-18 16:39:11 -04:00
trace_kdb.c
tracing: Move trace_flags from global to a trace_array field
2015-09-30 15:22:55 -04:00
trace_kprobe.c
tracing: Quiet gcc warning about maybe unused link variable
2018-08-03 07:55:12 +02:00
trace_mmiotrace.c
tracing: Expose CPU physical addresses (resource values) for PCI devices
2016-06-20 09:54:22 -04:00
trace_nop.c
tracing: Fix typoes in code comment and printk in trace_nop.c
2016-03-08 11:23:57 -05:00
trace_output.c
tracing: Add NMI tracing in hwlat detector
2016-09-02 12:47:55 -04:00
trace_output.h
tracing: Turn seq_print_user_ip() into a static function
2015-09-28 10:16:12 -04:00
trace_printk.c
tracing: Handle NULL formats in hold_module_trace_bprintk_format()
2016-06-20 09:46:12 -04:00
trace_probe.c
tracing: probeevent: Fix to support minus offset from symbol
2018-03-28 18:39:23 +02:00
trace_probe.h
tracing: probeevent: Fix to support minus offset from symbol
2018-03-28 18:39:23 +02:00
trace_sched_switch.c
sched/core: Fix trace_sched_switch()
2015-10-06 17:08:15 +02:00
trace_sched_wakeup.c
Most of the changes are clean ups and small fixes. Some of them have
2015-11-06 13:30:20 -08:00
trace_selftest.c
ftrace: Fix selftest goto location on error
2017-09-27 14:39:23 +02:00
trace_selftest_dynamic.c
trace_seq.c
tracing: use %*pb[l] to print bitmaps including cpumasks and nodemasks
2015-02-13 21:21:37 -08:00
trace_stack.c
tracing, kasan: Silence Kasan warning in check_stack of stack_tracer
2016-02-19 12:36:44 -05:00
trace_stat.c
kernel/...: convert pr_warning to pr_warn
2016-03-22 15:36:02 -07:00
trace_stat.h
trace_syscalls.c
tracing/syscalls: fix multiline in error message text
2016-09-29 10:25:23 +02:00
trace_uprobe.c
uprobes: Use synchronize_rcu() not synchronize_sched()
2018-09-09 20:01:22 +02:00
tracing_map.c
tracing: Fix kmemleak in tracing_map_array_free()
2017-08-30 10:21:49 +02:00
tracing_map.h
tracing: Update some tracing_map constants and comments
2016-04-19 12:16:06 -04:00