[dpdk-dev,v2,1/2] vhost: make sure vhost fdset-thread created successfully

Message ID 1521771531-95836-1-git-send-email-xiangxia.m.yue@gmail.com (mailing list archive)
State Accepted, archived
Delegated to: Maxime Coquelin
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Tonghao Zhang March 23, 2018, 2:18 a.m. UTC
  From: Tonghao Zhang <xiangxia.m.yue@gmail.com>

When first call the 'rte_vhost_driver_start', the
fdset_event_dispatch thread should be created successfully.
Because the vhost uses it to poll socket events for vhost
server or clients. Without it, for example, vhost will not
get the connection event.

This patch returns err code directly when created not successful.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
---
v2:
According to rte_vhost_driver_start doc, replace the err code
of pthread_create with -1.
---
 lib/librte_vhost/socket.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Maxime Coquelin March 30, 2018, 8:03 a.m. UTC | #1
On 03/23/2018 03:18 AM, xiangxia.m.yue@gmail.com wrote:
> From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> 
> When first call the 'rte_vhost_driver_start', the
> fdset_event_dispatch thread should be created successfully.
> Because the vhost uses it to poll socket events for vhost
> server or clients. Without it, for example, vhost will not
> get the connection event.
> 
> This patch returns err code directly when created not successful.
> 
> Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
> Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
> ---
> v2:
> According to rte_vhost_driver_start doc, replace the err code
> of pthread_create with -1.
> ---
>   lib/librte_vhost/socket.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)

Applied to dpdk-next-virtio/master.

Thanks,
Maxime
  

Patch

diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index 83befdc..8c98806 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -831,9 +831,11 @@  struct vhost_device_ops const *
 	if (fdset_tid == 0) {
 		int ret = pthread_create(&fdset_tid, NULL, fdset_event_dispatch,
 				     &vhost_user.fdset);
-		if (ret != 0)
+		if (ret != 0) {
 			RTE_LOG(ERR, VHOST_CONFIG,
 				"failed to create fdset handling thread");
+			return -1;
+		}
 	}
 
 	if (vsocket->is_server)