From: Namhyung Kim <namhyung@kernel.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Joel Fernandes <joelaf@google.com>,
linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
Peter Zilstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Tom Zanussi <tom.zanussi@linux.intel.com>,
Thomas Glexiner <tglx@linutronix.de>,
Boqun Feng <boqun.feng@gmail.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Randy Dunlap <rdunlap@infradead.org>,
Fenguang Wu <fengguang.wu@intel.com>,
Baohong Liu <baohong.liu@intel.com>,
Vedang Patel <vedang.patel@intel.com>,
kernel-team@lge.com
Subject: Re: [RFC v4 3/4] irqflags: Avoid unnecessary calls to trace_ if you can
Date: Thu, 19 Apr 2018 14:43:02 +0900 [thread overview]
Message-ID: <20180419054302.GD13370@sejong> (raw)
In-Reply-To: <20180418180250.7b6038dddba46b37c94b796c@kernel.org>
On Wed, Apr 18, 2018 at 06:02:50PM +0900, Masami Hiramatsu wrote:
> On Mon, 16 Apr 2018 21:07:47 -0700
> Joel Fernandes <joelaf@google.com> wrote:
>
> > With TRACE_IRQFLAGS, we call trace_ API too many times. We don't need
> > to if local_irq_restore or local_irq_save didn't actually do anything.
> >
> > This gives around a 4% improvement in performance when doing the
> > following command: "time find / > /dev/null"
> >
> > Also its best to avoid these calls where possible, since in this series,
> > the RCU code in tracepoint.h seems to be call these quite a bit and I'd
> > like to keep this overhead low.
>
> Can we assume that the "flags" has only 1 bit irq-disable flag?
> Since it skips calling raw_local_irq_restore(flags); too,
I don't know how many it impacts on performance but maybe we can have
an arch-specific config option something like below?
> if there is any state in the flags on any arch, it may change the
> result. In that case, we can do it as below (just skipping trace_hardirqs_*)
>
> int disabled = irqs_disabled();
if (disabled == raw_irqs_disabled_flags(flags)) {
#ifndef CONFIG_ARCH_CAN_SKIP_NESTED_IRQ_RESTORE
raw_local_irq_restore(flags);
#endif
return;
}
>
> if (!raw_irqs_disabled_flags(flags) && disabled)
> trace_hardirqs_on();
>
> raw_local_irq_restore(flags);
>
> if (raw_irqs_disabled_flags(flags) && !disabled)
> trace_hardirqs_off();
Thanks,
Namhyung
next prev parent reply other threads:[~2018-04-19 5:43 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-17 4:07 [RFC v4 0/4] Centralize and unify usage of preempt/irq tracepoints Joel Fernandes
2018-04-17 4:07 ` [RFC v4 1/4] tracepoint: Add API to not do lockdep checks during RCU ops Joel Fernandes
2018-04-17 4:07 ` [RFC v4 2/4] softirq: reorder trace_softirqs_on to prevent lockdep splat Joel Fernandes
2018-04-17 4:07 ` [RFC v4 3/4] irqflags: Avoid unnecessary calls to trace_ if you can Joel Fernandes
2018-04-18 9:02 ` Masami Hiramatsu
2018-04-19 5:43 ` Namhyung Kim [this message]
2018-04-20 7:07 ` Joel Fernandes
2018-04-23 1:14 ` Joel Fernandes
2018-04-23 3:19 ` Paul E. McKenney
2018-04-23 14:31 ` Mathieu Desnoyers
2018-04-23 14:53 ` Steven Rostedt
2018-04-23 14:59 ` Mathieu Desnoyers
2018-04-23 15:12 ` Paul E. McKenney
2018-04-23 16:18 ` Steven Rostedt
2018-04-23 17:12 ` Mathieu Desnoyers
2018-04-23 17:24 ` Joel Fernandes
2018-04-23 21:22 ` Steven Rostedt
2018-04-24 15:56 ` Paul E. McKenney
2018-04-24 16:01 ` Joel Fernandes
2018-04-24 17:26 ` Paul E. McKenney
2018-04-24 18:23 ` Paul E. McKenney
2018-04-24 18:26 ` Paul E. McKenney
2018-04-24 18:59 ` Joel Fernandes
2018-04-24 19:01 ` Joel Fernandes
2018-04-24 19:09 ` Paul E. McKenney
2018-04-24 19:16 ` Joel Fernandes
2018-04-24 23:21 ` Mathieu Desnoyers
2018-04-24 23:46 ` Joel Fernandes
2018-04-25 0:10 ` Paul E. McKenney
2018-04-25 4:20 ` Paul E. McKenney
2018-04-25 21:27 ` Joel Fernandes
2018-04-25 21:35 ` Paul E. McKenney
2018-04-25 21:40 ` Mathieu Desnoyers
2018-04-25 22:51 ` Steven Rostedt
2018-04-26 15:03 ` Mathieu Desnoyers
2018-04-26 16:08 ` Mathieu Desnoyers
2018-04-25 23:13 ` Joel Fernandes
2018-04-26 15:13 ` Mathieu Desnoyers
2018-04-26 15:20 ` Joel Fernandes
2018-04-26 15:49 ` Paul E. McKenney
2018-04-23 15:49 ` Joel Fernandes
2018-04-26 2:18 ` Joel Fernandes
2018-05-01 1:18 ` Joel Fernandes
2018-04-17 4:07 ` [RFC v4 4/4] tracing: Centralize preemptirq tracepoints and unify their usage Joel Fernandes
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=20180419054302.GD13370@sejong \
--to=namhyung@kernel.org \
--cc=baohong.liu@intel.com \
--cc=boqun.feng@gmail.com \
--cc=fengguang.wu@intel.com \
--cc=fweisbec@gmail.com \
--cc=joelaf@google.com \
--cc=kernel-team@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tom.zanussi@linux.intel.com \
--cc=vedang.patel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).