From: jamal <hadi@cyberus.ca>
To: David Miller <davem@davemloft.net>
Cc: olel@ans.pl, jgarzik@pobox.com, greearb@candelatech.com,
john.ronciak@intel.com, Robert.Olsson@data.slu.se,
jesse.brandeburg@intel.com, netdev@vger.kernel.org,
auke-jan.h.kok@intel.com
Subject: Bug in e1000 + semantics of flow control WAS(Re: [e1000]: flow control on by default - good idea really?
Date: Thu, 20 Jul 2006 16:15:57 -0400 [thread overview]
Message-ID: <1153426557.5273.132.camel@jzny2> (raw)
In-Reply-To: <1152275283.5341.144.camel@jzny2>
I went back to this today. I am typing this from a scribbled sticky
note in a big hurry - but i still believe I took the correct notes.
It does seem there is no distinction between what ethernet advertises
for flow control capability vs what it ends up negotiating with its
partner i.e there is some ambiguity. I havent checked tg3, this on e1000
only.
On Fri, 2006-07-07 at 08:28 -0400, jamal wrote:
> On Thu, 2006-06-07 at 23:59 -0700, David Miller wrote:
>
> >
> > It's autonegotiated, check you kernel message logs when the link
> > came up, you'll see this:
> >
> > tg3: eth0: Flow control is on for TX and on for RX.
> >
>
> yikes - yes, this would be it.
>
> I could be wrong and i will double check:
> I think when the e1000 says via ethtool "rx is on" - it means that it
> is _advertising_ flow control as opposed to detecting partner has flow
> control capability.
> Auke, can you also check this as well?
Semantic #1
For example, configure:
ethtool -A eth0 rx off
ethtool -A eth0 tx on
debopolis:~# ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: off
TX: on
The other side was set to do symmetric TX flow control only.
Now enforce autonegotiation:
ethtool -r eth0
ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: off
TX: off
Ok, this is what i expected if this thing (output of ethtool) was
supposed to store state as opposed to configuration.
But if it is state that is stored, then what about that the values
before autonegotian - surely that state is invalid, no?
It would be nice (for debug/usability reasons) to be able to see what i
configured vs what i end up negotiating with the link partner. I think
this may be an ethtool issue, but it could also be a driver issue.
I send 1 Mpps to eth0 and see no flow control packets back. good. So it
does store state
#2: The other semantic
debopolis:~# ethtool -A eth0 rx on
debopolis:~# ethtool -A eth0 tx on
debopolis:~# ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
Other side was set to do symmetric TX flow control only.
Now enforce autonegotiation:
debopolis:~# ethtool -r eth0
lets see what we came up with:
debopolis:~# ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
Now that is contradictory to #1 semantic - I would have expected this TX
flow control on the e1000 to be off.
Unless it is meant to store configuration info and not what you have
negotiated.
Trying sending traffic to the e1000 at about 1Mpps.
I observe that the e1000 is sending out about 800Kpps of flow control
packets back ;->
So which semantics are correct? I would claim #2 flow control behavior
to be a bug. I just dont have time to chase a fix - hopefully whoever
reads this from the e1000 crowd can fix it.
More importantly can we have two variables storing the two pieces on
information separately instead of the ambiguity of just one?
cheers,
jamal
next prev parent reply other threads:[~2006-07-20 20:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-04 17:11 [e1000]: flow control on by default - good idea really? jamal
2006-07-04 19:20 ` jamal
2006-07-05 16:23 ` Auke Kok
2006-07-05 20:37 ` Krzysztof Oledzki
2006-07-05 18:22 ` David Miller
2006-07-05 18:32 ` Auke Kok
2006-07-05 20:45 ` Krzysztof Oledzki
2006-07-05 21:13 ` Auke Kok
2006-07-06 13:03 ` jamal
2006-07-06 18:25 ` Auke Kok
2006-07-07 3:09 ` jamal
2006-07-07 6:59 ` David Miller
2006-07-07 12:28 ` jamal
2006-07-20 20:15 ` jamal [this message]
2006-08-03 12:29 ` Bug in e1000 + semantics of flow control WAS(Re: " jamal
2006-10-16 18:55 ` Auke Kok
2006-10-17 13:05 ` jamal
2006-10-17 17:18 ` Auke Kok
2006-10-17 18:25 ` Stephen Hemminger
2006-10-17 21:02 ` Auke Kok
2006-10-18 13:35 ` jamal
2006-10-18 14:57 ` Auke Kok
2006-10-17 21:46 ` David Miller
2006-07-05 16:57 ` Robert Olsson
2006-07-05 18:21 ` David Miller
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=1153426557.5273.132.camel@jzny2 \
--to=hadi@cyberus.ca \
--cc=Robert.Olsson@data.slu.se \
--cc=auke-jan.h.kok@intel.com \
--cc=davem@davemloft.net \
--cc=greearb@candelatech.com \
--cc=jesse.brandeburg@intel.com \
--cc=jgarzik@pobox.com \
--cc=john.ronciak@intel.com \
--cc=netdev@vger.kernel.org \
--cc=olel@ans.pl \
/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