diff options
author | Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com> | 2019-04-23 17:14:50 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-01 03:59:47 +0000 |
commit | 17b0daf88c97be0ace69d4b19b3352053668e96b (patch) | |
tree | 93c7de722eaa589bf45de3246b847bf3cfa6889a /src/crosvm.rs | |
parent | 71a6f0a790eb3f9a6fccbaf08aa915396a9d6749 (diff) | |
download | crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.tar crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.tar.gz crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.tar.bz2 crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.tar.lz crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.tar.xz crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.tar.zst crosvm-17b0daf88c97be0ace69d4b19b3352053668e96b.zip |
vfio: Integrate VFIO device into pci device model
Create VFIO device and VFIO PCI device in create_devices() function, and intergrate it into PciRootBridge, so guest could see this vfio device. Add a vfio config parameter, this config point to passthrough or mdev device sysfs path. For passthrough case, first user unbind host device from its driver, then bind host device to vfio-pci. Like: echo 0000:00:02.0 > /sys/bus/pci/devices/0000:00:02.0/driver/unbind ech0 8086 1912 > /sys/bus/pci/drivers/vfio-pci/new_id Finally pass the sysfs to crosvm through --vfio=/sys/bus/pci/devices/0000:00:02.0 For mdev case, user create a mdev device through echo $UUID > mdev_type/create, then pass this mdev device to crosvm like --vfio=/sys/bus/pci/devices/0000:00:02.0/$UUID BUG=chromium:992270 TEST=none Change-Id: I0f59d6e93f62f9ab0727ad3a867d204f4ff6ad2d Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1581140 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Diffstat (limited to 'src/crosvm.rs')
-rw-r--r-- | src/crosvm.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/crosvm.rs b/src/crosvm.rs index bc39e7f..b7055df 100644 --- a/src/crosvm.rs +++ b/src/crosvm.rs @@ -109,6 +109,7 @@ pub struct Config { pub virtio_keyboard: Option<PathBuf>, pub virtio_input_evdevs: Vec<PathBuf>, pub split_irqchip: bool, + pub vfio: Option<PathBuf>, } impl Default for Config { @@ -153,6 +154,7 @@ impl Default for Config { virtio_keyboard: None, virtio_input_evdevs: Vec::new(), split_irqchip: false, + vfio: None, } } } |