Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp148570imd; Wed, 31 Oct 2018 16:17:15 -0700 (PDT) X-Google-Smtp-Source: AJdET5eHnGa0ttRPw5+UQidslTDBZ6jZTcA6n1NGVgyAskJevHEqCB6ixKI+2xv0UYNxAWu9fx55 X-Received: by 2002:a17:902:3181:: with SMTP id x1-v6mr5174472plb.71.1541027835212; Wed, 31 Oct 2018 16:17:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541027835; cv=none; d=google.com; s=arc-20160816; b=Gm5/BId5i7p8vB4bGXqbWR+WlrP2ys9cJHOXbWqe2mZY8KunpIIzmse1mhUwNREcbq 0XOnEPIZXGOFhDqafKh2qOAZYqNHclG0CK9I8RqoOy2ogGet68XL/IOYL4aRX61EgV70 iRZiN1p96uHBIT7uc6rA6OKCopi4VwlV35P83RGYsbYzHftBJRlV5096I84Efzd6xG8L Vq4BdnH1l3DfJHa1rXCTt6np98a5iOcADgNSG1Xgg2zJqg4am+mhgmVtoxj3RiZa0kb2 YoLCU889ullFeVRhdkETD+woZT4a5t6f6YKBmX0azvNn9zp4ya2+rPED8LpL3F22ecsD ZTuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=B/ARoOsZPzgiEqYAA5Jk2XsJHLxIfoD5KFpvfpsGyy0=; b=JUC0vT5lyHwrhAdKH53fRUpvI+pPMeMPd6Wk5e8Ozlu8G6JOt5G8212pUtjrCaACXZ BmgMVDexPHMluvNnTMv5UpawQ4d8+vNtibNdnmgtHmsuqQ97DAEFK+K0t6A8MjWH5d/O 0KmUpnkZrroq9kJiMd4FOvFx/xdh8zh3IOOU5dXeyss5XlTSrFyC6UNeJAffhiGfh3D0 JY5BFEKPieBseOP7PYmHPaR9nq5S4u5ZK+pRTiM5vyzCaDcwZGdRNs8ExttAvfKSmsIj kmFgx/RlJBf5ausJIE17WUNixVdUqg3TNb+j3d8RR3e85NB82XtYI18JVeKJcJZdXXVl FKRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=mrD6Cgmc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f65-v6si29363405pff.276.2018.10.31.16.17.00; Wed, 31 Oct 2018 16:17:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=mrD6Cgmc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732357AbeKAIO4 (ORCPT + 99 others); Thu, 1 Nov 2018 04:14:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:36972 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732145AbeKAIMQ (ORCPT ); Thu, 1 Nov 2018 04:12:16 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 382122085A; Wed, 31 Oct 2018 23:12:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541027524; bh=mQWBrbECmt88BAcFgaRmNgkRGbFf3kGREed1DtNlbXo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mrD6CgmcUs7OIXcb33IXB8mK8VMgWEi2xCiUsvtbQRmTISJ0XFL6ch1Vq1gtzLrkV d9jyVZwABv2ZiigkA7l4d+h/8Qw19PkLi1V3W+E8j133LpeHMNrPF143rpt5jiSpkA ueLldSnlRBJAhLUs/XAhk9+yHPTzVwQzMahEZEA4= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: James Smart , Dick Kennedy , James Smart , "Martin K . Petersen" , Sasha Levin Subject: [PATCH AUTOSEL 4.4 29/32] scsi: lpfc: Correct soft lockup when running mds diagnostics Date: Wed, 31 Oct 2018 19:11:34 -0400 Message-Id: <20181031231137.29429-29-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181031231137.29429-1-sashal@kernel.org> References: <20181031231137.29429-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: James Smart [ Upstream commit 0ef01a2d95fd62bb4f536e7ce4d5e8e74b97a244 ] When running an mds diagnostic that passes frames with the switch, soft lockups are detected. The driver is in a CQE processing loop and has sufficient amount of traffic that it never exits the ring processing routine, thus the "lockup". Cap the number of elements in the work processing routine to 64 elements. This ensures that the cpu will be given up and the handler reschedule to process additional items. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/lpfc/lpfc_sli.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 3406586b9201..ad4f16ab7f7a 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -3485,6 +3485,7 @@ lpfc_sli_handle_slow_ring_event_s4(struct lpfc_hba *phba, struct hbq_dmabuf *dmabuf; struct lpfc_cq_event *cq_event; unsigned long iflag; + int count = 0; spin_lock_irqsave(&phba->hbalock, iflag); phba->hba_flag &= ~HBA_SP_QUEUE_EVT; @@ -3506,16 +3507,22 @@ lpfc_sli_handle_slow_ring_event_s4(struct lpfc_hba *phba, if (irspiocbq) lpfc_sli_sp_handle_rspiocb(phba, pring, irspiocbq); + count++; break; case CQE_CODE_RECEIVE: case CQE_CODE_RECEIVE_V1: dmabuf = container_of(cq_event, struct hbq_dmabuf, cq_event); lpfc_sli4_handle_received_buffer(phba, dmabuf); + count++; break; default: break; } + + /* Limit the number of events to 64 to avoid soft lockups */ + if (count == 64) + break; } } -- 2.17.1