nvme-tcp: add additional info for nvme_tcp_timeout log
authorAmit Engel <Amit.Engel@dell.com>
Mon, 12 Dec 2022 19:40:36 +0000 (21:40 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 1 Feb 2023 13:22:00 +0000 (14:22 +0100)
This provides additional details about the rq/cmd that is timed out

example log if CONFIG_NVME_VERBOSE_ERRORS is configured:
"nvme nvme0: queue 2 timeout cid 0xd058 type 4 opc Write (0x1)"

example log if CONFIG_NVME_VERBOSE_ERRORS is not configured:
"nvme nvme0: queue 2 timeout cid 0xd058 type 4 opc I/O Cmd (0x1)"

Signed-off-by: Amit Engel <Amit.Engel@dell.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/tcp.c

index 8cedc1e..d6100a7 100644 (file)
@@ -2282,10 +2282,13 @@ static enum blk_eh_timer_return nvme_tcp_timeout(struct request *rq)
        struct nvme_tcp_request *req = blk_mq_rq_to_pdu(rq);
        struct nvme_ctrl *ctrl = &req->queue->ctrl->ctrl;
        struct nvme_tcp_cmd_pdu *pdu = req->pdu;
+       u8 opc = pdu->cmd.common.opcode, fctype = pdu->cmd.fabrics.fctype;
+       int qid = nvme_tcp_queue_id(req->queue);
 
        dev_warn(ctrl->device,
-               "queue %d: timeout request %#x type %d\n",
-               nvme_tcp_queue_id(req->queue), rq->tag, pdu->hdr.type);
+               "queue %d: timeout cid %#x type %d opcode %#x (%s)\n",
+               nvme_tcp_queue_id(req->queue), nvme_cid(rq), pdu->hdr.type,
+               opc, nvme_opcode_str(qid, opc, fctype));
 
        if (ctrl->state != NVME_CTRL_LIVE) {
                /*