Lock protection is needed during the vhost notifies the application of device readiness, so the first patch adds lock protection. In addition, the second patch reworks async feature structure to improve readability. After performing locking, existed async vhost registration functions will cause deadlock, as they acquire lock too. The last patch provides thread unsafe registration functions to support calling within vhost callback functions.
v4: * remove brace {} in single statement block v3: * rename and use enum to define async device features * change padding fields to 8 bytes v2: * rework async feature structure * fix typo in commit log Jiayu Hu (3): vhost: fix lock on device readiness notification vhost: rework async configuration struct vhost: add thread unsafe async registeration functions doc/guides/prog_guide/vhost_lib.rst | 31 +++++-- examples/vhost/main.c | 8 +- lib/vhost/rte_vhost_async.h | 74 ++++++++++++----- lib/vhost/version.map | 4 + lib/vhost/vhost.c | 157 ++++++++++++++++++++++++++---------- lib/vhost/vhost_user.c | 5 +- 6 files changed, 205 insertions(+), 74 deletions(-) -- 2.7.4