From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH v2] net: arc_emac: restart stalled EMAC Date: Tue, 19 Dec 2017 13:26:23 -0500 (EST) Message-ID: <20171219.132623.806348776830008384.davem@davemloft.net> References: <1513358406-32503-1-git-send-email-al.kochet@gmail.com> <1513681437-32248-1-git-send-email-al.kochet@gmail.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, f.fainelli@gmail.com, edumazet@google.com To: al.kochet@gmail.com Return-path: In-Reply-To: <1513681437-32248-1-git-send-email-al.kochet@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Alexander Kochetkov Date: Tue, 19 Dec 2017 14:03:57 +0300 > Under certain conditions EMAC stop reception of incoming packets and > continuously increment R_MISS register instead of saving data into > provided buffer. The commit implement workaround for such situation. > Then the stall detected EMAC will be restarted. > > On device the stall looks like the device lost it's dynamic IP address. > ifconfig shows that interface error counter rapidly increments. > At the same time on the DHCP server we can see continues DHCP-requests > from device. > > In real network stalls happen really rarely. To make them frequent the > broadcast storm[1] should be simulated. For simulation it is necessary > to make following connections: > 1. connect radxarock to 1st port of switch > 2. connect some PC to 2nd port of switch > 3. connect two other free ports together using standard ethernet cable, > in order to make a switching loop. > > After that, is necessary to make a broadcast storm. For example, running on > PC 'ping' to some IP address triggers ARP-request storm. After some > time (~10sec), EMAC on rk3188 will stall. > > Observed and tested on rk3188 radxarock. > > [1] https://en.wikipedia.org/wiki/Broadcast_radiation > > Signed-off-by: Alexander Kochetkov Applied.