[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC 3/4] NVMe media error reporting
From: |
Tony Asleson |
Subject: |
[RFC 3/4] NVMe media error reporting |
Date: |
Thu, 19 Sep 2019 14:48:46 -0500 |
Rudimentary and basic support for returning NVMe errors.
Signed-off-by: Tony Asleson <address@hidden>
---
hw/block/nvme.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 12d8254250..faf72c2b8c 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -25,6 +25,7 @@
* offset 0 in BAR2 and supports only WDS, RDS and SQS for now.
*/
+#include "block/error_inject.h"
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/block/block.h"
@@ -390,6 +391,13 @@ static uint16_t nvme_rw(NvmeCtrl *n, NvmeNamespace *ns,
NvmeCmd *cmd,
return NVME_LBA_RANGE | NVME_DNR;
}
+ if (!is_write) {
+ uint64_t error_sector = 0;
+ if (error_in_read(n->serial, slba, nlb, &error_sector)) {
+ return NVME_UNRECOVERED_READ | NVME_DNR;
+ }
+ }
+
if (nvme_map_prp(&req->qsg, &req->iov, prp1, prp2, data_size, n)) {
block_acct_invalid(blk_get_stats(n->conf.blk), acct);
return NVME_INVALID_FIELD | NVME_DNR;
--
2.21.0
[RFC 1/4] Add qapi for block error injection, Tony Asleson, 2019/09/19
[RFC 2/4] SCSI media error reporting, Tony Asleson, 2019/09/19
[RFC 3/4] NVMe media error reporting,
Tony Asleson <=
Re: [RFC 0/4] POC: Generating realistic block errors, Kevin Wolf, 2019/09/20
Re: [RFC 0/4] POC: Generating realistic block errors, Stefan Hajnoczi, 2019/09/20
Re: [RFC 0/4] POC: Generating realistic block errors, Stefan Hajnoczi, 2019/09/20