Bug 981 - vhost: avoid sleeping under mutex
Summary: vhost: avoid sleeping under mutex
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: vhost/virtio (show other bugs)
Version: unspecified
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: dev
URL:
Depends on:
Blocks:
 
Reported: 2022-03-25 10:03 CET by David Marchand
Modified: 2022-03-25 10:03 CET (History)
0 users



Attachments

Description David Marchand 2022-03-25 10:03:08 CET
Reported by covscan:

 2. dpdk-21.11/lib/vhost/socket.c:852: lock_acquire: Calling function "pthread_mutex_lock" acquires lock "vhost_user.mutex".
23. dpdk-21.11/lib/vhost/socket.c:955: sleep: Call to "vhost_user_reconnect_init" might sleep while holding lock "vhost_user.mutex".
#   953|   		vsocket->reconnect = !(flags & RTE_VHOST_USER_NO_RECONNECT);
#   954|   		if (vsocket->reconnect && reconn_tid == 0) {
#   955|-> 			if (vhost_user_reconnect_init() != 0)
#   956|   				goto out_mutex;
#   957|   		}

The reason for this warning is that creating a ctrl thread might end up with sleep() calls.

Maybe creating the ctrl thread could be moved early (out of the mutex).


Plus, comparing (pthread_t) reconn_tid against 0 is ugly.
Fixing this bz would be a good time to clean this too.

Note You need to log in before you can comment on or make changes to this bug.