Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756061AbcLBSdP (ORCPT ); Fri, 2 Dec 2016 13:33:15 -0500 Received: from shards.monkeyblade.net ([184.105.139.130]:38296 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750745AbcLBSdN (ORCPT ); Fri, 2 Dec 2016 13:33:13 -0500 Date: Fri, 02 Dec 2016 13:33:11 -0500 (EST) Message-Id: <20161202.133311.494383963195952738.davem@davemloft.net> To: sunil.kovvuri@gmail.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, sgoutham@cavium.com Subject: Re: [PATCH net-next v2] net: thunderx: Fix transmit queue timeout issue From: David Miller In-Reply-To: <1480596868-17693-1-git-send-email-sunil.kovvuri@gmail.com> References: <1480596868-17693-1-git-send-email-sunil.kovvuri@gmail.com> X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Fri, 02 Dec 2016 09:33:49 -0800 (PST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1035 Lines: 24 From: sunil.kovvuri@gmail.com Date: Thu, 1 Dec 2016 18:24:28 +0530 > From: Sunil Goutham > > Transmit queue timeout issue is seen in two cases > - Due to a race condition btw setting stop_queue at xmit() > and checking for stopped_queue in NAPI poll routine, at times > transmission from a SQ comes to a halt. This is fixed > by using barriers and also added a check for SQ free descriptors, > incase SQ is stopped and there are only CQE_RX i.e no CQE_TX. > - Contrary to an assumption, a HW errata where HW doesn't stop transmission > even though there are not enough CQEs available for a CQE_TX is > not fixed in T88 pass 2.x. This results in a Qset error with > 'CQ_WR_FULL' stalling transmission. This is fixed by adjusting > RXQ's RED levels for CQ level such that there is always enough > space left for CQE_TXs. > > Signed-off-by: Sunil Goutham > --- > v2: As suggested by David, replaced netif_tx_start_queue with > netif_tx_wake_queue. Applied, thanks.