cloud-hypervisor/vm-virtio/src
Rob Bradford f4d41d600b virtio: net: Remove TAP fd from epoll when no available descriptors
When there are no available descriptors in the queue (observed when the
network interface hasn't been brought up by the kernel) stop waiting for
notifications that the TAP fd should be read from.

This avoids a situation where the TAP device has data avaiable and wakes
up the virtio-net thread only for the virtio-net thread not read that
data as it has nowhere to put it.

When there are descriptors available in the queue then we resume waiting
for the epoll event on the TAP fd.

This bug demonstrated itself as 100% CPU usage for cloud-hypervisor
binary prior to the guest network interface being brought up. The
solution was inspired by the Firecracker virtio-net code.

Fixes: #208

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2019-08-21 08:41:28 -07:00
..
transport vm-virtio: Remove unused dependency from unit tests 2019-08-21 08:51:25 +01:00
block.rs build, misc: Bump vmm-sys-util dependency 2019-08-02 07:42:20 -07:00
console.rs linters: Fix clippy issues 2019-08-15 09:10:04 -07:00
device.rs linters: Fix clippy issues 2019-08-15 09:10:04 -07:00
fs.rs vm-virtio: fs: Add DAX shared region support 2019-08-13 13:57:53 +02:00
lib.rs vm-virtio: fs: Add DAX shared region support 2019-08-13 13:57:53 +02:00
net.rs virtio: net: Remove TAP fd from epoll when no available descriptors 2019-08-21 08:41:28 -07:00
pmem.rs build, misc: Bump vmm-sys-util dependency 2019-08-02 07:42:20 -07:00
queue.rs vmm: Add MSI-X support to virtio-pci devices 2019-06-06 15:27:35 +01:00
rng.rs build, misc: Bump vmm-sys-util dependency 2019-08-02 07:42:20 -07:00