From: Uladzislau Rezki <urezki@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Uladzislau Rezki <urezki@gmail.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
joel@joelfernandes.org, rcu@vger.kernel.org,
Josh Triplett <josh@joshtriplett.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Mike Galbraith <efault@gmx.de>
Subject: Re: [PATCH 1/3] rcu: Use static initializer for krc.lock
Date: Tue, 21 Apr 2020 07:18:05 +0200 [thread overview]
Message-ID: <20200421051805.GA5124@pc636> (raw)
In-Reply-To: <20200420212257.4332734f@oasis.local.home>
> <rant>
> I really wish you would crop your email. If I scroll down three pages
> without seeing any reply, I usually stop reading there.
> </rant>
>
Agree. i will do it in better manner next time.
> > > >
> > Paul, i have just measured the time duration of the schedule_delayed_work().
> > To do that i used below patch:
> >
> > <snip>
> > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> > index 02f73f7bbd40..f74ae0f3556e 100644
> > --- a/kernel/rcu/tree.c
> > +++ b/kernel/rcu/tree.c
> > @@ -3232,6 +3232,12 @@ static inline struct rcu_head *attach_rcu_head_to_object(void *obj)
> > return ((struct rcu_head *) ++ptr);
> > }
> >
> > +static void noinline
> > +measure_schedule_delayed_work(struct kfree_rcu_cpu *krcp)
> > +{
> > + schedule_delayed_work(&krcp->monitor_work, KFREE_DRAIN_JIFFIES);
> > +}
> > +
> > /*
> > * Queue a request for lazy invocation of appropriate free routine after a
> > * grace period. Please note there are three paths are maintained, two are the
> > @@ -3327,8 +3333,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func)
> > if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING &&
> > !krcp->monitor_todo) {
> > krcp->monitor_todo = true;
> > - schedule_delayed_work(&krcp->monitor_work,
> > - expedited_drain ? 0 : KFREE_DRAIN_JIFFIES);
> > + measure_schedule_delayed_work(krcp);
> > }
> > <snip>
> >
> > i have done it for not CONFIG_PREEMPT_RT kernel, i do not have any RT configuration.
> > I run rcuperf to apply the load to see the time taken by the actual placing of the work,
> > i.e. the time taken by schedule_delayed_work():
> >
> > <snip>
> > root@pc636:/sys/kernel/debug/tracing# cat trace
> > # tracer: function_graph
> > #
> > # function_graph latency trace v1.1.5 on 5.6.0-rc6+
> > # --------------------------------------------------------------------
> > # latency: 0 us, #16/16, CPU#0 | (M:server VP:0, KP:0, SP:0 HP:0 #P:4)
> > # -----------------
> > # | task: -0 (uid:0 nice:0 policy:0 rt_prio:0)
> > # -----------------
> > #
> > # _-----=> irqs-off
> > # / _----=> need-resched
> > # | / _---=> hardirq/softirq
> > # || / _--=> preempt-depth
> > # ||| /
> > # TIME CPU TASK/PID |||| DURATION FUNCTION CALLS
> > # | | | | |||| | | | | | |
> > 682.384653 | 1) <idle>-0 | d.s. | 5.329 us | } /* measure_schedule_delayed_work.constprop.86 */
>
> Strange output. Do you have all functions being traced? That could
> cause overhead.
>
> Try this:
>
> # echo measure_schedule_delayed_work > set_ftrace_filter
> # echo function_graph > current_tracer
> # cat trace
>
> That will give you much better timings of the overhead of a single
> function.
>
I did exactly how are your steps. I do not filter all available
functions, there is only one set:
<snip>
root@pc636:/sys/kernel/debug/tracing# cat set_ftrace_filter
measure_schedule_delayed_work.constprop.86
root@pc636:/sys/kernel/debug/tracing# cat tracing_thresh
5
root@pc636:/sys/kernel/debug/tracing# cat current_tracer
function_graph
root@pc636:/sys/kernel/debug/tracing#
<snip>
Also i set 5 microseconds threshold to filter out what is less
and added the latency-format trace option.
--
Vlad Rezki
next prev parent reply other threads:[~2020-04-21 5:18 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-15 16:00 [PATCH 0/3] rcu: Static initializer + misc Sebastian Andrzej Siewior
2020-04-15 16:00 ` [PATCH 1/3] rcu: Use static initializer for krc.lock Sebastian Andrzej Siewior
2020-04-16 14:42 ` Joel Fernandes
2020-04-16 15:01 ` Uladzislau Rezki
2020-04-16 15:20 ` Sebastian Andrzej Siewior
2020-04-16 15:38 ` Uladzislau Rezki
2020-04-16 15:46 ` Sebastian Andrzej Siewior
2020-04-16 16:01 ` Uladzislau Rezki
2020-04-16 16:11 ` Sebastian Andrzej Siewior
2020-04-16 16:18 ` Uladzislau Rezki
2020-04-16 16:33 ` Sebastian Andrzej Siewior
2020-04-16 17:29 ` Paul E. McKenney
2020-04-16 18:23 ` Sebastian Andrzej Siewior
2020-04-16 18:29 ` Paul E. McKenney
2020-04-16 18:43 ` Joel Fernandes
2020-04-16 20:56 ` Sebastian Andrzej Siewior
2020-04-16 21:04 ` Joel Fernandes
2020-04-16 21:07 ` Sebastian Andrzej Siewior
2020-04-16 18:40 ` Steven Rostedt
2020-04-16 18:53 ` Joel Fernandes
2020-04-16 19:24 ` Steven Rostedt
2020-04-16 20:41 ` Joel Fernandes
2020-04-16 21:05 ` Sebastian Andrzej Siewior
2020-04-16 17:28 ` Paul E. McKenney
2020-04-16 15:18 ` Sebastian Andrzej Siewior
2020-04-16 18:41 ` Joel Fernandes
2020-04-16 18:59 ` Joel Fernandes
2020-04-16 19:26 ` Steven Rostedt
2020-04-16 19:53 ` Paul E. McKenney
2020-04-16 20:05 ` Uladzislau Rezki
2020-04-16 20:25 ` Paul E. McKenney
2020-04-16 21:02 ` Joel Fernandes
2020-04-16 21:18 ` Uladzislau Rezki
2020-04-16 21:26 ` Uladzislau Rezki
2020-04-16 21:28 ` Sebastian Andrzej Siewior
2020-04-16 20:36 ` Joel Fernandes
2020-04-16 21:00 ` Paul E. McKenney
2020-04-16 21:34 ` Sebastian Andrzej Siewior
2020-04-17 3:05 ` Joel Fernandes
2020-04-17 8:47 ` Uladzislau Rezki
2020-04-17 15:04 ` Sebastian Andrzej Siewior
2020-04-17 18:26 ` Joel Fernandes
2020-04-17 18:54 ` Paul E. McKenney
2020-04-18 12:37 ` Uladzislau Rezki
2020-04-19 14:58 ` Paul E. McKenney
2020-04-20 0:27 ` Joel Fernandes
2020-04-20 1:17 ` Joel Fernandes
2020-04-20 1:44 ` Paul E. McKenney
2020-04-20 12:13 ` Uladzislau Rezki
2020-04-20 12:36 ` joel
2020-04-20 13:00 ` Uladzislau Rezki
2020-04-20 13:26 ` Paul E. McKenney
2020-04-20 16:08 ` Uladzislau Rezki
2020-04-20 16:25 ` Paul E. McKenney
2020-04-20 16:29 ` Uladzislau Rezki
2020-04-20 16:46 ` Paul E. McKenney
2020-04-20 16:59 ` Uladzislau Rezki
2020-04-20 17:21 ` Paul E. McKenney
2020-04-20 17:40 ` Uladzislau Rezki
2020-04-20 17:57 ` Joel Fernandes
2020-04-20 18:13 ` Paul E. McKenney
2020-04-20 17:59 ` Paul E. McKenney
2020-04-20 19:06 ` Uladzislau Rezki
2020-04-20 20:17 ` Uladzislau Rezki
2020-04-20 22:16 ` Paul E. McKenney
2020-04-21 1:22 ` Steven Rostedt
2020-04-21 5:18 ` Uladzislau Rezki [this message]
2020-04-21 13:30 ` Steven Rostedt
2020-04-21 13:45 ` Uladzislau Rezki
2020-04-21 13:39 ` Sebastian Andrzej Siewior
2020-04-21 15:41 ` Paul E. McKenney
2020-04-21 17:05 ` Sebastian Andrzej Siewior
2020-04-21 18:09 ` Paul E. McKenney
2020-04-22 11:13 ` Sebastian Andrzej Siewior
2020-04-22 13:33 ` Paul E. McKenney
2020-04-22 15:46 ` Sebastian Andrzej Siewior
2020-04-22 16:19 ` Paul E. McKenney
2020-04-22 16:35 ` Paul E. McKenney
2020-04-20 3:02 ` Mike Galbraith
2020-04-20 12:30 ` joel
2020-04-17 16:11 ` Uladzislau Rezki
2020-04-19 12:15 ` Uladzislau Rezki
2020-04-15 16:00 ` [PATCH 2/3] rcu: Use consistent locking around kfree_rcu_drain_unlock() Sebastian Andrzej Siewior
2020-04-15 16:00 ` [PATCH 3/3] rcu: Avoid using xchg() in kfree_call_rcu_add_ptr_to_bulk() Sebastian Andrzej Siewior
2020-04-20 15:23 ` 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=20200421051805.GA5124@pc636 \
--to=urezki@gmail.com \
--cc=bigeasy@linutronix.de \
--cc=efault@gmx.de \
--cc=jiangshanlai@gmail.com \
--cc=joel@joelfernandes.org \
--cc=josh@joshtriplett.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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.