[dpdk-dev] [PATCH] vhost: provide vhost API to unregister vhost unix domain socket

Tetsuya Mukawa mukawa at igel.co.jp
Wed Jun 17 06:17:11 CEST 2015


On 2015/06/02 10:50, Huawei Xie wrote:
> rte_vhost_driver_unregister will remove the listenfd from event list, and then close it.
>
> Signed-off-by: Huawei Xie <huawei.xie at intel.com>
> Signed-off-by: Peng Sun <peng.a.sun at intel.com>
> ---
>  
> +/**
> + * Unregister the specified vhost server
> + */
> +int
> +rte_vhost_driver_unregister(const char *path)
> +{
> +	int i;
> +	int count;
> +
> +	pthread_mutex_lock(&g_vhost_server.server_mutex);
> +
> +	for (i = 0; i < g_vhost_server.vserver_cnt; i++) {
> +		if (!strcmp(g_vhost_server.server[i]->path, path)) {
> +			fdset_del(&g_vhost_server.fdset,
> +				g_vhost_server.server[i]->listenfd);
> +
> +			close(g_vhost_server.server[i]->listenfd);
> +			free(g_vhost_server.server[i]->path);
> +			free(g_vhost_server.server[i]);
> +
> +			unlink(path);
> +
> +			count = --g_vhost_server.vserver_cnt;
> +			g_vhost_server.server[i] =
> +				g_vhost_server.server[count];
> +			g_vhost_server.server[count] =
> +				NULL;
> +			pthread_mutex_unlock(&g_vhost_server.server_mutex);
> +
> +			return 0;
> +		}
> +	}
> +	pthread_mutex_unlock(&g_vhost_server.server_mutex);
> +
> +	return -1;
> +}
> +
>

Hi Xie,

It seems vserver_cnt is incremented when socket is registered, and
decremented when unregistered.
And this value is used for index value of g_vhost_server.server[ ], when
a new socket is registered.
So I have a question about below case.

Step1. socket0 is registered.
Step2: scoekt1 is registered.
Step3. socket0 is unregistered.
Step4. socket2 is registered.

After above steps, are socket1 and socket2 still registered?

Thanks,
Tetsuya


More information about the dev mailing list