virtio: run process to send interrupts to input nodes 89/29389/4
authorMohsin Kazmi <sykazmi@cisco.com>
Mon, 12 Oct 2020 11:01:24 +0000 (13:01 +0200)
committerBeno�t Ganne <bganne@cisco.com>
Wed, 21 Oct 2020 11:20:01 +0000 (11:20 +0000)
commita5203b53d4fa227560333b890d3e79fc220d1bfd
tree04ac639280910abbf8a12fd973b207f177b67a12
parent302b25a00ed913767798d58148ef4d36092ee490
virtio: run process to send interrupts to input nodes

Type: improvement

virtio interfaces support packet coalescing and buffering which
depends on timer expiry to flush the stored packets periodically.

virtio input node checks timer expiry and schedules tx queue
accordingly. In poll mode, timer expiry is handled naturally,
as input node runs periodically. In interrupt mode, virtio
input node depends on the interrupts send from backend.
Stored packets could starve, if there would not be interrupts
to input node.

This patch implements a process node which periodically
sends interrupt to virtio input node given coalescing or buffering
feature is enabled on an interface.

Change-Id: Ic38f749f74b001073d4d0579dca149d0a4cea039
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
src/vnet/CMakeLists.txt
src/vnet/devices/virtio/device.c
src/vnet/devices/virtio/virtio.h
src/vnet/devices/virtio/virtio_process.c [new file with mode: 0644]