From: Mahesh Bandewar <mah...@bandewar.net>
Date: Mon, 27 Mar 2017 11:37:24 -0700

> From: Mahesh Bandewar <mahe...@google.com>
> 
> The mii monitoring is divided into two phases - inspect and commit. The
> inspect phase technically should not make any changes to the state and
> defer it to the commit phase. However detected link state inconsistencies
> on several machines and discovered that it's the result of some
> inconsistent update to link states and assumption that you *always* get
> rtnl-mutex. In reality when trylock() fails to acquire rtnl-mutex, the
> commit phase is postponed until next mii-mon run. At the next round
> because of the state change performed in the previous inspect-run, this
> round does not detect any changes and would skip calling commit phase.
> This would result in an inconsistent state until next link event happens
> (if it ever happens).
> 
> During the the commit phase, it's always assumed that speed and duplex
> fetch is always successful, but that's always not the case. However the
> slave state is marked UP irrespective of speed / duplex fetch operation.
> If the speed / duplex fetch operation results in insane values for either
> of these two fields, then keeping internal link state UP is not going to
> provide fruitful results either.
> 
> Please see into individual patches for more details.

Looks good, series applied, thanks.

Reply via email to