No description
Find a file
Wang Ningyuan 565890222d Devices: BAR reprogram for virtio-pci devices
This CL adds BAR reprogramming support to a VirtioPciDevice. A tube for
handling ioevent register requests is added. The requests are handled
similarly to existing VmMemoryRequests.

Test: Presubmit tests. Hotplugged virtio device without VM memory
allocation functions after guest OS gives the memory.
Bug: 271204121

Change-Id: Ia0d421d8cd461eeee8f402256d0c7620c507f0e9
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/4311103
Reviewed-by: Ningyuan Wang <ningyuan@google.com>
Commit-Queue: Ningyuan Wang <ningyuan@google.com>
Reviewed-by: Zihan Chen <zihanchen@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2023-03-29 04:01:30 +00:00
.cargo tools: Do not use pip to install python packages 2023-02-27 19:24:18 +00:00
.config tools/run_tests2: Prepare for CI usage 2023-02-09 00:09:02 +00:00
.devcontainer dev_container: Add latest tag when pushing images 2023-03-15 21:02:13 +00:00
.github
.vscode
aarch64 aarch64: Allow hypervisor to initialize boot context 2023-03-29 00:52:24 +00:00
acpi_tables acpi: Mark structs as repr(C, packed) 2023-02-08 21:32:43 +00:00
anti_tamper
arch arch: Create GuestMemory with MemoryRegionOptions 2023-03-29 00:52:24 +00:00
argh_helpers
audio_util tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
base swap: add trim command 2023-03-29 01:22:02 +00:00
bit_field crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
broker_ipc
common swap: add trim command 2023-03-29 01:22:02 +00:00
crash_report metrics: Add missing process types 2023-02-22 20:01:38 +00:00
cros_async tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
cros_fdt crosvm: fdt: Add option to dump generated devicetree blob 2023-03-16 18:16:28 +00:00
cros_tracing tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
crosvm-fuzz devices: virtio: block: parallelize by multiple worker threads 2023-03-03 00:23:05 +00:00
crosvm_cli crosvm_cli: implement exit_context() for Option 2023-03-28 20:13:06 +00:00
crosvm_control crosvm_control: Add Build Time C Compilation Check 2023-03-16 00:01:44 +00:00
crosvm_plugin Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
devices Devices: BAR reprogram for virtio-pci devices 2023-03-29 04:01:30 +00:00
disk disk: add try_clone method to DiskFile trait 2023-03-02 08:52:56 +00:00
docs/book crosvm: add --vsock command-line option and config-file parameter. 2023-03-22 09:19:18 +00:00
e2e_tests tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
fuse devices: Add trace points for passthroughfs 2023-03-10 02:20:14 +00:00
gpu_display tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
hypervisor aarch64: Allow hypervisor to initialize boot context 2023-03-29 00:52:24 +00:00
infra Roll recipe dependencies (trivial). 2023-03-29 01:57:50 +00:00
io_uring bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
jail tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
kernel_cmdline
kernel_loader crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
kvm vm_memory: Convert GuestMemory::with_regions to use struct argument 2023-03-29 00:52:24 +00:00
kvm_sys hypervisor: Add get_xsave and set_xsave support to x86. 2023-03-03 00:30:04 +00:00
libcras_stub devices: snd: Use PCM device client_type and stream_type for CRAS 2023-03-02 06:22:40 +00:00
linux_input_sys crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
logo
media media: cros-codecs: vaapi: factorize job management code of submit_picture 2023-03-02 12:34:43 +00:00
metrics metrics: Add missing process types 2023-02-22 20:01:38 +00:00
net_sys
net_util base: fix unsafe overlapped read/write marked safe. 2023-03-14 18:42:38 +00:00
power_monitor tree-wide: apply nightly rustfmt 2023-03-27 21:30:45 +00:00
prebuilts prebuilds/testvm: Retry downloads 2023-03-09 23:04:20 +00:00
proto_build_tools proto_build_tools: dont fail silently 2023-01-31 18:03:00 +00:00
protos Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
qcow_utils Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
resources resource: system_allocator: introduce GPE allocator 2023-02-06 22:02:37 +00:00
rutabaga_gfx rutabaga_gfx: gfxstream: enable stronger versioning 2023-03-28 00:32:23 +00:00
sandbox vhost-user: snd: Implement Windows broker & device setup 2023-02-28 21:34:01 +00:00
serde_keyvalue
src Devices: BAR reprogram for virtio-pci devices 2023-03-29 04:01:30 +00:00
swap swap: add trim command 2023-03-29 01:22:02 +00:00
system_api
tests Enable parallel execution of plugin and e2e tests 2023-01-26 20:38:57 +00:00
third_party crosvm: Convert DataInit to zerocopy 10/n 2023-03-24 18:12:38 +00:00
tools tools: Add PGO support 2023-03-29 00:14:01 +00:00
tpm2 Add conditional compilation for unix-only crates 2023-01-19 21:21:59 +00:00
tpm2-sys Uprev the libtpm2 to 96017dcdb110 2023-03-07 04:05:49 +00:00
tube_transporter crosvm: Uprev rust toolchain and dev container 2023-02-08 20:26:30 +00:00
usb_sys
usb_util crosvm: Partially convert DataInit to zerocopy (2/n) 2023-02-07 23:08:23 +00:00
vfio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vhost vm_memory: Convert GuestMemory::with_regions to use struct argument 2023-03-29 00:52:24 +00:00
virtio_sys bindgen: update kernel bindings to Linux 6.1 2023-02-23 21:31:44 +00:00
vm_control Devices: BAR reprogram for virtio-pci devices 2023-03-29 04:01:30 +00:00
vm_memory vm_memory: guest_memory: Add MemoryRegionOptions 2023-03-29 00:52:24 +00:00
win_audio devices: virtio: snd: Implement file backend for VirtioSnd 2023-03-21 07:46:05 +00:00
win_util base: move read/write wrappers to their own module. 2023-03-14 18:24:44 +00:00
x86_64 arch: Create GuestMemory with MemoryRegionOptions 2023-03-29 00:52:24 +00:00
.dockerignore
.envrc Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitignore Automatically register tools/ on PATH 2023-03-03 00:33:15 +00:00
.gitmodules
.rustfmt.toml
ARCHITECTURE.md jail: create jail crate from jail_helpers.rs 2023-02-14 00:24:55 +00:00
Cargo.lock hypervisor: Allow for hypervisor-specific DT additions 2023-03-29 00:52:24 +00:00
Cargo.toml aarch64: MTK GenieZone hypervisor enablement as Crosvm backend 2023-03-22 18:04:47 +00:00
CONTRIBUTING.md book: Reviewed CONTRIBUTING.md 2023-03-03 02:28:37 +00:00
DIR_METADATA
LICENSE
mypy.ini
OWNERS
OWNERS_COUNCIL
PRESUBMIT.cfg
pyproject.toml
README.chromeos.md
README.md
rust-toolchain rust-toolchain: Add llvm-tools-preview 2023-02-10 20:47:41 +00:00

crosvm - The ChromeOS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the ChromeOS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on ChromeOS devices.

Logo