All of lore.kernel.org
 help / color / mirror / Atom feed
From: keith.busch@intel.com (Keith Busch)
Subject: Linux host behavior when CSTS.CFS bit is set to 1
Date: Wed, 25 Jan 2017 18:39:57 -0500	[thread overview]
Message-ID: <20170125233956.GC1729@localhost.localdomain> (raw)
In-Reply-To: <4a511c691bbe4e08ace7c92fd017dddb@bowex36b.micron.com>

On Wed, Jan 25, 2017@11:20:45PM +0000, Ken Chen (kchena) wrote:
> Hi All,
> 
> From a recent message exchange in this mail list, I saw the following statement:
> 
> "In the nvme Linux driver in function nvme_kthread() the CSTS register is read once a second to check for controller status failure." 

That's probably not a recent exchange on this list. We got rid of the
kthread almost a year ago. It was replaced with a per-controller timer.
 
> If this statement is true, is Linux supposed to initiate a reset to the drive if CSTS.CFS bit is set to 1?

Yes, that is correct.
 
> I am working on a SSD firmware. When certain hardware exceptions occur in the drive, the firmware sets CSTS.CFS bit to 1, expecting a reset by the host.  I am using Centos 7 with kernel 4.2.2-1.el7.elrepo.x86_64. In my tests, when firmware sets CFS bit, the host does not seem to reset the drive. That is, there is no transition of CC.EN bit from 1 to 0, there is no setting CC.SHN bit to 1, and there is no writing "NVMe" to NSSR register, etc. Is there anything else that firmware needs to do to trigger a reset from the host? Or is there any configuration (such as PCIe AER) that needs to be enabled in order for Linux to support this functionality?
> 
> Any advice will be appreciated.

There's no additional driver dependency required for this.

I've tested this part quite a bit, and it's always worked as designed
as far as I know. Are you sure the controller is really raising the
CSTS.CFS bit for the host to see? How are you verifying that it is
really set?

The only reason the driver may skip the reset if CFS is raised is if the
driver is already trying to reset the controller.

      reply	other threads:[~2017-01-25 23:39 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-25 23:20 Linux host behavior when CSTS.CFS bit is set to 1 Ken Chen (kchena)
2017-01-25 23:39 ` Keith Busch [this message]

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=20170125233956.GC1729@localhost.localdomain \
    --to=keith.busch@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.