From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Joel Fernandes <joel@joelfernandes.org>,
linux-kernel@vger.kernel.org, Boqun Feng <boqun.feng@gmail.com>,
Byungchul Park <byungchul.park@lge.com>,
Ingo Molnar <mingo@redhat.com>, Julia Cartwright <julia@ni.com>,
linux-kselftest@vger.kernel.org,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Namhyung Kim <namhyung@kernel.org>,
Thomas Glexiner <tglx@linutronix.de>,
Tom Zanussi <tom.zanussi@linux.intel.com>
Subject: Re: [PATCH v9 4/7] tracepoint: Make rcuidle tracepoint callers use SRCU
Date: Wed, 11 Jul 2018 07:27:44 -0700 [thread overview]
Message-ID: <20180711142744.GN3593@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180711090003.42596c2b@gandalf.local.home>
On Wed, Jul 11, 2018 at 09:00:03AM -0400, Steven Rostedt wrote:
> On Wed, 11 Jul 2018 14:49:54 +0200
> Peter Zijlstra <peterz@infradead.org> wrote:
>
> > On Thu, Jun 28, 2018 at 11:21:46AM -0700, Joel Fernandes wrote:
> > > - it_func_ptr = rcu_dereference_sched((tp)->funcs); \
> >
> > I would convert to rcu_dereference_raw() to appease sparse. The fancy
> > stuff below is pointless if you then turn off all checking.
>
> The problem with doing this is if we use a trace event without the
> proper _idle() or whatever, we wont get a warning that it is used
> incorrectly with lockdep. Or does lockdep still check if "rcu is
> watching" with rcu_dereference_raw()?
No lockdep checking is done by rcu_dereference_raw().
Thanx, Paul
> -- Steve
>
> >
> > > + \
> > > + /* \
> > > + * For rcuidle callers, use srcu since sched-rcu \
> > > + * doesn't work from the idle path. \
> > > + */ \
> > > + if (rcuidle) { \
> > > + if (in_nmi()) { \
> > > + WARN_ON_ONCE(1); \
> > > + return; /* no srcu from nmi */ \
> > > + } \
> > > + \
> > > + idx = srcu_read_lock_notrace(&tracepoint_srcu); \
> > > + it_func_ptr = \
> > > + srcu_dereference_notrace((tp)->funcs, \
> > > + &tracepoint_srcu); \
> > > + /* To keep it consistent with !rcuidle path */ \
> > > + preempt_disable_notrace(); \
> > > + } else { \
> > > + rcu_read_lock_sched_notrace(); \
> > > + it_func_ptr = \
> > > + rcu_dereference_sched((tp)->funcs); \
> > > + } \
>
WARNING: multiple messages have this Message-ID (diff)
From: paulmck at linux.vnet.ibm.com (Paul E. McKenney)
Subject: [PATCH v9 4/7] tracepoint: Make rcuidle tracepoint callers use SRCU
Date: Wed, 11 Jul 2018 07:27:44 -0700 [thread overview]
Message-ID: <20180711142744.GN3593@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180711090003.42596c2b@gandalf.local.home>
On Wed, Jul 11, 2018 at 09:00:03AM -0400, Steven Rostedt wrote:
> On Wed, 11 Jul 2018 14:49:54 +0200
> Peter Zijlstra <peterz at infradead.org> wrote:
>
> > On Thu, Jun 28, 2018 at 11:21:46AM -0700, Joel Fernandes wrote:
> > > - it_func_ptr = rcu_dereference_sched((tp)->funcs); \
> >
> > I would convert to rcu_dereference_raw() to appease sparse. The fancy
> > stuff below is pointless if you then turn off all checking.
>
> The problem with doing this is if we use a trace event without the
> proper _idle() or whatever, we wont get a warning that it is used
> incorrectly with lockdep. Or does lockdep still check if "rcu is
> watching" with rcu_dereference_raw()?
No lockdep checking is done by rcu_dereference_raw().
Thanx, Paul
> -- Steve
>
> >
> > > + \
> > > + /* \
> > > + * For rcuidle callers, use srcu since sched-rcu \
> > > + * doesn't work from the idle path. \
> > > + */ \
> > > + if (rcuidle) { \
> > > + if (in_nmi()) { \
> > > + WARN_ON_ONCE(1); \
> > > + return; /* no srcu from nmi */ \
> > > + } \
> > > + \
> > > + idx = srcu_read_lock_notrace(&tracepoint_srcu); \
> > > + it_func_ptr = \
> > > + srcu_dereference_notrace((tp)->funcs, \
> > > + &tracepoint_srcu); \
> > > + /* To keep it consistent with !rcuidle path */ \
> > > + preempt_disable_notrace(); \
> > > + } else { \
> > > + rcu_read_lock_sched_notrace(); \
> > > + it_func_ptr = \
> > > + rcu_dereference_sched((tp)->funcs); \
> > > + } \
>
--
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
WARNING: multiple messages have this Message-ID (diff)
From: paulmck@linux.vnet.ibm.com (Paul E. McKenney)
Subject: [PATCH v9 4/7] tracepoint: Make rcuidle tracepoint callers use SRCU
Date: Wed, 11 Jul 2018 07:27:44 -0700 [thread overview]
Message-ID: <20180711142744.GN3593@linux.vnet.ibm.com> (raw)
Message-ID: <20180711142744.6t41ud8gIUilT5GLACGprTdteSb0w85x0FsQzcL3MoI@z> (raw)
In-Reply-To: <20180711090003.42596c2b@gandalf.local.home>
On Wed, Jul 11, 2018@09:00:03AM -0400, Steven Rostedt wrote:
> On Wed, 11 Jul 2018 14:49:54 +0200
> Peter Zijlstra <peterz@infradead.org> wrote:
>
> > On Thu, Jun 28, 2018@11:21:46AM -0700, Joel Fernandes wrote:
> > > - it_func_ptr = rcu_dereference_sched((tp)->funcs); \
> >
> > I would convert to rcu_dereference_raw() to appease sparse. The fancy
> > stuff below is pointless if you then turn off all checking.
>
> The problem with doing this is if we use a trace event without the
> proper _idle() or whatever, we wont get a warning that it is used
> incorrectly with lockdep. Or does lockdep still check if "rcu is
> watching" with rcu_dereference_raw()?
No lockdep checking is done by rcu_dereference_raw().
Thanx, Paul
> -- Steve
>
> >
> > > + \
> > > + /* \
> > > + * For rcuidle callers, use srcu since sched-rcu \
> > > + * doesn't work from the idle path. \
> > > + */ \
> > > + if (rcuidle) { \
> > > + if (in_nmi()) { \
> > > + WARN_ON_ONCE(1); \
> > > + return; /* no srcu from nmi */ \
> > > + } \
> > > + \
> > > + idx = srcu_read_lock_notrace(&tracepoint_srcu); \
> > > + it_func_ptr = \
> > > + srcu_dereference_notrace((tp)->funcs, \
> > > + &tracepoint_srcu); \
> > > + /* To keep it consistent with !rcuidle path */ \
> > > + preempt_disable_notrace(); \
> > > + } else { \
> > > + rcu_read_lock_sched_notrace(); \
> > > + it_func_ptr = \
> > > + rcu_dereference_sched((tp)->funcs); \
> > > + } \
>
--
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
next prev parent reply other threads:[~2018-07-11 14:25 UTC|newest]
Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-28 18:21 [PATCH v9 0/7] Centralize and unify usage of preempt/irq tracepoints 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 [this message]
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 ` [PATCH v9 0/7] Centralize and unify usage of preempt/irq tracepoints Joel Fernandes
2018-07-03 14:15 ` 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
-- strict thread matches above, loose matches on Subject: below --
2018-06-21 22:32 Joel Fernandes
2018-06-21 22:32 ` [PATCH v9 4/7] tracepoint: Make rcuidle tracepoint callers use SRCU Joel Fernandes
2018-06-21 22:32 ` Joel Fernandes
2018-06-21 22:32 ` joel
2018-06-07 20:38 [PATCH v9 0/7] Centralize and unify usage of preempt/irq Joel Fernandes
2018-06-07 20:38 ` [PATCH v9 4/7] tracepoint: Make rcuidle tracepoint callers use SRCU Joel Fernandes
2018-06-07 20:38 ` Joel Fernandes
2018-06-07 20:38 ` joelaf
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=20180711142744.GN3593@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=boqun.feng@gmail.com \
--cc=byungchul.park@lge.com \
--cc=joel@joelfernandes.org \
--cc=julia@ni.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tom.zanussi@linux.intel.com \
/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.