Go to file
Wenjie Sun 054617fd82 vhost: fix deadlock in driver unregister
In rte_vhost_driver_unregister(), the connection fd is
removed from the fdset using fdset_try_del(). Call to
this function may fail if the corresponding fd is in
busy state, indicating that event dispatcher is
executing the read or write callback on this fd.
When it happens, rte_vhost_driver_unregister() keeps
trying to remove the fd from the set until it is no
more busy.

This situation is causing a deadlock, because
rte_vhost_driver_unregister() keeps trying to remove
the fd from the set with vhost_user.mutex held, while
the callback executed by the dispatcher,
vhost_user_read_cb(), also takes this mutex at
numerous places.

The fix consists in releasing vhost_user.mutex between
each retry in vhost_driver_unregister().

Fixes: 8b4b949144 ("vhost: fix dead lock on closing in server mode")
Cc: stable@dpdk.org

Signed-off-by: Wenjie Sun <findtheonlyway@gmail.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2019-02-22 14:39:49 +01:00
app app/testpmd: add TOS and TTL fields to VXLAN encapsulation 2019-02-07 12:59:17 +01:00
buildtools config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
config build: fix meson check for binutils 2.30 2019-01-17 19:19:57 +01:00
devtools devtools: fix build check for whether meson has run 2019-01-14 12:24:57 +01:00
doc doc: fix a minor typo in testpmd guide 2019-02-20 16:41:43 +01:00
drivers net/virtio: optimize Tx enqueue for packed ring 2019-02-22 14:39:49 +01:00
examples examples/fips_validation: fix physical address 2019-01-22 17:32:20 +01:00
kernel kni: fix build for igb_ndo_bridge_setlink in Linux 5.0 2019-01-23 22:34:41 +01:00
lib vhost: fix deadlock in driver unregister 2019-02-22 14:39:49 +01:00
license
mk config: add static linkage of mlx dependency 2019-01-14 17:44:29 +01:00
test test/pmd_perf: fix the way to drain the port 2019-02-22 14:39:49 +01:00
usertools usertools: make telemetry script executable 2019-01-28 01:47:46 +01:00
.gitattributes
.gitignore
GNUmakefile
MAINTAINERS maintainers: claim co-maintainership of LPM library 2019-02-06 11:45:17 +01:00
Makefile
meson_options.txt config: gather options for dlopen mlx dependency 2019-01-14 17:44:29 +01:00
meson.build version: 19.05-rc0 2019-02-06 11:20:06 +01:00
README

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org