From patchwork Wed Sep 16 07:31:15 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Willy Tarreau X-Patchwork-Id: 7192221 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 9AA58BEEC1 for ; Wed, 16 Sep 2015 07:34:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BD0AF20891 for ; Wed, 16 Sep 2015 07:34:42 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D869520643 for ; Wed, 16 Sep 2015 07:34:41 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Zc7CJ-0006zF-0k; Wed, 16 Sep 2015 07:32:07 +0000 Received: from wtarreau.pck.nerim.net ([62.212.114.60] helo=1wt.eu) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Zc7CG-0006oK-2w for linux-arm-kernel@lists.infradead.org; Wed, 16 Sep 2015 07:32:05 +0000 Received: (from willy@localhost) by pcw.home.local (8.14.3/8.14.3/Submit) id t8G7VFwf029822; Wed, 16 Sep 2015 09:31:15 +0200 Date: Wed, 16 Sep 2015 09:31:15 +0200 From: Willy Tarreau To: Damien =?iso-8859-1?Q?Th=E9bault?= Subject: Re: NFS/TCP/IPv6 acting strangely in 4.2 Message-ID: <20150916073115.GB29740@1wt.eu> References: <20150911113839.GO21084@n2100.arm.linux.org.uk> <1442386435.3756.282.camel@vitec.com> Mime-Version: 1.0 Content-Disposition: inline In-Reply-To: <1442386435.3756.282.camel@vitec.com> User-Agent: Mutt/1.4.2.3i X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150916_003204_677330_821884D8 X-CRM114-Status: GOOD ( 17.89 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-nfs@vger.kernel.org" , "linux@arm.linux.org.uk" , "netdev@vger.kernel.org" , "trond.myklebust@primarydata.com" , "anna.schumaker@netapp.com" , "linux-arm-kernel@lists.infradead.org" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi, On Wed, Sep 16, 2015 at 06:53:57AM +0000, Damien Thébault wrote: > On Fri, 2015-09-11 at 12:38 +0100, Russell King - ARM Linux wrote: > > I have a recent Marvell Armada 388 board here which uses the mvneta > > driver. I'm seeing some weird effects with NFS with it acting as a > > client. > > Hello, > > I'm upgrading a Marvelle Armada 370 board using the mvneta driver from > 4.0 to 4.2 and noticed issues with NFS booting. > Basically, most of the time init returns with an error code, or > programs segfault or throw illegal instructions. > > Since it worked fine on 4.0 I bisected until I found commit > a84e32894191cfcbffa54180d78d7d4654d56c20 "net: mvneta: fix refilling > for Rx DMA buffers". > > If I revert this commit, everything seems to get back to normal. > Could you try it ? The two issues look very similar. I'm not sure but I'm seeing that the accounting was changed by this patch without being certain of the implications; if the revert above works, it would be nice to try to only apply this just to see if that's indeed an accounting error or not : Regards, Willy diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 62e48bc..4205867 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -1463,6 +1463,7 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo, { struct net_device *dev = pp->dev; int rx_done; + int missed = 0; u32 rcvd_pkts = 0; u32 rcvd_bytes = 0; @@ -1527,6 +1528,7 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo, if (err) { netdev_err(dev, "Linux processing - Can't refill\n"); rxq->missed++; + missed++; goto err_drop_frame; } @@ -1561,7 +1563,7 @@ static int mvneta_rx(struct mvneta_port *pp, int rx_todo, } /* Update rxq management counters */ - mvneta_rxq_desc_num_update(pp, rxq, rx_done, rx_done); + mvneta_rxq_desc_num_update(pp, rxq, rx_done, rx_done - missed); return rx_done; }