From 3500d9a98d630fdc2612daba1fd089ea13d95390 Mon Sep 17 00:00:00 2001 From: Mateusz Kozlowski Date: Fri, 12 Jul 2019 11:31:54 +0200 Subject: [PATCH] lib/ftl: Add error log after IO failure Adding some extra debug information for any failing IOs. Signed-off-by: Mateusz Kozlowski Change-Id: If38de30bcb80d291778ad7325a33b7786d02390d Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/461588 Reviewed-by: Wojciech Malikowski Reviewed-by: Konrad Sztyber Reviewed-by: Darek Stojaczyk Reviewed-by: Shuhei Matsumoto Tested-by: SPDK CI Jenkins --- lib/ftl/ftl_io.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/ftl/ftl_io.c b/lib/ftl/ftl_io.c index aea0d93ec..119f3dfcb 100644 --- a/lib/ftl/ftl_io.c +++ b/lib/ftl/ftl_io.c @@ -40,6 +40,7 @@ #include "ftl_core.h" #include "ftl_rwb.h" #include "ftl_band.h" +#include "ftl_debug.h" void ftl_io_inc_req(struct ftl_io *io) @@ -488,12 +489,18 @@ ftl_io_alloc_child(struct ftl_io *parent) void ftl_io_process_error(struct ftl_io *io, const struct spdk_nvme_cpl *status) { + char ppa_buf[128]; + /* TODO: add error handling for specifc cases */ if (status->status.sct == SPDK_NVME_SCT_MEDIA_ERROR && status->status.sc == SPDK_OCSSD_SC_READ_HIGH_ECC) { return; } + SPDK_ERRLOG("Status code type 0x%x, status code 0x%x for IO type %u @ppa: %s, lba 0x%lx, cnt %lu\n", + status->status.sct, status->status.sc, io->type, ftl_ppa2str(io->ppa, ppa_buf, sizeof(ppa_buf)), + ftl_io_get_lba(io, 0), io->lbk_cnt); + io->status = -EIO; }