From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH] ethernet/arc/arc_emac: Fix huge delays in large file copies Date: Thu, 05 Sep 2013 14:25:30 -0400 (EDT) Message-ID: <20130905.142530.732425484460470485.davem@davemloft.net> References: <1378295235-18928-1-git-send-email-vgupta@synopsys.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, Alexey.Brodkin@synopsys.com, linux-kernel@vger.kernel.org, arc-linux-dev@synopsys.com To: Vineet.Gupta1@synopsys.com Return-path: In-Reply-To: <1378295235-18928-1-git-send-email-vgupta@synopsys.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Vineet Gupta Date: Wed, 4 Sep 2013 17:17:15 +0530 > copying large files to a NFS mounted host was taking absurdly large > time. > > Turns out that TX BD reclaim had a sublte bug. > > Loop starts off from @txbd_dirty cursor and stops when it hits a BD > still in use by controller. However when it stops it needs to keep the > cursor at that very BD to resume scanning in next iteration. However it > was erroneously incrementing the cursor, causing the next scan(s) to > fail too, unless the BD chain was completely drained out. > > [ARCLinux]$ ls -l -sh /disk/log.txt > 17976 -rw-r--r-- 1 root root 17.5M Sep /disk/log.txt > > ========== Before ===================== > [ARCLinux]$ time cp /disk/log.txt /mnt/. > real 31m 7.95s > user 0m 0.00s > sys 0m 0.10s > > ========== After ===================== > [ARCLinux]$ time cp /disk/log.txt /mnt/. > real 0m 24.33s > user 0m 0.00s > sys 0m 0.19s > > Signed-off-by: Vineet Gupta Applied.