All of lore.kernel.org
 help / color / mirror / Atom feed
From: joel@joelfernandes.org (Joel Fernandes)
Subject: [PATCH v9 0/7] Centralize and unify usage of preempt/irq tracepoints
Date: Tue, 3 Jul 2018 07:15:37 -0700	[thread overview]
Message-ID: <20180703141537.GA108396@joelaf.mtv.corp.google.com> (raw)
Message-ID: <20180703141537.3_2IdsAeAK4uFUSzmzhMMWJrrMOlLfRAe84yE-YSd0E@z> (raw)
In-Reply-To: <20180628182149.226164-1-joel@joelfernandes.org>

On Thu, Jun 28, 2018@11:21:42AM -0700, Joel Fernandes wrote:
> From: "Joel Fernandes (Google)" <joel at joelfernandes.org>
> 
> This is a posting of v9 preempt/irq tracepoint clean up series rebased
> onto v4.18-rc2. No changes in the series, just a rebase + repost.
> 
> All patches have a Reviewed-by tags now from reviewers. This series has
> been well tested and is a simplification/refactoring of existing code,
> along with giving a speed-up for tracepoints using the rcu-idle API.
> With this our users will find it easier to use tools depending on
> existing preempt tracepoints since it simplifies the configuration for
> them.

Steve, all patches of this tracing series have been reviewed and/or acked and
there haven't been additional changes for a couple of reposts. Are you Ok
with it?

Thanks,

-Joel


> Future enhancements/fixes I am developing for preempt-off tracer will
> depend on these patches, so I suggest prioritizing these well reviewed
> and tested patches for that reason as well.
> 
> Introduction to the series:
> The preempt/irq tracepoints exist but not everything in the kernel is using it
> whenever they need to be notified that a preempt disable/enable or an irq
> disable/enable has occurred.  This makes things not work simultaneously (for
> example, only either lockdep or irqsoff trace-events can be used at a time).
> 
> This is particularly painful to deal with, since turning on lockdep breaks
> tracers that install probes on IRQ events, such as the BCC atomic critical
> section tracer [1]. This constraint also makes it impossible to use synthetic
> events to trace irqsoff sections with lockdep simulataneously turned on.
> 
> This series solves that, and also results in a nice clean up of relevant parts
> of the kernel. 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.
> 
> [1] https://github.com/iovisor/bcc/blob/master/tools/criticalstat_example.txt
> 
> v8->v9:
> - Small style changes to tracepoint code (Mathieu)
> - Minor style fix to use PTR_ERR_OR_ZERO (0-day bot)
> - Minor fix to test_atomic_sections to use unsigned long.
> - Added Namhyung's, Mathieu's Reviewed-by to some patches.
> - Added Acks from Matsami
> 
> v7->v8:
> - Refactored irqsoff tracer probe defines (Namhyung)
> 
> v6->v7:
> - Added a module to simulate an atomic section, a kselftest to load and
>   and trigger it which verifies the preempt-tracer and this series.
> 
> - Fixed 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) (6):
>   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                    |  49 +++-
>  include/trace/events/preemptirq.h             |  23 +-
>  init/main.c                                   |   5 +-
>  kernel/locking/lockdep.c                      |  35 +--
>  kernel/sched/core.c                           |   2 +-
>  kernel/trace/Kconfig                          |  22 +-
>  kernel/trace/Makefile                         |   2 +-
>  kernel/trace/trace_irqsoff.c                  | 253 ++++++------------
>  kernel/trace/trace_preemptirq.c               |  71 +++++
>  kernel/tracepoint.c                           |  16 +-
>  lib/Kconfig.debug                             |   8 +
>  lib/Makefile                                  |   1 +
>  lib/test_atomic_sections.c                    |  77 ++++++
>  tools/testing/selftests/ftrace/config         |   3 +
>  .../test.d/preemptirq/irqsoff_tracer.tc       |  73 +++++
>  20 files changed, 453 insertions(+), 241 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.18.0.rc2.346.g013aa6912e-goog
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2018-07-03 14:15 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-21 22:32 [PATCH v9 0/7] Centralize and unify usage of preempt/irq tracepoints Joel Fernandes
2018-06-21 22:32 ` Joel Fernandes
2018-06-21 22:32 ` joel
2018-06-28 18:21 Joel Fernandes
2018-06-28 18:21 ` Joel Fernandes
2018-06-28 18:21 ` joel
2018-06-28 18:21 Joel Fernandes
2018-06-28 18:21 ` Joel Fernandes
2018-06-28 18:21 ` joel
2018-06-28 18:21 ` [PATCH v9 1/7] srcu: Add notrace variants of srcu_read_{lock,unlock} Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-06-28 18:21 ` [PATCH v9 2/7] srcu: Add notrace variant of srcu_dereference Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-06-28 18:21 ` [PATCH v9 3/7] trace/irqsoff: Split reset into separate functions Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-06-28 18:21 ` [PATCH v9 4/7] tracepoint: Make rcuidle tracepoint callers use SRCU Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-07-11 12:49   ` Peter Zijlstra
2018-07-11 12:49     ` Peter Zijlstra
2018-07-11 12:49     ` peterz
2018-07-11 13:00     ` Steven Rostedt
2018-07-11 13:00       ` Steven Rostedt
2018-07-11 13:00       ` rostedt
2018-07-11 14:27       ` Paul E. McKenney
2018-07-11 14:27         ` Paul E. McKenney
2018-07-11 14:27         ` paulmck
2018-07-11 14:46         ` Steven Rostedt
2018-07-11 14:46           ` Steven Rostedt
2018-07-11 14:46           ` rostedt
2018-07-11 15:15           ` Paul E. McKenney
2018-07-11 15:15             ` Paul E. McKenney
2018-07-11 15:15             ` paulmck
2018-07-11 20:56             ` Joel Fernandes
2018-07-11 20:56               ` Joel Fernandes
2018-07-11 20:56               ` joel
2018-07-12  1:22               ` Steven Rostedt
2018-07-12  1:22                 ` Steven Rostedt
2018-07-12  1:22                 ` rostedt
2018-07-12  2:35                 ` Joel Fernandes
2018-07-12  2:35                   ` Joel Fernandes
2018-07-12  2:35                   ` joel
2018-07-11 20:52           ` Joel Fernandes
2018-07-11 20:52             ` Joel Fernandes
2018-07-11 20:52             ` joel
2018-07-12  3:21             ` Steven Rostedt
2018-07-12  3:21               ` Steven Rostedt
2018-07-12  3:21               ` rostedt
2018-07-12  4:28               ` Joel Fernandes
2018-07-12  4:28                 ` Joel Fernandes
2018-07-12  4:28                 ` joel
2018-07-12 13:35                 ` Steven Rostedt
2018-07-12 13:35                   ` Steven Rostedt
2018-07-12 13:35                   ` rostedt
2018-07-12 19:17                   ` Joel Fernandes
2018-07-12 19:17                     ` Joel Fernandes
2018-07-12 19:17                     ` joel
2018-07-12 20:15                     ` Steven Rostedt
2018-07-12 20:15                       ` Steven Rostedt
2018-07-12 20:15                       ` rostedt
2018-07-12 20:29                       ` Joel Fernandes
2018-07-12 20:29                         ` Joel Fernandes
2018-07-12 20:29                         ` joel
2018-07-12 20:31                         ` Steven Rostedt
2018-07-12 20:31                           ` Steven Rostedt
2018-07-12 20:31                           ` rostedt
2018-07-11 12:53   ` Peter Zijlstra
2018-07-11 12:53     ` Peter Zijlstra
2018-07-11 12:53     ` peterz
2018-07-12  2:32     ` Joel Fernandes
2018-07-12  2:32       ` Joel Fernandes
2018-07-12  2:32       ` joel
2018-07-11 12:56   ` Peter Zijlstra
2018-07-11 12:56     ` Peter Zijlstra
2018-07-11 12:56     ` peterz
2018-07-11 13:06     ` Steven Rostedt
2018-07-11 13:06       ` Steven Rostedt
2018-07-11 13:06       ` rostedt
2018-07-11 15:17       ` Peter Zijlstra
2018-07-11 15:17         ` Peter Zijlstra
2018-07-11 15:17         ` peterz
2018-07-11 15:26         ` Steven Rostedt
2018-07-11 15:26           ` Steven Rostedt
2018-07-11 15:26           ` rostedt
2018-07-11 16:46           ` Mathieu Desnoyers
2018-07-11 16:46             ` Mathieu Desnoyers
2018-07-11 16:46             ` mathieu.desnoyers
2018-07-11 16:40         ` Mathieu Desnoyers
2018-07-11 16:40           ` Mathieu Desnoyers
2018-07-11 16:40           ` mathieu.desnoyers
2018-07-12  0:31       ` Joel Fernandes
2018-07-12  0:31         ` Joel Fernandes
2018-07-12  0:31         ` joel
2018-07-12  1:26         ` Steven Rostedt
2018-07-12  1:26           ` Steven Rostedt
2018-07-12  1:26           ` rostedt
2018-06-28 18:21 ` [PATCH v9 5/7] tracing: Centralize preemptirq tracepoints and unify their usage Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-07-06 22:06   ` Steven Rostedt
2018-07-06 22:06     ` Steven Rostedt
2018-07-06 22:06     ` rostedt
2018-07-07  4:20     ` Joel Fernandes
2018-07-07  4:20       ` Joel Fernandes
2018-07-07  4:20       ` joel
2018-07-10 14:20   ` Steven Rostedt
2018-07-10 14:20     ` Steven Rostedt
2018-07-10 14:20     ` rostedt
2018-07-10 17:33     ` Joel Fernandes
2018-07-10 17:33       ` Joel Fernandes
2018-07-10 17:33       ` joel
2018-07-11 13:12   ` Peter Zijlstra
2018-07-11 13:12     ` Peter Zijlstra
2018-07-11 13:12     ` peterz
2018-07-11 13:19     ` Steven Rostedt
2018-07-11 13:19       ` Steven Rostedt
2018-07-11 13:19       ` rostedt
2018-07-11 13:22       ` Steven Rostedt
2018-07-11 13:22         ` Steven Rostedt
2018-07-11 13:22         ` rostedt
2018-07-12  8:38       ` Joel Fernandes
2018-07-12  8:38         ` Joel Fernandes
2018-07-12  8:38         ` joel
2018-07-12 13:37         ` Steven Rostedt
2018-07-12 13:37           ` Steven Rostedt
2018-07-12 13:37           ` rostedt
2018-07-12  0:44     ` Joel Fernandes
2018-07-12  0:44       ` Joel Fernandes
2018-07-12  0:44       ` joel
2018-06-28 18:21 ` [PATCH v9 6/7] lib: Add module to simulate atomic sections for testing preemptoff tracers Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-07-11  0:47   ` Steven Rostedt
2018-07-11  0:47     ` Steven Rostedt
2018-07-11  0:47     ` rostedt
2018-07-11  5:26     ` Joel Fernandes
2018-07-11  5:26       ` Joel Fernandes
2018-07-11  5:26       ` joel
2018-06-28 18:21 ` [PATCH v9 7/7] kselftests: Add tests for the preemptoff and irqsoff tracers Joel Fernandes
2018-06-28 18:21   ` Joel Fernandes
2018-06-28 18:21   ` joel
2018-07-11  0:49   ` Steven Rostedt
2018-07-11  0:49     ` Steven Rostedt
2018-07-11  0:49     ` rostedt
2018-07-11  5:27     ` Joel Fernandes
2018-07-11  5:27       ` Joel Fernandes
2018-07-11  5:27       ` joel
2018-07-03 14:15 ` Joel Fernandes [this message]
2018-07-03 14:15   ` [PATCH v9 0/7] Centralize and unify usage of preempt/irq tracepoints Joel Fernandes
2018-07-03 14:15   ` joel
2018-07-03 14:23   ` Steven Rostedt
2018-07-03 14:23     ` Steven Rostedt
2018-07-03 14:23     ` rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180703141537.GA108396@joelaf.mtv.corp.google.com \
    --to=joel@joelfernandes.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.