numam-spdk/lib/vhost
Dariusz Stojaczyk d4e19ecc1c vhost: use trylock inside async events body
This makes the async event body non-blocking
and also fixes potential deadlock scenario:
 * call_external_event() enqueues vhost_event
 * destroy_device() locks g_spdk_vhost_mutex
 * destroy_device() enqueues it's vhost_event
 * reactor dequeues events
  * cb from call_external_event is dequeued first
    * g_spdk_vhost_mutex is locked (deadlock)
 * destroy_device() times out, abort()

Change-Id: If8f51ada3ee5c47ba126f74187a40a285c001c77
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/380634
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-09-28 17:05:34 -04:00
..
rte_vhost rte_vhost: fix numa_realloc() copy size 2017-09-07 18:02:09 -04:00
Makefile env: Automatically register new memory with the IOMMU 2017-09-01 15:25:24 -04:00
test_plan.md test/vhost: add vhost with lvol backends test 2017-09-20 12:53:28 -04:00
vhost_blk.c rpc/vhost: unify RPC "remove_vhost_controller" for all backends 2017-09-26 15:35:54 -04:00
vhost_internal.h rpc/vhost: unify RPC "remove_vhost_controller" for all backends 2017-09-26 15:35:54 -04:00
vhost_rpc.c rpc/vhost: unify RPC "remove_vhost_controller" for all backends 2017-09-26 15:35:54 -04:00
vhost_scsi.c rpc/vhost: unify RPC "remove_vhost_controller" for all backends 2017-09-26 15:35:54 -04:00
vhost.c vhost: use trylock inside async events body 2017-09-28 17:05:34 -04:00