From: David Laight <David.Laight@ACULAB.COM>
To: 'Kai-Heng Feng' <kai.heng.feng@canonical.com>,
Andrew Lunn <andrew@lunn.ch>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
"moderated list:INTEL ETHERNET DRIVERS"
<intel-wired-lan@lists.osuosl.org>,
"open list:NETWORKING DRIVERS" <netdev@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v2] e1000e: Increase iteration on polling MDIC ready bit
Date: Fri, 25 Sep 2020 08:50:30 +0000 [thread overview]
Message-ID: <2f48175dce974ea689bfd26b9fc2245a@AcuMS.aculab.com> (raw)
In-Reply-To: <8A08B3A7-8368-48EC-A2DD-B5D5F3EA94C5@canonical.com>
From: Kai-Heng Feng
> Sent: 24 September 2020 17:04
...
> > I also don't fully understand the fix. You are now looping up to 6400
> > times, each with a delay of 50uS. So that is around 12800 times more
> > than it actually needs to transfer the 64 bits! I've no idea how this
> > hardware works, but my guess would be, something is wrong with the
> > clock setup?
>
> It's probably caused by Intel ME. This is not something new, you can find many polling codes in e1000e
> driver are for ME, especially after S3 resume.
>
> Unless Intel is willing to open up ME, being patient and wait for a longer while is the best approach
> we got.
There is some really broken code in the e1000e driver that affect my
Ivy bridge platform were it is trying to avoid hardware bugs in
the ME interface.
It seems that before EVERY write to a MAC register it must check
that the ME isn't using the interface - and spin until it isn't.
This causes massive delays in the TX path because it includes
the write that tells the MAC engine about a new packet.
The code is completely broken though.
Interrupts and processes switches can happen between the
test for the ME being idle and the actual write.
AFAICT the only reliable way to get ethernet access on such
systems is to use a different ethernet interface.
Also, from what I remember, the broken workaround is missing
from some of the setup code paths.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
next prev parent reply other threads:[~2020-09-25 8:50 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-23 7:47 [PATCH] e1000e: Power cycle phy on PM resume Kai-Heng Feng
2020-09-23 12:17 ` Andrew Lunn
2020-09-23 14:44 ` Kai-Heng Feng
2020-09-23 15:37 ` Andrew Lunn
2020-09-24 12:50 ` Kai-Heng Feng
2020-09-23 13:28 ` [Intel-wired-lan] " Paul Menzel
2020-09-23 14:46 ` Kai-Heng Feng
2020-09-23 15:02 ` Paul Menzel
2020-09-23 19:28 ` Andrew Lunn
2020-09-24 13:02 ` Paul Menzel
2020-09-24 15:09 ` [PATCH v2] e1000e: Increase iteration on polling MDIC ready bit Kai-Heng Feng
2020-09-24 15:32 ` [Intel-wired-lan] " Paul Menzel
2020-09-24 16:04 ` Andrew Lunn
2020-09-24 15:53 ` Andrew Lunn
2020-09-24 16:04 ` Kai-Heng Feng
2020-09-25 8:50 ` David Laight [this message]
2020-09-25 13:29 ` Andrew Lunn
2020-09-26 10:08 ` David Laight
2020-09-24 16:45 ` [PATCH v3] " Kai-Heng Feng
2020-09-24 19:57 ` Andrew Lunn
2020-09-25 3:57 ` Kai-Heng Feng
2020-09-25 5:16 ` [Intel-wired-lan] " Paul Menzel
2020-09-28 8:36 ` [PATCH v4] e1000e: Increase polling timeout on " Kai-Heng Feng
2020-09-29 13:08 ` [Intel-wired-lan] " Neftin, Sasha
2020-09-29 13:31 ` Kai-Heng Feng
2020-09-29 13:46 ` Neftin, Sasha
2020-09-29 15:08 ` Kai-Heng Feng
2020-09-29 15:11 ` David Laight
2020-09-29 15:12 ` Kai-Heng Feng
2020-09-30 6:54 ` Vitaly Lifshits
2020-10-05 6:23 ` Kai-Heng Feng
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=2f48175dce974ea689bfd26b9fc2245a@AcuMS.aculab.com \
--to=david.laight@aculab.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jeffrey.t.kirsher@intel.com \
--cc=kai.heng.feng@canonical.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@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 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).