From patchwork Sun Mar 13 19:21:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yuval Mintz X-Patchwork-Id: 596809 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qNW3n416Dz9sDG for ; Mon, 14 Mar 2016 06:22:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754195AbcCMTWP (ORCPT ); Sun, 13 Mar 2016 15:22:15 -0400 Received: from mx0a-0016ce01.pphosted.com ([67.231.148.157]:33118 "EHLO mx0b-0016ce01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752163AbcCMTV7 (ORCPT ); Sun, 13 Mar 2016 15:21:59 -0400 Received: from pps.filterd (m0095336.ppops.net [127.0.0.1]) by mx0b-0016ce01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u2DJJ2V4018389; Sun, 13 Mar 2016 12:21:56 -0700 Received: from avcashub1.qlogic.com ([198.186.0.115]) by mx0a-0016ce01.pphosted.com with ESMTP id 21my0f8tp1-1 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT); Sun, 13 Mar 2016 12:21:56 -0700 Received: from localhost.qlogic.org (10.185.6.94) by qlc.com (10.1.4.190) with Microsoft SMTP Server id 14.3.235.1; Sun, 13 Mar 2016 12:21:55 -0700 From: Yuval Mintz To: , CC: Yuval Mintz Subject: [PATCH net-next] bnx2x: don't wait for Tx completion on recovery Date: Sun, 13 Mar 2016 21:21:48 +0200 Message-ID: <1457896908-13476-1-git-send-email-Yuval.Mintz@qlogic.com> X-Mailer: git-send-email 1.9.3 MIME-Version: 1.0 disclaimer: bypass X-Proofpoint-Virus-Version: vendor=nai engine=5800 definitions=8103 signatures=670699 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1601100000 definitions=main-1603130285 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When driver has hit a parity event, HW can no longer write to host memory. As a result, Tx completions cannot be written to the host SB memory, and waiting for Tx completions eventually timeout. As driver is willing to delay as much as 1-2 seconds per Tx queue for its draining and this delay is sequential, the time to recover might greatly lengthen needlessly in case the recovery is done under multi-connection traffic. Signed-off-by: Yuval Mintz --- Hi Dave, Wasn't sure whether to prepare this for net/net-next; But as it wasn't a bug-fix by definition, I took the safer approach. Please consider applying this to `net-next'. Thanks, Yuval --- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index a949783..0a9108c 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -3042,8 +3042,12 @@ int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode, bool keep_link) bnx2x_save_statistics(bp); } - /* wait till consumers catch up with producers in all queues */ - bnx2x_drain_tx_queues(bp); + /* wait till consumers catch up with producers in all queues. + * If we're recovering, FW can't write to host so no reason + * to wait for the queues to complete all Tx. + */ + if (unload_mode != UNLOAD_RECOVERY) + bnx2x_drain_tx_queues(bp); /* if VF indicate to PF this function is going down (PF will delete sp * elements and clear initializations