From: Alexander Stein <alexander.stein@systec-electronic.com>
To: "Koehrer Mathias (ETAS/ESW5)" <mathias.koehrer@etas.com>
Cc: Sebastian Andrzej Siewior <sebastian.siewior@linutronix.de>,
"linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>
Subject: Re: Kernel 4.6.7-rt13: Intel Ethernet driver igb causes huge latencies in cyclictest
Date: Mon, 26 Sep 2016 13:48:43 +0200 [thread overview]
Message-ID: <38815425.6GFOjqvR3a@ws-stein> (raw)
In-Reply-To: <ac1207c12ad34059956c2729ccf31e97@FE-MBX1012.de.bosch.com>
On Friday 23 September 2016 11:40:46, Koehrer Mathias wrote:
> Hi Sebastian,
>
>
> > thanks for the feedback.
> >
> > > > I run the cyclictest with the following options:
> > > > # cyclictest -a -i 100 -d 10 -m -n -t -p 80
> > >
> > >
> > >
> > > there is -S. And then 100 might be a little tight.
> > >
> > >
> > >
> > > > Of course the 2 minutes run-time of cyclictest is only a rough first
> > > > estimate.
> >
> > >
> > >
> > > and with no load…
> > >
> > >
> > >
> > > > Once I configure one of the i350 ports # ifconfig eth2 up
> > > > 192.168.100.100 the cyclictest shows directly and reproducibly
> > > > significant larger max latency values (40 microseconds, using the
> > > > same
> > >
> > > conditions).
> > >
> > > >
> > > >
> > > >
> > > > I did the very same test with kernel version 3.18.27-rt27.
> > > > With that version I did not see anything like that.
> > > >
> > > >
> > > >
> > > > Also, only the igb driver seems to cause the trouble. I have also an
> > > > e1000e based NIC in this PC and the usage of this driver does not
> > > > add any
> > >
> > > significant latency.
> > >
> > > >
> > > >
> > > > Any idea on this?
> > >
> > >
> > >
> > > Does this also happen if you have the NIC up and you plug in / out the
> > > cable? There are two things that come to mind:
> > >
> > > https://lkml.kernel.org/r/1445465268-10347-1-git-send-email-> > >
> > > jonathan.david@ni.com
> > >
> > >
> > >
> > > https://lkml.kernel.org/r/1445886895-3692-1-git-send-email-joshc@ni.co
> > > m
> >
> >
> > This happens even if I have done "ifconfig up" on the NIC without having a
> > cable
plugged in.
> > Also, it happens if I have a cable plugged in and the link is up but no
> > traffic is running
via this NIC port.
> > It looks as if solely the configured NIC port is causing the additional
> > latency, no
matter if traffic is flowing via this NIC or not and no
> > matter if the link is up or not.
> > I did the same test with the kernel/rt_preempt patch versions
> > 4.1.33-rt37 and 4.4.19-rt27, they show the very same behavior.
> > In opposite to that, the version 3.18.27-rt27 is working stable!
> >
> > As mentioned before, the "igb" driver is causing the issue. The "e1000e"
> > driver works
fine.
> >
>
> I did some further analysis.
> The code that is causing the long latencies seems to be the
> function "igb_watchdog_task" within igb_main.c (Line: 4386).
> This function will be called periodically.
> When I do a return at the beginning of this function the additional latency
> is not seen.
In particular that function calls "igb_has_link" which seems
> to be one candidate that is causing additional latency.
> Do you have any clue how this code can be executed properly without causing
> the
additional latencies?
IMHO something in igb_watchdog_task causes the latency independently from
actual link. At first glance I would suspect igb_update_stats (called with
spinlock held) as it seems to do a lot of reads. Maybe this stalls somehow.
Does the latency still occur if you comment that spinlock and call to
igb_update_stats out?
Best regards,
Alexander
next prev parent reply other threads:[~2016-09-26 11:48 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-22 12:44 Kernel 4.6.7-rt13: Intel Ethernet driver igb causes huge latencies in cyclictest Koehrer Mathias (ETAS/ESW5)
2016-09-22 15:12 ` Sebastian Andrzej Siewior
2016-09-23 6:38 ` AW: " Koehrer Mathias (ETAS/ESW5)
2016-09-23 11:40 ` Koehrer Mathias (ETAS/ESW5)
2016-09-23 12:32 ` Sebastian Andrzej Siewior
2016-09-23 13:23 ` Koehrer Mathias (ETAS/ESW5)
2016-09-23 14:41 ` Sebastian Andrzej Siewior
2016-09-26 11:12 ` Koehrer Mathias (ETAS/ESW5)
2016-09-28 19:45 ` Julia Cartwright
2016-10-04 14:33 ` Koehrer Mathias (ETAS/ESW5)
2016-10-04 19:34 ` Julia Cartwright
2016-10-05 7:02 ` Koehrer Mathias (ETAS/ESW5)
2016-10-05 15:59 ` Julia Cartwright
2016-10-06 7:01 ` Koehrer Mathias (ETAS/ESW5)
2016-10-06 10:12 ` Henri Roosen
2016-10-06 17:58 ` Williams, Mitch A
2016-10-07 8:58 ` Koehrer Mathias (ETAS/ESW5)
2016-10-10 19:39 ` Julia Cartwright
2016-10-13 6:15 ` Koehrer Mathias (ETAS/ESW5)
2016-10-13 10:57 ` Koehrer Mathias (ETAS/ESW5)
2016-10-13 14:02 ` David Laight
2016-10-13 16:18 ` Julia Cartwright
2016-10-14 8:58 ` Koehrer Mathias (ETAS/ESW5)
2016-10-14 19:55 ` Julia Cartwright
2016-10-17 15:00 ` Koehrer Mathias (ETAS/ESW5)
2016-10-17 15:39 ` [Intel-wired-lan] " Alexander Duyck
2016-10-17 18:32 ` Julia Cartwright
2016-10-18 8:43 ` Koehrer Mathias (ETAS/ESW5)
2016-10-14 22:06 ` Richard Cochran
2016-10-17 18:36 ` Julia Cartwright
2016-10-17 19:03 ` Richard Cochran
2016-09-26 11:48 ` Alexander Stein [this message]
2016-09-27 6:29 ` Koehrer Mathias (ETAS/ESW5)
2016-09-27 7:56 ` Mathias Koehrer
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=38815425.6GFOjqvR3a@ws-stein \
--to=alexander.stein@systec-electronic.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=mathias.koehrer@etas.com \
--cc=sebastian.siewior@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox