From patchwork Mon Jan 23 09:56:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaitra P B X-Patchwork-Id: 9531999 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0D52960434 for ; Mon, 23 Jan 2017 09:57:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F35FE27D0C for ; Mon, 23 Jan 2017 09:57:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E81A727E3E; Mon, 23 Jan 2017 09:57:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 96AA427D0C for ; Mon, 23 Jan 2017 09:57:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751017AbdAWJ5b (ORCPT ); Mon, 23 Jan 2017 04:57:31 -0500 Received: from mail-qt0-f172.google.com ([209.85.216.172]:35292 "EHLO mail-qt0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751004AbdAWJ5a (ORCPT ); Mon, 23 Jan 2017 04:57:30 -0500 Received: by mail-qt0-f172.google.com with SMTP id x49so114319832qtc.2 for ; Mon, 23 Jan 2017 01:57:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=QKV6B/snlsoGSRei+U8YeXNMVOnvHrxl/bINe3etWfw=; b=RWjsWX+YZp15j7UvcjNGLsU+BfzLl1F1BwhVmwbVsQXNcN7QkySvzoattR1Nozcr6A Rk8FoLmArK6HU41sHkZmwTgNlwRvnq2deCnqbBnePJiN0pLpABYG+pD/V+qE0j3rXaSw E5fDY11NOcUTqprFT6+I8J+YbyLG62PaIZ6w8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=QKV6B/snlsoGSRei+U8YeXNMVOnvHrxl/bINe3etWfw=; b=U66kfdScECU/3Q5fqRasGddRqlMOhh3zwoPm4aKe6DSrYi/q7yi0MhCCqWgp5yyNoo utFrpmxpffxukLnooQG3QwmTb+sExzL3Go2o37rkoHgGaPHgdHnixMcN/Y+uEdBYPVHT fMQ+zVJ4p9B5hhF28by1mKvLnkNuWCt9GU6fADZsb1onTTFDHsCXueYiS+Jttx/tddjq B8e+NpDpzDpjjFT8aGl2cmlVpGkU7DLCqZK8nOUnbj0LXsQQKlB8dz167uxpp9XzPE0y QL+aHcgDEO4OMW/nN2UDeQdZdSjhm5HYxA1Hjj+ztIWfHB+cRpWsAIJQas8kZqzeKlsb hVbw== X-Gm-Message-State: AIkVDXIs8lBf9EvT8I1fl+MPvbWFSHLVTPHkshUD0FSZtn0SPseBvMntwwnsb7/2u42KNotN X-Received: by 10.200.51.186 with SMTP id c55mr22931303qtb.270.1485165449172; Mon, 23 Jan 2017 01:57:29 -0800 (PST) Received: from host1.dhcp.avagotech.net ([192.19.239.250]) by smtp.gmail.com with ESMTPSA id d20sm12763330qtb.17.2017.01.23.01.57.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 23 Jan 2017 01:57:28 -0800 (PST) From: Chaitra P B To: JBottomley@Parallels.com, jejb@kernel.org, hch@infradead.org Cc: martin.petersen@oracle.com, linux-scsi@vger.kernel.org, Sathya.Prakash@broadcom.com, kashyap.desai@broadcom.com, krishnaraddi.mankani@broadcom.com, linux-kernel@vger.kernel.org, suganath-prabu.subramani@broadcom.com, chaitra.basappa@broadcom.com, sreekanth.reddy@broadcom.com Subject: [PATCH v3 3/4] mpt3sas: Fix Firmware fault state 0x2100 during heavy 4K RR FIO stress test. Date: Mon, 23 Jan 2017 15:26:09 +0530 Message-Id: <1485165370-43401-4-git-send-email-chaitra.basappa@broadcom.com> X-Mailer: git-send-email 2.0.2 In-Reply-To: <1485165370-43401-1-git-send-email-chaitra.basappa@broadcom.com> References: <1485165370-43401-1-git-send-email-chaitra.basappa@broadcom.com> Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Due existence of loop in the IO path our HBA will receive heavy IOs and also as driver is not updating the Reply Post Host Index frequently, So there will be a high chance that our Firmware unable to find any free entry in the Reply Post Descriptor Queue (i.e. Queue overflow occurs) and can observe 0x2100 firmware fault. So to fix this, we have defined a thresh hold value. After continuously processing this thresh hold number of reply descriptors driver will update the Reply Descriptor Host Index so that this thresh hold number of reply descriptors entries will be freed and these entries will be available for firmware and we won't observe this Firmware fault. We have defined this threshold value as 1/3rd of the hba queue depth. Signed-off-by: Chaitra P B Signed-off-by: Suganath Prabu S Reviewed-by: Johannes Thumshirn --- drivers/scsi/mpt3sas/mpt3sas_base.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index 722fab9..a3fe1fb 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -1040,6 +1040,25 @@ _base_interrupt(int irq, void *bus_id) reply_q->reply_post_free[reply_q->reply_post_host_index]. Default.ReplyFlags & MPI2_RPY_DESCRIPT_FLAGS_TYPE_MASK; completed_cmds++; + /* Update the reply post host index after continuously + * processing the threshold number of Reply Descriptors. + * So that FW can find enough entries to post the Reply + * Descriptors in the reply descriptor post queue. + */ + if (completed_cmds > ioc->hba_queue_depth/3) { + if (ioc->combined_reply_queue) { + writel(reply_q->reply_post_host_index | + ((msix_index & 7) << + MPI2_RPHI_MSIX_INDEX_SHIFT), + ioc->replyPostRegisterIndex[msix_index/8]); + } else { + writel(reply_q->reply_post_host_index | + (msix_index << + MPI2_RPHI_MSIX_INDEX_SHIFT), + &ioc->chip->ReplyPostHostIndex); + } + completed_cmds = 1; + } if (request_desript_type == MPI2_RPY_DESCRIPT_FLAGS_UNUSED) goto out; if (!reply_q->reply_post_host_index)