From: "Matias Bjørling" <m@bjorling.me>
To: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Javier González" <javier@cnexlabs.com>,
"Matias Bjørling" <m@bjorling.me>
Subject: [PATCH 20/25] lightnvm: pblk: do not log recovery read errors
Date: Wed, 20 Dec 2017 18:22:00 +0100 [thread overview]
Message-ID: <20171220172205.26464-21-m@bjorling.me> (raw)
In-Reply-To: <20171220172205.26464-1-m@bjorling.me>
From: Javier González <javier@cnexlabs.com>
On scan recovery, reads can fail. This happens because the first page
for each line is read in order to determined if the line has been used
(and thus needs to be recovered), or not. This can lead to "empty page"
read errors.
Since these errors are normal, do not log them, as they are confusing
when reviewing the logs.
Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
---
drivers/lightnvm/pblk-core.c | 6 +++---
drivers/lightnvm/pblk.h | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c
index 22cdafd..5692d33 100644
--- a/drivers/lightnvm/pblk-core.c
+++ b/drivers/lightnvm/pblk-core.c
@@ -742,7 +742,7 @@ static int pblk_line_submit_smeta_io(struct pblk *pblk, struct pblk_line *line,
cmd_op = NVM_OP_PWRITE;
flags = pblk_set_progr_mode(pblk, PBLK_WRITE);
lba_list = emeta_to_lbas(pblk, line->emeta->buf);
- } else if (dir == PBLK_READ) {
+ } else if (dir == PBLK_READ_RECOV || dir == PBLK_READ) {
bio_op = REQ_OP_READ;
cmd_op = NVM_OP_PREAD;
flags = pblk_set_read_mode(pblk, PBLK_READ_SEQUENTIAL);
@@ -802,7 +802,7 @@ static int pblk_line_submit_smeta_io(struct pblk *pblk, struct pblk_line *line,
if (rqd.error) {
if (dir == PBLK_WRITE)
pblk_log_write_err(pblk, &rqd);
- else
+ else if (dir == PBLK_READ)
pblk_log_read_err(pblk, &rqd);
}
@@ -816,7 +816,7 @@ int pblk_line_read_smeta(struct pblk *pblk, struct pblk_line *line)
{
u64 bpaddr = pblk_line_smeta_start(pblk, line);
- return pblk_line_submit_smeta_io(pblk, line, bpaddr, PBLK_READ);
+ return pblk_line_submit_smeta_io(pblk, line, bpaddr, PBLK_READ_RECOV);
}
int pblk_line_read_emeta(struct pblk *pblk, struct pblk_line *line,
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
index 430d076..cb38990 100644
--- a/drivers/lightnvm/pblk.h
+++ b/drivers/lightnvm/pblk.h
@@ -60,6 +60,7 @@ enum {
PBLK_READ = READ,
PBLK_WRITE = WRITE,/* Write from write buffer */
PBLK_WRITE_INT, /* Internal write - no write buffer */
+ PBLK_READ_RECOV, /* Recovery read - errors allowed */
PBLK_ERASE,
};
--
2.9.3
next prev parent reply other threads:[~2017-12-20 17:22 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-20 17:21 [PATCH 00/25] Updates to lightnvm and pblk Matias Bjørling
2017-12-20 17:21 ` [PATCH 01/25] null_blk: remove lightnvm support Matias Bjørling
2017-12-20 17:21 ` [PATCH 02/25] lightnvm: remove rrpc Matias Bjørling
2017-12-20 17:21 ` [PATCH 03/25] lightnvm: use internal pblk methods Matias Bjørling
2017-12-20 17:21 ` [PATCH 04/25] lightnvm: remove hybrid ocssd 1.2 support Matias Bjørling
2017-12-20 17:21 ` [PATCH 05/25] lightnvm: remove unnecessary field from nvm_rq Matias Bjørling
2017-12-20 17:21 ` [PATCH 06/25] lightnvm: remove lower page tables Matias Bjørling
2017-12-20 17:21 ` [PATCH 07/25] lightnvm: make geometry structures 2.0 ready Matias Bjørling
2017-12-20 17:21 ` [PATCH 08/25] lightnvm: refactor target type lookup Matias Bjørling
2017-12-20 17:21 ` [PATCH 09/25] lightnvm: guarantee target unique name across devs Matias Bjørling
2017-12-20 17:21 ` [PATCH 10/25] lightnvm: pblk: compress and reorder helper functions Matias Bjørling
2017-12-20 17:21 ` [PATCH 11/25] lightnvm: pblk: remove pblk_for_each_lun helper Matias Bjørling
2017-12-20 17:21 ` [PATCH 12/25] lightnvm: pblk: refactor emeta consistency check Matias Bjørling
2017-12-20 17:21 ` [PATCH 13/25] lightnvm: pblk: rename sync_point to flush_point Matias Bjørling
2017-12-20 17:21 ` [PATCH 14/25] lightnvm: pblk: clear flush point on completed writes Matias Bjørling
2017-12-28 13:19 ` [PATCH v2] " Hans Holmberg
2017-12-20 17:21 ` [PATCH 15/25] lightnvm: pblk: prevent premature sync point resets Matias Bjørling
2017-12-20 17:21 ` [PATCH 16/25] lightnvm: pblk: remove pblk_gc_stop Matias Bjørling
2017-12-20 17:21 ` [PATCH 17/25] lightnvm: pblk: use exact free block counter in RL Matias Bjørling
2017-12-20 17:21 ` [PATCH 18/25] lightnvm: set target over-provision on create ioctl Matias Bjørling
2017-12-20 17:21 ` [PATCH 19/25] lightnvm: pblk: ignore high ecc errors on recovery Matias Bjørling
2017-12-20 17:22 ` Matias Bjørling [this message]
2017-12-20 17:22 ` [PATCH 21/25] lightnvm: pblk: ensure kthread alloc. before kicking it Matias Bjørling
2017-12-20 17:22 ` [PATCH 22/25] lightnvm: pblk: free write buffer on init failure Matias Bjørling
2017-12-20 17:22 ` [PATCH 23/25] lightnvm: pblk: print instance name on instance info Matias Bjørling
2017-12-20 17:22 ` [PATCH 24/25] lightnvm: pblk: add iostat support Matias Bjørling
2017-12-20 17:22 ` [PATCH 25/25] lightnvm: pblk: refactor pblk_ppa_comp function Matias Bjørling
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=20171220172205.26464-21-m@bjorling.me \
--to=m@bjorling.me \
--cc=javier@cnexlabs.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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).