Since it's the guest decision to rely on polling or interrupts to be
notified about used descriptors in the used ring, we can't expect an
EventFd to be set through SET_VRING_CALL if the guest chose the polling
method.
On the other hand, we always expect an EventFd to be provided through
SET_VRING_KICK since the current way of handling new descriptors is
exclusively by receiving an event through an eventfd (no polling mode
has been implemented).
That's why a vring should be initialized based on its state and if the
EventFd related to VRING_KICK has been set.
Requirements
Before submitting your PR, please make sure you addressed the following
requirements:
[x] All commits in this PR are signed (with git commit -s), and the commit
message has max 60 characters for the summary and max 75 characters for each
description line.
[x] All added/changed functionality has a corresponding unit/integration
test.
[x] Any newly added unsafe code is properly documented.
Summary of the PR
Since it's the guest decision to rely on polling or interrupts to be notified about used descriptors in the used ring, we can't expect an EventFd to be set through SET_VRING_CALL if the guest chose the polling method.
On the other hand, we always expect an EventFd to be provided through SET_VRING_KICK since the current way of handling new descriptors is exclusively by receiving an event through an eventfd (no polling mode has been implemented).
That's why a vring should be initialized based on its state and if the EventFd related to VRING_KICK has been set.
Requirements
Before submitting your PR, please make sure you addressed the following requirements:
git commit -s
), and the commit message has max 60 characters for the summary and max 75 characters for each description line.unsafe
code is properly documented.