On 5 Apr 2023, at 14:40, Eelco Chaudron wrote: > This series adds an operation callback which gets called every time the > library wants to call eventfd_write(). This eventfd_write() call could > result in a system call, which could potentially block the PMD thread. > > The callback function can decide whether it's ok to handle the > eventfd_write() now or have the newly introduced function, > rte_vhost_notify_guest(), called at a later time. > > This can be used by 3rd party applications, like OVS, to avoid system > calls being called as part of the PMD threads. Wondering if anyone had a chance to look at this patchset. Cheers, Eelco > v2: - Used vhost_virtqueue->index to find index for operation. > - Aligned function name to VDUSE RFC patchset. > - Added error and offload statistics counter. > - Mark new API as experimental. > - Change the virtual queue spin lock to read/write spin lock. > - Made shared counters atomic. > - Add versioned rte_vhost_driver_callback_register() for > ABI compliance. > > Eelco Chaudron (3): > vhost: Change vhost_virtqueue access lock to a read/write one. > vhost: make the guest_notifications statistic counter atomic. > vhost: add device op to offload the interrupt kick > > > lib/eal/include/generic/rte_rwlock.h | 17 +++++ > lib/vhost/meson.build | 2 + > lib/vhost/rte_vhost.h | 23 ++++++- > lib/vhost/socket.c | 72 ++++++++++++++++++++-- > lib/vhost/version.map | 9 +++ > lib/vhost/vhost.c | 92 +++++++++++++++++++++------- > lib/vhost/vhost.h | 70 ++++++++++++++------- > lib/vhost/vhost_user.c | 14 ++--- > lib/vhost/virtio_net.c | 90 +++++++++++++-------------- > 9 files changed, 288 insertions(+), 101 deletions(-)