[dpdk-dev,v4,4/4] vhost: add comment for potential unwanted callback on listenfds

Message ID 1435656050-3539-5-git-send-email-huawei.xie@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Huawei Xie June 30, 2015, 9:20 a.m. UTC
  add comment for potential unwanted callback on listenfds

v4 changes:
add comment for potential unwanted callback on listenfds

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
---
 lib/librte_vhost/vhost_user/fd_man.c | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Ouyang Changchun July 1, 2015, 2:15 a.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Huawei Xie
> Sent: Tuesday, June 30, 2015 5:21 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH v4 4/4] vhost: add comment for potential
> unwanted callback on listenfds
> 
> add comment for potential unwanted callback on listenfds
> 
> v4 changes:
> add comment for potential unwanted callback on listenfds
> 
> Signed-off-by: Huawei Xie <huawei.xie@intel.com>

Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>

> ---
>  lib/librte_vhost/vhost_user/fd_man.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/lib/librte_vhost/vhost_user/fd_man.c
> b/lib/librte_vhost/vhost_user/fd_man.c
> index bd30f8d..d68b270 100644
> --- a/lib/librte_vhost/vhost_user/fd_man.c
> +++ b/lib/librte_vhost/vhost_user/fd_man.c
> @@ -242,6 +242,13 @@ fdset_event_dispatch(struct fdset *pfdset)
> 
>  		pthread_mutex_unlock(&pfdset->fd_mutex);
> 
> +		/*
> +		 * When select is blocked, other threads might unregister
> +		 * listenfds from and register new listenfds into fdset.
> +		 * When select returns, the entries for listenfds in the fdset
> +		 * might have been updated. It is ok if there is unwanted call
> +		 * for new listenfds.
> +		 */
>  		ret = select(maxfds + 1, &rfds, &wfds, NULL, &tv);
>  		if (ret <= 0)
>  			continue;
> --
> 1.8.1.4
  

Patch

diff --git a/lib/librte_vhost/vhost_user/fd_man.c b/lib/librte_vhost/vhost_user/fd_man.c
index bd30f8d..d68b270 100644
--- a/lib/librte_vhost/vhost_user/fd_man.c
+++ b/lib/librte_vhost/vhost_user/fd_man.c
@@ -242,6 +242,13 @@  fdset_event_dispatch(struct fdset *pfdset)
 
 		pthread_mutex_unlock(&pfdset->fd_mutex);
 
+		/*
+		 * When select is blocked, other threads might unregister
+		 * listenfds from and register new listenfds into fdset.
+		 * When select returns, the entries for listenfds in the fdset
+		 * might have been updated. It is ok if there is unwanted call
+		 * for new listenfds.
+		 */
 		ret = select(maxfds + 1, &rfds, &wfds, NULL, &tv);
 		if (ret <= 0)
 			continue;