On 04/12/2018 06:28 PM, Junjie Chen wrote:
In some cases we want vhost dequeue work in interrupt mode to release cpus to others when no data to transmit. So we install interrupt handler of vhost device and interrupt vectors for each rx queue when creating new backend according to vhost intrerupt configuration. Thus, applications could register a epoll event fd to associate rx queues with interrupt vectors. Signed-off-by: Junjie Chen <junjie.j.c...@intel.com> --- Changes in v6: - rebase code to master Changes in v5: - update license to DPDK new license format - rebase code to master Changes in v4: - revert back license change Changes in v3: - handle failure in the middle of intr setup. - use vhost API to enable interrupt. - rebase to check rxq existence. - update vhost API to support guest notification. Changes in v2: - update rx queue index. - fill efd_counter_size for intr handler. - update log. drivers/net/vhost/rte_eth_vhost.c | 158 +++++++++++++++++++++++++++++++++++++- lib/librte_vhost/vhost.c | 14 ++-- 2 files changed, 163 insertions(+), 9 deletions(-)
Applied to dpdk-next-virtio/master. Please next time run checkpatch before posting, I had to fix below errors when applying. Thanks, Maxime ### [dpdk-dev,v6,1/2] vhost: add support for interrupt mode CHECK:BRACES: braces {} should be used on all arms of this statement #208: FILE: drivers/net/vhost/rte_eth_vhost.c:743: + if (rte_atomic32_read(&internal->started) == 1) { [...] else [...] ERROR:TRAILING_WHITESPACE: trailing whitespace #237: FILE: drivers/net/vhost/rte_eth_vhost.c:939: +^I$ ERROR:TRAILING_WHITESPACE: trailing whitespace #282: FILE: lib/librte_vhost/vhost.c:554: +^Ielse^I$ total: 2 errors, 0 warnings, 225 lines checked 0/1 valid patch