[PATCH V7 1/1] nvme: allow passthru cmd error logging

Sagi Grimberg sagi at grimberg.me
Tue Dec 5 02:01:41 PST 2023


> Sagi/Christoph,
> 
> On 9/19/23 09:02, alan.adamson at oracle.com wrote:
>>
>> On 9/12/23 4:39 AM, Sagi Grimberg wrote:
>>>
>>>>>>        if (req->q->queuedata)
>>>>>>            req->timeout = NVME_IO_TIMEOUT;
>>>>>> -    else /* no queuedata implies admin queue */
>>>>>> +    else { /* no queuedata implies admin queue */
>>>>>>            req->timeout = NVME_ADMIN_TIMEOUT;
>>>>>> +        if (!nr->ctrl->passthru_err_log_enabled)
>>>>>> +            req->rq_flags |= RQF_QUIET;
>>>>>> +    }
>>>>>>        /* passthru commands should let the driver set the SGL flags */
>>>>>>        cmd->common.flags &= ~NVME_CMD_SGL_ALL;
>>>>>> @@ -687,8 +720,7 @@ void nvme_init_request(struct request *req,
>>>>>> struct nvme_command *cmd)
>>>>>>        if (req->mq_hctx->type == HCTX_TYPE_POLL)
>>>>>>            req->cmd_flags |= REQ_POLLED;
>>>>>>        nvme_clear_nvme_request(req);
>>>>>> -    req->rq_flags |= RQF_QUIET;
>>>>> Isn't thisw now dropping the RQF_QUIET flag I/O commands that we
>>>>> previously set?  While we're at it, why do we only allow passthrough
>>>>> error logging for admin commands anyway?
>>>>
>>>> While working through this, we decided that for IO commands
>>>> (passthrough or not) error logging would always be enabled. For
>>>> passthrough admin commands, error logging could be enabled or disabled.
>>>
>>> Why shouldn't it apply to both?
>>
>> Currently, we have /sys/class/nvme/nvme0/passthru_err_log_enabled that
>> enables/disables logging for admin command only.  Are you saying it
>> should also enable/disable for IO commands across all namespaces or
>> should there also be:
>>
>> /sys/class/nvme/nvme0/nvme0n1/passthru_err_log_enabled
>>
>> /sys/class/nvme/nvme0/nvme0n2/passthru_err_log_enabled
>>
>> .
>>
>> .
>>
>> Alan
>>
>>
>>
> 
> Can we please have resolution on this patch so we can merge it ?

I'm in favor of the latter, IO commands enabled per ns, and admin
commands in the controller level.



More information about the Linux-nvme mailing list