Thread (1 message) 1 message, 1 author, 2017-08-17

Re: Regression: Bug 196547 - Since 4.12 - bonding module not working with wireless drivers

From: Dan Williams <hidden>
Date: 2017-08-17 03:18:14
Also in: netdev

On Wed, 2017-08-16 at 19:36 -0700, Ben Greear wrote:
On 08/16/2017 07:11 PM, Dan Williams wrote:
quoted
On Wed, 2017-08-16 at 14:31 -0700, David Miller wrote:
quoted
From: Dan Williams <redacted>
Date: Wed, 16 Aug 2017 16:22:41 -0500
quoted
My biggest suggestion is that perhaps bonding should grow
hysteresis
quoted
for link speeds. Since WiFi can change speed every packet, you
probably
quoted
don't want the bond characteristics changing every couple
seconds
just
quoted
in case your WiFi link is jumping around.  Ethernet won't
bounce
around
quoted
that much, so the hysteresis would have no effect there.  Or,
if
people
quoted
are concerned about response time to speed changes on ethernet
(where
quoted
you probably do want an instant switch-over) some new flag to
indicate
quoted
that certain devices don't have stable speeds over time.
Or just report the average of the range the wireless link can
hit,
and
be done with it.

I think you guys are overcomplicating things.
That range can be from 1 to > 800Mb/s.  No, it won't usually be all
over that range, but it won't be uncommon to fluctuate by hundreds
of
Mb/s.  I'm not sure a simple average is really the answer
here.  Even
doing that would require new knobs to ethtool, since the rate
depends
heavily on card capabilities and also what AP you're connected to
*at
that moment*.  If you roam to another AP, then the max speed can
certainly change.

You'll probably say "aim for the 75% case" or something like that,
which is fine, but then you're depending on your 75% case to be (a)
single AP, (b) never move (eg, only bond wifi + ethernet), (c)
little
radio interference.  I'm not sure I'd buy that.  If I've put words
in
your mouth, forgive me.
If you keep ethtool API simple and just return the last (rx-rate +
tx-rate) / 2, or the rate averaged
over the last 100 frames or 10 seconds, then the caller can do longer
term averaging
as it sees fit.  Probably no need for lots of averaging complexity in
the kernel.
Yeah, that works too, but I was thinking it was better to present the
actual data through ethtool so that things other than bonding could use
it, and since bonding is the thing that actually cares about the
fluctuation, make it do the more extensive processing.

Dan

rate-ctrl for wifi basically doesn't happen until you transmit or
receive a
fairly steady stream, so it will fluctuate a lot.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help