mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v4 0/3] ring-buffer/ftrace: Race when writing and swapping cpu buffer in parallel
@ 2014-07-29 12:31 Petr Mladek
  2014-07-29 12:31 ` [PATCH v4 1/3] ring-buffer: " Petr Mladek
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Petr Mladek @ 2014-07-29 12:31 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Ingo Molnar, Frederic Weisbecker, Paul E. McKenney, Jiri Kosina,
	linux-kernel, Petr Mladek

OK, I ended with these changes after changing my mind few times and hopefully
better understanding the aspects of preemption, interrupts, locking, and
scheduling.

1st patch fixes the race in ring_buffer_swap_cpu(). It is the one from previous
versions. I have only added checks for irqs_disabled() as suggested by Steven.

2nd patch should be easy. It only makes sure that we are on the same CPU
when handling the critical timings.

3rd patch was the most problematic for me. It creates two variants
of smp_call_function_single() that could be called either with or without
disabled interrupts. It is what Steven suggested but I wonder if it could
be done more elegant way. I am in somewhat strange mode after the twins were
born on Thursday.

Petr Mladek (3):
  ring-buffer: Race when writing and swapping cpu buffer in parallel
  trace: process entire stop_critical_timing() on the same CPU
  trace: Allow to call update_max_tr_single() from another CPU

 kernel/trace/ring_buffer.c   | 115 ++++++++++++++++++++++++++++++-------------
 kernel/trace/trace.c         |  60 +++++++++++++++++++---
 kernel/trace/trace.h         |   1 +
 kernel/trace/trace_irqsoff.c |  17 +++++--
 4 files changed, 146 insertions(+), 47 deletions(-)

-- 
1.8.4


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-07-29 12:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-29 12:31 [PATCH v4 0/3] ring-buffer/ftrace: Race when writing and swapping cpu buffer in parallel Petr Mladek
2014-07-29 12:31 ` [PATCH v4 1/3] ring-buffer: " Petr Mladek
2014-07-29 12:31 ` [PATCH v4 2/3] trace: process entire stop_critical_timing() on the same CPU Petr Mladek
2014-07-29 12:31 ` [PATCH v4 3/3] trace: Allow to call update_max_tr_single() from another CPU Petr Mladek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®