cloud-hypervisor/vm-virtio/src
Sebastien Boeuf a7f0f9dfea vm-virtio: Ensure pause event is caught by every virtio thread
Each virtio thread was reading/draining the pause_evt pipe when
detecting the associated event. Problem is, when a virtio device has
multiple threads, they all share the same pause_evt pipe, which can
prevent some threads from receiving the event. If the first thread to
catch the event is quickly clearing the pipe, some other threads might
simply miss the event and they will not enter the "paused" state as
expected.

This is a behavior that was spotted with virtio-net as it usually uses
2 threads by default (1 for TX/RX queues and 1 for the control queue).

The way to solve this issue is by letting each thread drain the pipe
during the resume codepath, that is after the thread has been unparked.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2020-06-25 12:01:34 +02:00
..
transport source: Fix file permissions 2020-06-10 18:47:27 +01:00
vhost_user vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
vsock vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
block.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
console.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
device.rs vm-virtio: device: Extend the VirtioDevice trait to expose counters 2020-06-25 07:02:44 +02:00
iommu.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
lib.rs source: Fix file permissions 2020-06-10 18:47:27 +01:00
mem.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
net_util.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
net.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
pmem.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00
queue.rs vm-virtio: Add some info! level debugging interrupt generation 2020-06-03 08:28:49 +02:00
rng.rs vm-virtio: Ensure pause event is caught by every virtio thread 2020-06-25 12:01:34 +02:00