From: Chris Friesen <chris.friesen@windriver.com>
To: lkml <linux-kernel@vger.kernel.org>
Subject: why would we be spending a whole msec running just the cascade() function?
Date: Fri, 24 Jun 2016 09:14:30 -0600 [thread overview]
Message-ID: <576D4E56.3040504@windriver.com> (raw)
Hi,
I'm trying to get an idea why we would be spending a whole millisecond running
the cascade() routine.
This is on a CentOS 7 kernel (config modified as per below) so feel free to send
me off to the other support fora if you like.
Running cyclictest gave the following:
cyclicte-29932 14d..2 282141264us : pick_next_task_idle <-__schedule
<idle>-0 14d..1 282149191us : do_softirq <-irq_exit
<idle>-0 14d..1 282149192us : __do_softirq <-call_softirq
<idle>-0 14d..1 282149192us : msecs_to_jiffies <-__do_softirq
<idle>-0 14..s1 282149192us : run_timer_softirq <-__do_softirq
<idle>-0 14..s1 282149192us : _raw_spin_lock_irq <-run_timer_softirq
<idle>-0 14d.s2 282149193us : cascade <-run_timer_softirq
(1167 similar lines removed)
<idle>-0 14d.s2 282150286us : cascade <-run_timer_softirq
<idle>-0 14d.s2 282150286us : __internal_add_timer <-cascade
<idle>-0 14d.s2 282150287us : cascade <-run_timer_softirq
(20 similar lines removed)
<idle>-0 14d.s2 282150305us : cascade <-run_timer_softirq
<idle>-0 14d.s2 282150305us : __internal_add_timer <-cascade
<idle>-0 14d.s2 282150306us : _raw_spin_unlock_irq <-run_timer_softirq
cyclicte-29932 14...1 282150347us : tracing_mark_write: hit latency threshold
(1100 > 1000)
I vaguely understand what cascade() is doing, but it doesn't make any sense to
me that it would do it for over a millisecond. Is it coincidence that
cascade() is called roughly every microsecond for just over a millisecond?
Overall the latency is actually pretty reasonable except for these sporadic
glitches:
/home/wrsroot/cyclictest -S -m -p 80 -l 1000000
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 4.08 4.07 4.08 5/371 6845
T: 0 ( 5060) P:80 I:1000 C:1000000 Min: 1 Act: 2 Avg: 1 Max: 58
T: 1 ( 5061) P:80 I:1500 C: 666670 Min: 1 Act: 1 Avg: 1 Max: 3
T: 2 ( 5062) P:80 I:2000 C: 500002 Min: 2 Act: 2 Avg: 2 Max: 4
T: 3 ( 5063) P:80 I:2500 C: 400001 Min: 1 Act: 2 Avg: 1 Max: 10
T: 4 ( 5064) P:80 I:3000 C: 333333 Min: 1 Act: 2 Avg: 1 Max: 8
T: 5 ( 5065) P:80 I:3500 C: 285711 Min: 1 Act: 2 Avg: 2 Max: 1011
T: 6 ( 5066) P:80 I:4000 C: 249996 Min: 1 Act: 2 Avg: 2 Max: 1015
T: 7 ( 5067) P:80 I:4500 C: 222219 Min: 1 Act: 2 Avg: 2 Max: 17
T: 8 ( 5068) P:80 I:5000 C: 199996 Min: 1 Act: 1 Avg: 1 Max: 3
T: 9 ( 5069) P:80 I:5500 C: 181814 Min: 2 Act: 2 Avg: 2 Max: 5
T:10 ( 5070) P:80 I:6000 C: 166662 Min: 1 Act: 2 Avg: 2 Max: 5
T:11 ( 5071) P:80 I:6500 C: 153841 Min: 1 Act: 2 Avg: 2 Max: 8
T:12 ( 5072) P:80 I:7000 C: 142853 Min: 1 Act: 2 Avg: 2 Max: 1008
T:13 ( 5073) P:80 I:7500 C: 133329 Min: 2 Act: 3 Avg: 2 Max: 5
T:14 ( 5074) P:80 I:8000 C: 124996 Min: 1 Act: 2 Avg: 2 Max: 7
T:15 ( 5075) P:80 I:8500 C: 117643 Min: 1 Act: 2 Avg: 2 Max: 6
Kernel config has been modified as follows:
CONFIG_RCU_BOOST=y
CONFIG_DEBUG_PREEMPT=n
CONFIG_PROVE_RCU_DELAY=n
CONFIG_RCU_CPU_STALL_VERBOSE=n
CONFIG_PREEMPT_TRACER=n
CONFIG_RCU_BOOST_PRIO=1
CONFIG_RCU_BOOST_DELAY=500
Chris
reply other threads:[~2016-06-24 15:14 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=576D4E56.3040504@windriver.com \
--to=chris.friesen@windriver.com \
--cc=linux-kernel@vger.kernel.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.