[PATCHv3 1/2] nvme: send uevent on connection up

John Meneghini jmeneghi at redhat.com
Tue Feb 15 07:41:33 PST 2022


On 2/8/22 14:33, Martin Belanger wrote:
> From: Martin Belanger <martin.belanger at dell.com>
> 
> When connectivity with a controller is lost, the driver will keep
> trying to reconnect once every 10 sec. When connection is restored,
> user-space apps need to be informed so that they can take proper
> action. For example, TP8010 introduces the DIM PDU, which is used to
> register with a discovery controller (DC). The DIM PDU is sent from
> user-space.  The DIM PDU must be sent every time a connection is
> established with a DC. Therefore, the kernel must tell user-space apps
> when connection is restored so that registration can happen.
> 
> The uevent sent is a "change" uevent with environmental data
> set to: "NVME_EVENT=connected".
> 
> Signed-off-by: Martin Belanger <martin.belanger at dell.com>
> Reviewed-by: Hannes Reinecke <hare at suse.de>
> Reviewed-by: Sagi Grimberg <sagi at grimberg.me>
> Reviewed-by: Chaitanya Kulkarni <kch at nvidia.com>
> ---
>   drivers/nvme/host/core.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index dd18861f77c0..b5e452aa3c0e 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -4229,6 +4229,13 @@ static int nvme_class_uevent(struct device *dev, struct kobj_uevent_env *env)
>   	return ret;
>   }
>   
> +static void nvme_change_uevent(struct nvme_ctrl *ctrl, char *envdata)
> +{
> +	char *envp[2] = { envdata, NULL };
> +
> +	kobject_uevent_env(&ctrl->device->kobj, KOBJ_CHANGE, envp);
> +}
> +
>   static void nvme_aen_uevent(struct nvme_ctrl *ctrl)
>   {
>   	char *envp[2] = { NULL, NULL };
> @@ -4396,6 +4403,8 @@ void nvme_start_ctrl(struct nvme_ctrl *ctrl)
>   		nvme_queue_scan(ctrl);
>   		nvme_start_queues(ctrl);
>   	}
> +
> +	nvme_change_uevent(ctrl, "NVME_EVENT=connected");
>   }
>   EXPORT_SYMBOL_GPL(nvme_start_ctrl);
>   

Reviewed-by: John Meneghini <jmeneghi at redhat.com>




More information about the Linux-nvme mailing list