linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
To: linux-scsi@vger.kernel.org,
	James Bottomley <jejb@linux.vnet.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Matthew R. Ochs" <mrochs@linux.vnet.ibm.com>,
	"Manoj N. Kumar" <manoj@linux.vnet.ibm.com>
Cc: Brian King <brking@linux.vnet.ibm.com>,
	linuxppc-dev@lists.ozlabs.org, Ian Munsie <imunsie@au1.ibm.com>,
	Andrew Donnellan <andrew.donnellan@au1.ibm.com>,
	Frederic Barrat <fbarrat@linux.vnet.ibm.com>,
	Christophe Lombard <clombard@linux.vnet.ibm.com>
Subject: [PATCH v2 03/14] cxlflash: Improve context_reset() logic
Date: Mon, 28 Nov 2016 18:41:36 -0600	[thread overview]
Message-ID: <1480380096-60274-1-git-send-email-ukrishn@linux.vnet.ibm.com> (raw)
In-Reply-To: <1480379984-60114-1-git-send-email-ukrishn@linux.vnet.ibm.com>

Currently, the context reset routine waits for command room to
be available before sending the reset request. Per review of the
SISLite specification and clarifications from the CXL Flash AFU
designers, this wait is unnecessary. The reset request can be
sent anytime regardless of command room, so long as only a single
reset request is active at any one point in time.

This commit simplifies the reset routine by removing the wait for
command room. Additionally it adds a debug trace to help pinpoint
hardware errors when a context reset does not complete.

Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
---
 drivers/scsi/cxlflash/main.c | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c
index 6004860..6d33d8c 100644
--- a/drivers/scsi/cxlflash/main.c
+++ b/drivers/scsi/cxlflash/main.c
@@ -263,8 +263,9 @@ static void context_reset(struct afu_cmd *cmd)
 {
 	int nretry = 0;
 	u64 rrin = 0x1;
-	u64 room = 0;
 	struct afu *afu = cmd->parent;
+	struct cxlflash_cfg *cfg = afu->parent;
+	struct device *dev = &cfg->dev->dev;
 	ulong lock_flags;
 
 	pr_debug("%s: cmd=%p\n", __func__, cmd);
@@ -280,23 +281,6 @@ static void context_reset(struct afu_cmd *cmd)
 	cmd->sa.host_use_b[0] |= (B_DONE | B_ERROR | B_TIMEOUT);
 	spin_unlock_irqrestore(&cmd->slock, lock_flags);
 
-	/*
-	 * We really want to send this reset at all costs, so spread
-	 * out wait time on successive retries for available room.
-	 */
-	do {
-		room = readq_be(&afu->host_map->cmd_room);
-		atomic64_set(&afu->room, room);
-		if (room)
-			goto write_rrin;
-		udelay(1 << nretry);
-	} while (nretry++ < MC_ROOM_RETRY_CNT);
-
-	pr_err("%s: no cmd_room to send reset\n", __func__);
-	return;
-
-write_rrin:
-	nretry = 0;
 	writeq_be(rrin, &afu->host_map->ioarrin);
 	do {
 		rrin = readq_be(&afu->host_map->ioarrin);
@@ -305,6 +289,9 @@ static void context_reset(struct afu_cmd *cmd)
 		/* Double delay each time */
 		udelay(1 << nretry);
 	} while (nretry++ < MC_ROOM_RETRY_CNT);
+
+	dev_dbg(dev, "%s: returning rrin=0x%016llX nretry=%d\n",
+		__func__, rrin, nretry);
 }
 
 /**
-- 
2.1.0

  parent reply	other threads:[~2016-11-29  0:41 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-29  0:39 [PATCH v2 00/14] cxlflash: Fixes, enhancements, cleanup and staging Uma Krishnan
2016-11-29  0:41 ` [PATCH v2 01/14] cxlflash: Set sg_tablesize to 1 instead of SG_NONE Uma Krishnan
2016-11-29  0:41 ` [PATCH v2 02/14] cxlflash: Fix crash in cxlflash_restore_luntable() Uma Krishnan
2016-11-29  0:41 ` Uma Krishnan [this message]
2016-11-29  0:41 ` [PATCH v2 04/14] cxlflash: Avoid command room violation Uma Krishnan
2016-11-29 17:04   ` Matthew R. Ochs
2016-11-29  0:42 ` [PATCH v2 05/14] cxlflash: Remove unused buffer from AFU command Uma Krishnan
2016-11-30 22:03   ` Uma Krishnan
2016-11-29  0:42 ` [PATCH v2 06/14] cxlflash: Allocate memory instead of using command pool for AFU sync Uma Krishnan
2016-11-30 22:04   ` Uma Krishnan
2016-11-29  0:42 ` [PATCH v2 07/14] cxlflash: Use cmd_size for private commands Uma Krishnan
2016-11-30 22:05   ` Uma Krishnan
2016-11-29  0:42 ` [PATCH v2 08/14] cxlflash: Remove private command pool Uma Krishnan
2016-11-30 22:11   ` Uma Krishnan
2016-11-29  0:42 ` [PATCH v2 09/14] cxlflash: Wait for active AFU commands to timeout upon tear down Uma Krishnan
2016-11-30 22:11   ` Uma Krishnan
2016-11-29  0:42 ` [PATCH v2 10/14] cxlflash: Remove AFU command lock Uma Krishnan
2016-11-30 22:12   ` Uma Krishnan
2016-11-29  0:42 ` [PATCH v2 11/14] cxlflash: Cleanup send_tmf() Uma Krishnan
2016-11-30 22:12   ` Uma Krishnan
2016-11-29  0:43 ` [PATCH v2 12/14] cxlflash: Cleanup queuecommand() Uma Krishnan
2016-11-30 22:13   ` Uma Krishnan
2016-11-29  0:43 ` [PATCH v2 13/14] cxlflash: Migrate IOARRIN specific routines to function pointers Uma Krishnan
2016-11-30 22:13   ` Uma Krishnan
2016-11-29  0:43 ` [PATCH v2 14/14] cxlflash: Migrate scsi command pointer to AFU command Uma Krishnan
2016-11-30 22:14   ` Uma Krishnan
2016-11-30 16:42 ` [PATCH v2 00/14] cxlflash: Fixes, enhancements, cleanup and staging Martin K. Petersen
2016-12-01  0:55 ` Martin K. Petersen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1480380096-60274-1-git-send-email-ukrishn@linux.vnet.ibm.com \
    --to=ukrishn@linux.vnet.ibm.com \
    --cc=andrew.donnellan@au1.ibm.com \
    --cc=brking@linux.vnet.ibm.com \
    --cc=clombard@linux.vnet.ibm.com \
    --cc=fbarrat@linux.vnet.ibm.com \
    --cc=imunsie@au1.ibm.com \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=manoj@linux.vnet.ibm.com \
    --cc=martin.petersen@oracle.com \
    --cc=mrochs@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).