summary refs log tree commit diff
path: root/devices/src/pci/mod.rs
diff options
context:
space:
mode:
authorChuanxiao Dong <chuanxiao.dong@intel.com>2020-03-21 09:15:16 +0800
committerCommit Bot <commit-bot@chromium.org>2020-03-25 17:41:42 +0000
commit45a94bedaea17d8ae95e860b8a4beb2e465c187e (patch)
tree4662c616cbd5231504bb960fde8c66d5cc4082f0 /devices/src/pci/mod.rs
parent57b8201eeb75d9b2cbf424fa7a91d6738fe8610c (diff)
downloadcrosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.tar
crosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.tar.gz
crosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.tar.bz2
crosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.tar.lz
crosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.tar.xz
crosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.tar.zst
crosvm-45a94bedaea17d8ae95e860b8a4beb2e465c187e.zip
vhost-net: implement direct msix irq fd
The current vhost-net msix irq injection flow is from vhost-kernel
to crosvm vhost-net, then to the KVM for irq injection. It still need
crosvm vhost-net to trigger irq, which is because the set_vring_call
is not directly using the msix irq fd.

To optimize this flow to be from vhost-kernel to KVM directly, need:
1. if the msix is enabled and unmasked, use the misx irq fd for the
vring_call directly so that all the misx injection can directly to
KVM from vhost-kernel.
2. if the msix is disabled or masked, use the indirect vhost_interrupt
fd to let the crosvm to control the irq injection.

BUG=None
TEST=cargo test -p devices
TEST=start crosvm with vhost-net, and run the iperf3 on the network
without any issue

Change-Id: Idb3427f69f23b728305ed63d88973156a03e7c6b
Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2046452
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'devices/src/pci/mod.rs')
-rw-r--r--devices/src/pci/mod.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/devices/src/pci/mod.rs b/devices/src/pci/mod.rs
index 8c5380e..b9ebc19 100644
--- a/devices/src/pci/mod.rs
+++ b/devices/src/pci/mod.rs
@@ -15,7 +15,7 @@ mod pci_root;
 mod vfio_pci;
 
 pub use self::ac97::{Ac97Backend, Ac97Dev, Ac97Parameters};
-pub use self::msix::{MsixCap, MsixConfig};
+pub use self::msix::{MsixCap, MsixConfig, MsixStatus};
 pub use self::pci_configuration::{
     PciBarConfiguration, PciBarPrefetchable, PciBarRegionType, PciCapability, PciCapabilityID,
     PciClassCode, PciConfiguration, PciHeaderType, PciProgrammingInterface, PciSerialBusSubClass,