[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