From: "Patel, Vedang" <vedang.patel@intel.com>
To: "julia@ni.com" <julia@ni.com>,
"bigeasy@linutronix.de" <bigeasy@linutronix.de>
Cc: "ranshalit@gmail.com" <ranshalit@gmail.com>,
"linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>,
"Hart, Darren" <darren.hart@intel.com>
Subject: Re: Regression on rt kernel while using POSIX timers
Date: Wed, 22 Feb 2017 01:43:09 +0000 [thread overview]
Message-ID: <1487727789.28401.17.camel@intel.com> (raw)
In-Reply-To: <1487212458.10966.7.camel@intel.com>
On Thu, 2017-02-16 at 02:34 +0000, Patel, Vedang wrote:
> On Wed, 2017-02-15 at 20:05 -0600, Julia Cartwright wrote:
> >
> > On Wed, Feb 15, 2017 at 05:54:47PM +0100, bigeasy@linutronix.de
> > wrote:
> > >
> > >
> > > On 2017-02-13 18:48:33 [+0000], Patel, Vedang wrote:
> > > >
> > > >
> > > > I am getting very similar results even if I change the priority
> > > > of
> > > > ktimersoftd to 99. Are there any recent rt patches which might
> > > > have
> > > > changed the behaviour of POSIX timers?
> > > I had this running
> > >
> > > >
> > > >
> > > > ~# cyclictest -t1 -p 80 -i 500 -l 100000
> > > > # /dev/cpu_dma_latency set to 0us
> > > > policy: fifo: loadavg: 627.48 661.98 543.65 406/2254
> > > > 18149
> > > >
> > > > T: 0 (16148) P:80 I:500 C: 100000 Min: 5 Act: 11
> > > > Avg: 11
> > > > Max: 23
> > > on a AMD-A10 box and the latest v4.9-RT. This does not look that
> > > bad.
> > > From tracing it doesn't look too good either. The -m option
> > > should
> > > be
> > > your friend. Since the cyclictest isn't pinned to a CPU and I
> > > have
> > > four
> > > of them, the scheduler decides to migrate cyclictest on each wake
> > > up.
> > > yay. cyclictest itself gets woken up via a signal from the
> > > ktimersoftirq.
> > Perhaps a separate off-shoot topic, but has there been significant
> > changes in v4.9 upstream (or v4.9-rt) which impact how often
> > migration
> > is performed? We've seen what appears to be much more aggressive
> > migration of SCHED_FAIR tasks, (aggressive in the sense that more
> > threads are migrated more often), which appears to cause contention
> > on
> > rq-locks impacting latencies in the wake_up paths.
> >
> > We're still working to further characterize at this
> > point....hopefully
> > more information forthcoming.
> I tried conducting similar experiments on v4.4.47-rt59. But, the
> results are same as v4.9 kernel.
>
> My machine also has 8 cores and migration might cause regressions.
> Let
> me try pinning the processes to a single CPU and see if that is
> making
> any difference.
>
So, I tried pinning the process to a single CPU. But, turns out that
the latency in case of Pinned CPU is worse than the latency when CPU is
not pinned. I tried 2 different ways for pinning the cyclictest task to
a CPU -- -a argument in cyclictest and taskset command to set a CPU. I
got the same results for both the methods. I also tried different CPUs
thinking one of the CPUs might have something else pinned. But, the
result remained the same.
Also, I checked the number of cpu migrations and context switches using
perf stat. Following are the results for both the cases:
cyclictest not pinned to CPU: the number of CPU migrations and context
switches are equal to the number of loops I am running for cyclictest.
Here, there are a lot of context switches with the ktimersoftd process.
cyclictest pinned to a CPU: there are very few CPU migrations. But, the
number of context switches are approximately 3 times the number of
loops. Most of the context switches are with the swapper (idle)
process.
In both the cases, the number of page faults are pretty low (~65).
I also tried similar experiments with mainline kernel (v4.4.47). The
number of CPU migrations were pretty low (single digits) for both the
cases described above. Also, the number of context switches were equal
to the number of loops provided as an argument to cyclictest.
Thanks,
Vedang Patel
Software Engineer
Intel Corporation
> More information to follow soon...
>
> Thanks for all the inputs,
> Vedang Patel
> Software Engineer
> Intel Corporation
> >
> > Julia\x04�{.n�+�������+%��lzwm��b�맲��r��zX��\x1a�ǫ�)���w*\x1fjg���\x1e�����ݢ
> > j/���z�ޖ��2�ޙ���&�)ߡ�a��\x7f��\x1e�G���h�\x0f�j:+v���w�٥
next prev parent reply other threads:[~2017-02-22 1:43 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-08 18:41 Regression on rt kernel while using POSIX timers Patel, Vedang
2017-02-10 19:07 ` Sebastian Andrzej Siewior
2017-02-13 18:48 ` Patel, Vedang
2017-02-15 16:54 ` bigeasy
2017-02-16 2:05 ` Julia Cartwright
2017-02-16 2:34 ` Patel, Vedang
2017-02-22 1:43 ` Patel, Vedang [this message]
2017-03-01 15:22 ` bigeasy
2017-03-01 19:03 ` Tracy Smith
2017-03-02 3:23 ` Patel, Vedang
2017-03-03 19:41 ` Julia Cartwright
2017-03-03 20:32 ` Julia Cartwright
2017-03-03 21:09 ` Thomas Gleixner
2017-03-03 23:36 ` Patel, Vedang
2017-03-06 11:29 ` Thomas Gleixner
2017-03-07 2:01 ` Patel, Vedang
2017-03-07 17:03 ` Thomas Gleixner
2017-03-20 22:54 ` Patel, Vedang
2017-03-03 16:51 ` Thomas Gleixner
-- strict thread matches above, loose matches on Subject: below --
2017-02-13 20:32 Ran Shalit
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=1487727789.28401.17.camel@intel.com \
--to=vedang.patel@intel.com \
--cc=bigeasy@linutronix.de \
--cc=darren.hart@intel.com \
--cc=julia@ni.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=ranshalit@gmail.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).