151a357ca3
when qemu connect to vhost, but don't send msg to vhost. We use kill -15 to destroy vhost process. it will lead to deadlock. (A) * rte_vhost_driver_unregister() * pthread_mutex_lock hold vhost_user.mutex (1) * wait TAILQ_FIRST(&vsocket->conn_list) is NULL (B) * fdset_event_dispatch() * vhost_user_read_cb() start * vhost_user_msg_handler() start * dev->notify_ops is NULL because qemu just connect, no message recv. * vhost_driver_callback_get() * pthread_mutex_lock hold vhost_user.mutex (2) (A) & (B) deadlock To avoid this scenes, when qemu connect in vhost_new_device() initialize dev->notify_ops Change-Id: Iaf699da41dfa3088cfc0f09688b50fada6b2c8d6 Signed-off-by: Tianyu yang <yangtianyu2@huawei.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/454832 Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> |
||
---|---|---|
.. | ||
rte_vhost | ||
Makefile | ||
rte_vhost_compat.c | ||
vhost_blk.c | ||
vhost_internal.h | ||
vhost_nvme.c | ||
vhost_rpc.c | ||
vhost_scsi.c | ||
vhost.c |