All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/8] Centralize and unify usage of preempt/irq tracepoints
@ 2018-05-24  1:21 ` joelaf
  0 siblings, 0 replies; 33+ messages in thread
From: Joel Fernandes @ 2018-05-24  1:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: kernel-team, Joel Fernandes (Google),
	Boqun Feng, Byungchul Park, Erick Reyes, Ingo Molnar,
	Julia Cartwright, linux-kselftest, Masami Hiramatsu,
	Mathieu Desnoyers, Namhyung Kim, Paul McKenney, Peter Zijlstra,
	Shuah Khan, Steven Rostedt, Thomas Glexiner, Todd Kjos,
	Tom Zanussi

From: "Joel Fernandes (Google)" <joel@joelfernandes.org>

This is the next revision of preempt/irq tracepoint centralization and
unified usage across the kernel.
The preempt/irq tracepoints exist but not everything in the kernel is
using it. This makes things not work simultaneously (for ex, only either
lockdep or irqsoff events can be used at a time). This series is an attempt to
solve that, and also results in a nice clean up of kernel in general.
Several ifdefs are simpler, and the design is more unified and better.
Also as a result of this, we also speeded performance all rcuidle
tracepoints since their handling is simpler.

Few changes since v6:
- Added a module to simulate an atomic section, a kselftest to load and
  and trigger it which verifies the preempt-tracer and this series.

- there is a new warning after I rebased in early boot, this is because
early_boot_irqs_disabled was set too early, I moved it after the lockdep
initialization.

- added back the softirq fix since it appears it wasn't picked up.

- Ran Ingo's locking API selftest suite which are passing with this
  series.

- Mathieu suggested ifdef'ing the tracepoint_synchronize_unregister
  function incase tracepoints aren't enabled, did that.


Joel Fernandes (Google) (7):
  softirq: reorder trace_softirqs_on to prevent lockdep splat
  srcu: Add notrace variant of srcu_dereference
  trace/irqsoff: Split reset into separate functions
  tracepoint: Make rcuidle tracepoint callers use SRCU
  tracing: Centralize preemptirq tracepoints and unify their usage
  lib: Add module to simulate atomic sections for testing preemptoff
    tracers
  kselftests: Add tests for the preemptoff and irqsoff tracers

Paul McKenney (1):
  srcu: Add notrace variants of srcu_read_{lock,unlock}

 include/linux/ftrace.h                        |  11 +-
 include/linux/irqflags.h                      |  11 +-
 include/linux/lockdep.h                       |   8 +-
 include/linux/preempt.h                       |   2 +-
 include/linux/srcu.h                          |  22 ++
 include/linux/tracepoint.h                    |  48 +++-
 include/trace/events/preemptirq.h             |  23 +-
 init/main.c                                   |   5 +-
 kernel/locking/lockdep.c                      |  35 ++-
 kernel/sched/core.c                           |   2 +-
 kernel/softirq.c                              |   6 +-
 kernel/trace/Kconfig                          |  22 +-
 kernel/trace/Makefile                         |   2 +-
 kernel/trace/trace_irqsoff.c                  | 235 ++++++------------
 kernel/trace/trace_preemptirq.c               |  71 ++++++
 kernel/tracepoint.c                           |  15 +-
 lib/Kconfig.debug                             |   8 +
 lib/Makefile                                  |   1 +
 lib/test_atomic_sections.c                    |  79 ++++++
 tools/testing/selftests/ftrace/config         |   3 +
 .../test.d/preemptirq/irqsoff_tracer.tc       |  74 ++++++
 21 files changed, 454 insertions(+), 229 deletions(-)
 create mode 100644 kernel/trace/trace_preemptirq.c
 create mode 100644 lib/test_atomic_sections.c
 create mode 100644 tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc

-- 
2.17.0.441.gb46fe60e1d-goog

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

end of thread, other threads:[~2018-05-25 23:20 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-24  1:21 [PATCH v7 0/8] Centralize and unify usage of preempt/irq tracepoints Joel Fernandes
2018-05-24  1:21 ` Joel Fernandes
2018-05-24  1:21 ` joelaf
2018-05-24  1:21 ` [PATCH v7 1/8] softirq: reorder trace_softirqs_on to prevent lockdep splat Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-24  1:21 ` [PATCH v7 2/8] srcu: Add notrace variants of srcu_read_{lock,unlock} Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-24  1:21 ` [PATCH v7 3/8] srcu: Add notrace variant of srcu_dereference Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-24  1:21 ` [PATCH v7 4/8] trace/irqsoff: Split reset into separate functions Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-24  1:21 ` [PATCH v7 5/8] tracepoint: Make rcuidle tracepoint callers use SRCU Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-24  1:21 ` [PATCH v7 6/8] tracing: Centralize preemptirq tracepoints and unify their usage Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-25 11:43   ` Namhyung Kim
2018-05-25 11:43     ` Namhyung Kim
2018-05-25 11:43     ` namhyung
2018-05-25 23:20     ` Joel Fernandes
2018-05-25 23:20       ` Joel Fernandes
2018-05-25 23:20       ` joel
2018-05-24  1:21 ` [PATCH v7 7/8] lib: Add module to simulate atomic sections for testing preemptoff tracers Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf
2018-05-24  1:21 ` [PATCH v7 8/8] kselftests: Add tests for the preemptoff and irqsoff tracers Joel Fernandes
2018-05-24  1:21   ` Joel Fernandes
2018-05-24  1:21   ` joelaf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.