[PATCH] nvmet: Set ctrl->kato to a default NVMET_DISC_KATO value
Engel, Amit
Amit.Engel at Dell.com
Wed Aug 19 10:29:18 EDT 2020
Actually the spec says that NVME/TCP requires keep alive so it shouldn’t be 0.
Maybe we do need to set a default value in case of zero kato value ?
NVMe-oF 1.1:
7.4.8 Keep Alive
The NVMe/TCP Transport requires the use of the Keep Alive feature (refer to section 7.12 in the NVMe base specification). The NVMe/TCP Transport does not impose any limitations on the minimum and maximum Keep Alive Timeout value. The minimum should be set large enough to account for any transient fabric interconnect failures between the host and controller.
TCP level Keep Alive functionality is not prohibited but it is recommended that TCP level Keep Alive timeout is set to a higher value than the NVMe Keep Alive Timeout to avoid conflicting policies.
-----Original Message-----
From: Sagi Grimberg <sagi at grimberg.me>
Sent: Tuesday, August 18, 2020 11:59 PM
To: Christoph Hellwig; Engel, Amit
Cc: linux-nvme at lists.infradead.org
Subject: Re: [PATCH] nvmet: Set ctrl->kato to a default NVMET_DISC_KATO value
[EXTERNAL EMAIL]
>>> We want to avoid starting the keep-alive timer with a zero timeout
>>> value
>>
>> So looking at the spec:
>>
>> "This field specifies the timeout value for the Keep Alive feature in
>> milliseconds. The controller rounds up the value specified to the
>> granularity indicated in the KAS field in the Identify Controller
>> data structure. If cleared to 0h, then the Keep Alive Timer is
>> disabled."
>>
>> we should not just set a random high timeout but just disable the
>> keep alive entirely.
>
> It is already disabled, not sure I understand the patch:
>
> --
> static void nvme_start_keep_alive(struct nvme_ctrl *ctrl) {
> if (unlikely(ctrl->kato == 0))
> return;
>
> queue_delayed_work(nvme_wq, &ctrl->ka_work, ctrl->kato * HZ);
> }
> --
Just noticed its nvmet.
We need an equivalent patch for nvmet, that's all
More information about the Linux-nvme
mailing list