We've recently switched from manually calling eventfd_write() to rte_vhost_vring_call(), which besides writing to the eventfd, always calls a full memory barrier in the upstream rte_vhost lib. With upstream rte_vhost we're actually calling two memory barriers on I/O completion - one in spdk code, one inside rte_vhost_vring_call(). The spdk barrier was only required for our internal rte_vhost lib, whose rte_vhost_vring_call() implementation (that we wrote) did not have such membarrier inside. So now we'll add this membarrier there, and remove the same barrier from spdk code. This doesn't change any code flow for the internal rte_vhost lib, but optimizes I/O path for the upstream version. Change-Id: I68738d7feb9159f718b0e60ac7eed1fafd4836b9 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466037 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> |
||
---|---|---|
.. | ||
fd_man.c | ||
fd_man.h | ||
Makefile | ||
rte_vhost.h | ||
socket.c | ||
vhost_user.c | ||
vhost_user.h | ||
vhost.c | ||
vhost.h |