From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: Keith Busch <kbusch@kernel.org>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
Chaitanya Kulkarni <chaitanyak@nvidia.com>,
Alan Adamson <alan.adamson@oracle.com>, "hch@lst.de" <hch@lst.de>,
"sagi@grimberg.me" <sagi@grimberg.me>,
"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>
Subject: Re: [PATCH 1/1] nvme: Add verbose error logging
Date: Mon, 13 Dec 2021 22:01:30 -0500 [thread overview]
Message-ID: <yq1fsqvq4re.fsf@ca-mkp.ca.oracle.com> (raw)
In-Reply-To: <20211210165648.GB3856533@dhcp-10-100-145-180.wdc.com> (Keith Busch's message of "Fri, 10 Dec 2021 08:56:48 -0800")
Keith,
> If they are not familiar with the decoder, does seeing something like
> "Conflicting Attributes" really provide the user a better sense than
> "0x280"? Either way, it sounds like they'd just open a bug with someone
> who is familiar with the spec, in which case numeric codes should be
> sufficient.
An English error string is very valuable in a support situation. It is
much easier to discuss the implications of "Unrecoverable Read Error"
than some random hex number.
> Are the existing nvme trace events not providing enough information?
> The existing ones appear to have even greater detail than what this
> patch provides. Or is there some other reason why the kernel log is
> preferred over the event tracer for capturing these types of errors?
Logging is imperative. We have to be able to root cause an issue after
the fact.
> I'm not sure having it be a new Kconfig option is a good idea since it
> requires a recompile to enable/disable. Could this be toggled with a
> static_key instead so we may disable/enable verbose logging at
> runtime?
In SCSI it's a Kconfig option because the embedded folks do not want to
waste 8K. We did it the same way here. Enabling verbose logging probably
doesn't make much sense unless you're an enterprise distro.
> The new "struct nvme_string_table" is a bit inefficient. Unknown errors
> will scan the entire table, which will slow down our hot completion path
> on any error. The codes are small and mostly sequential, so I think you
> could create a sparse "static const char * const[]", then the "code"
> becomes the index that can be looked up in constant time. The total
> space of the array shouldn't be much different than the proposal.
We can look into that.
> A significant amount of the new strings are specific to admin
> commands, yet errors for admin commands skip the logging. Why define
> unreachable strings? Or perhaps a better question: why skip logging
> admin errors?
Good point.
> IO errors can happen in large batches, so perhaps pr_err() should be
> ratelimted.
Sure.
--
Martin K. Petersen Oracle Linux Engineering
prev parent reply other threads:[~2021-12-14 3:01 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-09 17:32 [PATCH 0/1] nvme: Add verbose error logging Alan Adamson
2021-12-09 17:32 ` [PATCH 1/1] " Alan Adamson
2021-12-10 11:36 ` Chaitanya Kulkarni
2021-12-10 15:54 ` Martin K. Petersen
2021-12-10 16:56 ` Keith Busch
2021-12-12 9:52 ` Sagi Grimberg
2021-12-13 8:09 ` Chaitanya Kulkarni
2021-12-14 0:31 ` Alan Adamson
2021-12-13 8:12 ` hch
2021-12-13 9:28 ` Sagi Grimberg
2021-12-14 3:01 ` Martin K. Petersen [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=yq1fsqvq4re.fsf@ca-mkp.ca.oracle.com \
--to=martin.petersen@oracle.com \
--cc=alan.adamson@oracle.com \
--cc=chaitanyak@nvidia.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/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