summary refs log tree commit diff
path: root/seccomp
diff options
context:
space:
mode:
authorXiong Zhang <xiong.y.zhang@intel.corp-partner.google.com>2019-04-23 17:14:50 +0800
committerCommit Bot <commit-bot@chromium.org>2019-10-01 03:59:47 +0000
commit17b0daf88c97be0ace69d4b19b3352053668e96b (patch)
tree93c7de722eaa589bf45de3246b847bf3cfa6889a /seccomp
parent71a6f0a790eb3f9a6fccbaf08aa915396a9d6749 (diff)
downloadcrosvm-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 'seccomp')
-rw-r--r--seccomp/x86_64/vfio_device.policy10
1 files changed, 10 insertions, 0 deletions
diff --git a/seccomp/x86_64/vfio_device.policy b/seccomp/x86_64/vfio_device.policy
new file mode 100644
index 0000000..8dd5961
--- /dev/null
+++ b/seccomp/x86_64/vfio_device.policy
@@ -0,0 +1,10 @@
+# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+@include /usr/share/policy/crosvm/common_device.policy
+
+# VFIO_DEVICE_SET_IRQS, VFIO_IOMMU_MAP/UNMAP_DMA
+ioctl: arg1 == 0x3B6E || arg1 == 0x3B71 || arg1 == 0x3B72
+readlink: 1
+pread64: 1
+pwrite64: 1