This repository has been archived by the owner on May 12, 2021. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changes: Virtual Machine Dynamic Resizing With 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and memory hot plug as well. This allows to dynamically resize Cloud Hypervisor guests which is needed for e.g. Kubernetes related use cases. The memory hot plug implementation is based on the same framework as the CPU hot plug/unplug one, i.e. hardware-reduced ACPI notifications to the guest. Next on our VM resizing roadmap is the PCI devices hotplug feature. Multi-Queue, Multi-Threaded Paravirtualization We enhanced our virtio networking and block support by having both devices use multiple I/O queues handled by multiple threads. This improves our default paravirtualized networking and block devices throughput. New Interrupt Management Framework We improved our interrupt management implementation by introducing an Interrupt Manager framework, based on the currently on-going rust-vmm vm-device crates discussions. This move made the code significantly cleaner, and allowed us to remove several KVM related dependencies from crates like the PCI and virtio ones. Development Tools In order to provide a better developer experience, we worked on improving our build, development and testing tools. Somehow similar to the excellent Firecracker's devtool, we now provide a dev_cli script. With this new tool, our users and contributors will be able to build and test Cloud Hypervisor through a containerized environment. Kata Containers Integration We spent some significant time and efforts debugging and fixing our integration with the Kata Containers project. Cloud Hypervisor is now a fully supported Kata Containers hypervisor, and is integrated into the project's CI. Log: 62ccccc vmm: Make sure to retry creating the VM on EINTR 671b49b build(deps): bump vm-memory from `d6229fc` to `4237db3` e5b7fff build(deps): bump micro_http from `1eb80f8` to `ab44474` da2b3c9 vm-device: interrupt: Remove InterruptType dependencies and definitions 84fc807 interrupt: Interrupt manager split 56d7c04 vm-virtio: vsock: Don't return error when epoll_wait is interrupted 6e6b2b8 scripts: Check the Rust formatting is valid 705f271 scripts: dev_cli: Pass unit and integration test args to cargo test bc053f1 main: Ignore error on log writing 91739be main: Add help info for block-backend ae6cf4c tests: integration: Add memory overhead test 7cb61d3 main: Don't panic (by calling .expect()) if writing to the log fails 880a57c vmm: Remove VmInfo struct 07bc292 vmm: device_manager: Get VmFd from AddressManager 6411c3a vmm: device_manager: Use MemoryManager to get guest memory 066fc6c vmm: device_manager: Get VM config from the struct member 77ae3de vmm: device_manager: Make legacy device addition a method 599275b vmm: device_manager: Make ACPI device creation a method b8c1b2e vmm: device_manager: Make console creation a method b5440e2 vmm: device_manager: Make virtio device creation functions methods e90c6f3 vmm: device_manager: Make make_virtio_devices a method dbc09ad vmm: device_manager: Make add_vfio_devices a method d9e1c2c vmm: device_manager: Make add_virtio_pci_device a method aaa5e2e vmm: device_manager: Make add_virtio_mmio_device a method 2987476 vmm: device_manager: Make add_pci_devices and add_mmio_devices methods 3dbae42 vmm: device_manager: Only add MemoryManager to I/O bus on ACPI builds 68fa97e vmm: device_manager: Always embed MemoryManager in the struct 789a39a ci: Add MQ support in the test cases 99da1df vhost-user-blk: Add MQ support in backend 1038a07 vhost-user-blk: Device support multiple queues 839f3a7 build(deps): bump serde_json from 1.0.45 to 1.0.46 652b603 vfio: Use the vfio-binding FAM wrappers 275cb5c scripts: dev_cli: Add clean command support 8676759 README: Basic dev_cli documentation 76087f1 script: cargo: Improve the cargo tests db6f894 scripts: Add container based development script 31c3685 build(deps): bump micro_http from `e5ef374` to `1eb80f8` 8dfb79e build(deps): bump vm-memory from `df6207f` to `d6229fc` e99b640 build(deps): bump regex-syntax from 0.6.13 to 0.6.14 92b3764 build(deps): bump openssl-sys from 0.9.53 to 0.9.54 de91c30 build(deps): bump micro_http from `9e68aa4` to `e5ef374` aa4efdd ci: Update kernel related to virtio-iommu ac01ced vmm: Cleanup list of PCI IDs related to virtual IOMMU 097cff2 vmm: Use virtio topology for virtio-iommu bac0d1e iommu: Implement virtio topology configuration 0c73ff8 iommu: Add topology structures db42cae vm-virtio: Handle special virtio-pci capability CAP_PCI_CFG db9f9b7 pci: Make self mutable when reading from PCI config space 655d9cd build(deps): bump smallvec from 1.1.0 to 1.2.0 74ab468 build(deps): bump backtrace from 0.3.42 to 0.3.43 1651cc3 build(deps): bump kvm-ioctls from 0.4.0 to 0.5.0 b4d04bd tests: Add CLI <-> API validation test for --disk changes 3c8cf09 docs: Update device model to clarify how to enable vhost-user-block 75e6762 vmm: Give deprecation warning for "--vhost-user-blk" syntax 969b5ee vmm: config: Add warning about specifying "wce" without "vhost-user" 12f4cd9 tests: Use "--disks" for vhost-user-block testing aeeae66 vmm: Support vhost-user-block via "--disks" 362942f build(deps): bump micro_http from `53cf1ba` to `9e68aa4` b5992fe build(deps): bump thiserror from 1.0.9 to 1.0.10 2c6f528 vmm: Give deprecation warning for "--vhost-user-net" syntax f322e92 docs: Update device model to clarify how to enable vhost-user-net 4888dd2 tests: Add CLI <-> API validation test for --net changes 8f096b8 tests: Use "--net" parameter for vhost-user-net setup a831aa2 vmm: Support vhost-user-net via "--net" e155e36 vm-virtio: Simplify virtio-fs configuration 8e48fc4 vm-virtio: Simplify virtio-blk configuration 8946a09 vm-virtio: Simplify virtio-net configuration 9efaff7 ci: Consolidate virtio-blk integration tests a33e834 ci: Add integration test for virtio-blk multiqueue support f5b53ae vm-virtio: Implement multiqueue/multithread support for virtio-blk 08e47eb vmm: Add num_queues and queue_size parameters to virtio-blk c4b3ed7 vm-virtio: Further factorization bce7627 vm-virtio: Define a separate macro alias for ctrl queue devices 2e2b1e4 vm-virtio: Remove the multiqueue argument from the pausable macro 2cb7ec0 vm-virtio: Pausable macro factorization improvements c06a827 vm-virtio: Rename epoll_thread to epoll_threads f648f28 vm-virtio: Make all virtio devices potentially multi-threaded ac8e4b9 build(deps): bump vm-memory from `8a606cd` to `df6207f` 45d43f9 build(deps): bump micro_http from `af25399` to `53cf1ba` 9174709 build(deps): bump arrayref from 0.3.5 to 0.3.6 90810a9 build(deps): bump micro_http from `1f931c6` to `af25399` 16af54e build(deps): bump signal-hook from 0.1.12 to 0.1.13 4ff972c build(deps): bump ssh2 from 0.6.0 to 0.7.1 3508440 build(deps): bump itoa from 0.4.4 to 0.4.5 0fa1e2c vmm: Handle mapping from devices regions through vm-memory 694da82 ci: Make the integration tests fail if images are not valid 0ea6406 build(deps): bump vm-memory from `beaf215` to `8a606cd` 148a9ed vmm: Fix map_err losing the inner error 0a7bcc9 vm-virtio: Fix map_err losing the inner error 4587cc7 vhost_user_net: Fix map_err losing the inner error f444ef6 vfio: Fix map_err losing the inner error aa5ae76 src: Fix map_err losing the inner error cf25bd7 qcow: Fix map_err losing the inner error 0639659 net_util: Fix map_err losing the inner error f5a52ed arch: Fix map_err losing the inner error a34893a Revert "vmm: Move MemoryManager from I/O ports to MMIO region" 57ed006 Revert "devices, vmm: Move GED device to MMIO region" 6120d0f Revert "vmm: Move CpuManager device to MMIO region" 6475052 build(deps): bump micro_http from `1db1bbd` to `1f931c6` 980e03f vmm: Move CpuManager device to MMIO region 5e3c62d devices, vmm: Move GED device to MMIO region 03108fb vmm: Move MemoryManager from I/O ports to MMIO region 3202e8a vfio: Fix 64bits BAR size reading d5d4053 README.md: Update kernel instructions to use branch 0042f1d ioapic: Rely fully on the InterruptSourceGroup to manage interrupts 2dca959 ioapic: Create the InterruptSourceGroup from InterruptManager 52800a8 vmm: Create an InterruptManager dedicated to IOAPIC 29e668c cargo: Update Cargo.lock cafab9e main: Add some command line argument conflicts 611d13e main: Move logging arguments to their own group 8aabb90 main: Add "--vhost-user-blk" to the "vm-config" group bdb0ad9 tests: Use cloud-hypervisor binary for "--{net,block}-backend" 45fb918 main: Allow main binary to be used as net or block backend 7f73eeb vhost_user_block: Split launching backend into its own function 9fd187c vhost_user_net: Split launching backend into its own function b851887 main: Split current VMM running code into it's own function 1dd2451 vhost_user_block: Refactor vhost_user_block backend code into a new crate fb763c4 vhost_user_net: Refactor vhost_user_net backend code into a new crate dd82064 main: Delay converting command line to VM params e12179a bin: vhost_user_net: Rename "--backend" to "--net-backend" 3ede2dc bin: vhost_user_blk: Rename "--backend" to "--block-backend" 032b8e4 build(deps): bump micro_http from `ebc15f2` to `1db1bbd` 204f05f build(deps): bump serde_json from 1.0.44 to 1.0.45 7ee9eca build(deps): bump vmm-sys-util from 0.3.1 to 0.4.0 2034fc2 vmm: Fix LENGTH_OFFSET_HIGH of MemoryManager 503e047 build(deps): bump redox_users from 0.3.3 to 0.3.4 605fa83 ci: Add integration test for virtio-blk with 'direct=on' 925c862 vmm: device_manager: Add 'direct' support for virtio-blk 2bd90d9 ci: Add integration test for virtio-blk with 'readonly=on' fb79e75 vmm: device_manager: Add read-only support for virtio-blk 9ac06bf ci: Run clippy for each specific feature e91638e pci: Cleanup the crate from unneeded types 99f3929 pci: Simplify PciDevice trait a20b383 vmm: Always use a reference for InterruptManager bb8cd9e vmm: Use LegacyUserspaceInterruptGroup for acpi device 75e22ff vmm: Use LegacyUserspaceInterruptGroup for serial device 8d7c4ea vmm: Use LegacyUserspaceInterruptGroup for mmio devices 12657ef vmm: Fully implement LegacyUserspaceInterruptGroup f70c993 vmm: Add ioapic to KvmInterruptManager c9ea235 vmm: Add LegacyUserspaceInterruptGroup skeleton for legacy interrupts 2aabf58 vmm: Move irq_routes creation to specific MSI use case d34f31f vmm: Fix KvmInterruptManager when base is different from 0 e73cb1f vmm: Initialize InterruptManager sooner 9fab9bc build(deps): bump micro_http from `f77960b` to `ebc15f2` 9fe6ece build(deps): bump redox_users from 0.3.1 to 0.3.3 c27be84 build(deps): bump syn from 1.0.13 to 1.0.14 9731be1 build(deps): bump remain from 0.2.0 to 0.2.1 eedfb36 build(deps): bump micro_http from `6327290` to `f77960b` 3901a1d vmm: Log an error if VM resize fails 76d9bf2 vmm: Start memory slots at zero 0ab22fe vmm: Only generate GED event when new DIMM added 211786a vmm: Only generate GED interrupt when the number of vCPUs has changed 8049666 vm-virtio: Cleanup from kvm_iotcls and kvm_bindings dependencies 50a4c16 pci: Cleanup the crate from kvm_iotcls and kvm_bindings dependencies 4bb12a2 interrupt: Reorganize all interrupt management with InterruptManager 92082ad vmm: Fully implement interrupt traits 0f72712 vmm: Implement InterruptSourceGroup and InterruptManager skeleton 11d4d57 vm-device: Introduce InterruptManager and InterruptSourceGroup traits be421dc vm-virtio: Optimize vhost-user interrupt notification 1f029dd vm-virtio: Add notifier to VirtioInterrupt trait c396bac vm-virtio: Modify VirtioInterrupt callback into a trait ef7d889 vfio: Remove unused GSI routing functions 1a4b5ec msi: Set KVM routes from MsiConfig instead of VFIO f3c3870 msi: Create MsiConfig to embed MsiCap 1e5e028 msix: Perform interrupt enabling/disabling 19aeac4 msix: Remove the need for interrupt callback 3fe362e msix: Set KVM routes from MsixConfig instead of VFIO 2381f32 msix: Add gsi_msi_routes to MsixConfig 9b60fcd msix: Add VmFd to MsixConfig 86c760a msix: Add SystemAllocator to MsixConfig f77d2c2 pci: Add some KVM and interrupt utilities to the crate f5704d3 vmm: Move gsi_msi_routes creation to be shared across all PCI devices ed5459f ci: Add integration test for vhost_user_blk with 'direct' e0a8da2 vhost_user_blk: Add missing WCE property support c7e9056 vhost_user_blk: implement support for direct (O_DIRECT) mode a14aee9 qcow: Use RawFile as backend instead of File c5a656c vm-virtio: block: Add support for alignment restrictions e483cde docs: Update networking.md with multiple queue support 973eb16 src: Add multiple queue checking in vhost-user-net integration test 4885dc0 src: Update test_valid_vm_config_net with new option for virtio-net 652e7b9 vm-virtio: Implement multiple queue support for net devices 404316e vmm: Add multiple queue option and update config for virtio-net device 4ab88a8 net_util: Add multiple queue support for tap cf7e0cd vm-virtio: Add multiple queue handling with control queue 709f7fe vm-virtio: Implement control queue support for net devices d38787c vm-virtio: Add control queue support in net_util.rs 1ae7deb vm-virtio: Implement refactor for net devices and backend 6ae2597 vm-virtio: Create new module to abstract common parts for net devices 3485e89 vm-virtio: Stop delivering interrupt while NO_VECTOR 1324aa4 build(deps): bump proc-macro2 from 1.0.7 to 1.0.8 dcb6d02 build(deps): bump micro_http from `db75e88` to `6327290` cde2c44 build(deps): bump backtrace from 0.3.41 to 0.3.42 d8adf6a build(deps): bump micro_http from `52e21d0` to `db75e88` 14041e9 docs: Add memory resizing documentation 32506da docs: Document CPU unplug 8b500d7 deps: Bump vm-memory and linux-loader version 7310ab6 devices, vmm: Use a bit field for ACPI GED interrupt type d2d1248 tests: Add test combining memory and vCPU hotplug 2073007 tests: Add integration test for RAM hotplug 351058a resources: Add memory hotplug support to the kernel configuration 28c6652 vmm: Upon VmResize attempt to hotplug the memory 4e414f0 vmm: device_manager: Scan memory devices upon GED interrupt 284d5e0 vmm: Add memory hotplug ACPI entries to DSDT 8ecf736 vmm: device_manager: Add the MemoryManager to the I/O bus 1218765 vmm: memory_manager: Expose the slots details via an I/O port 9880a2a vmm: memory_manger: Add support for adding new memory to the VM 82fce5a vmm: Add support for resizing the memory used by the VM 78dcb18 vmm: device_manager: Store the type of notification in a local value 5da7c63 acpi_tables: aml: Add support for creating fields f5137e8 vmm, main: Add optional "hotplug_size" to --mem f1b6657 vmm: Make desired vCPUs optional in resize command 72b9e92 vmm: memory_manager: Further refactor memory region allocation 1af11a7 vmm: memory_manager: Refactor GuestMemoryMmap construction 281b99a build(deps): bump micro_http from `803c8fa` to `52e21d0` 0acabcd build(deps): bump libssh2-sys from 0.2.13 to 0.2.14 85f43c7 build(deps): bump micro_http from `edbff4c` to `803c8fa` 5788d36 vmm: Do not create virtio devices when missing a transport 41895d7 build(deps): bump rand from 0.7.2 to 0.7.3 85d1555 build(deps): bump micro_http from `0987cdc` to `edbff4c` 3430e20 build(deps): bump memchr from 2.2.1 to 2.3.0 7d85324 build(deps): bump constant_time_eq from 0.1.4 to 0.1.5 fc8bfe0 build(deps): bump backtrace from 0.3.40 to 0.3.41 fa34fae ci: Move to personal branch for virtiofsd f427d94 virtio-fs: Update virtiofs daemon parameters 345c922 build(deps): bump micro_http from `0bfaf39` to `0987cdc` b38beb6 build(deps): bump regex-syntax from 0.6.12 to 0.6.13 c2f6dfc vm-virtio: Fix VirtioDeviceType traits 9d775a1 build(deps): bump pnet from 0.23.0 to 0.25.0 70d80cc build(deps): bump pnet_sys from 0.23.0 to 0.23.1 f493d43 build(deps): bump vm-memory from `467eda6` to `218afdd` 2500d0a build(deps): bump micro_http from `2953365` to `0bfaf39` 279c4f9 build(deps): bump pnet_macros from 0.23.0 to 0.25.0 24cf15d vfio: Don't throw an error if a region cannot be found c2ae380 pci: Refine detection of BAR reprogramming 07bad79 pci: Fix detection of expansion ROM BAR reprogramming 0d2e38d build(deps): bump cc from 1.0.49 to 1.0.50 38468d3 vm-virtio: Improve virtio-console input processing e4c3401 vm-virtio: Don't waste a descriptor if not filled 7a3e6ca vm-virtio: Simplify virtio-console input processing ad223f2 fs: Use cache=none by default 84445aa vm-virtio: Implement multi-mapping for virtio-fs 143471b fs: Update mount command to mount virtiofs filesystem e1822cf vm-virtio: Implement VIRTIO_IOMMU_F_PROBE feature ae6f272 acpi: Introduce VIOT to support latest virtio-iommu implementation 4dbb33a resources: Update kernel config c56af8d ci: Use a temporary kernel branch before we override the current one d756844 build(deps): bump getrandom from 0.1.13 to 0.1.14 9d3f656 build(deps): bump cc from 1.0.48 to 1.0.49 f59665e build(deps): bump epoll from 4.0.1 to 4.1.0 9482ded build(deps): bump micro_http from `aec25f9` to `2953365` e4ea60d build(deps): bump rand from 0.7.0 to 0.7.2 44dd056 build(deps): bump remain from 0.1.5 to 0.2.0 091c9d9 build(deps): bump pnet from 0.22.0 to 0.23.0 d8c3912 build(deps): bump micro_http from `be97831` to `aec25f9` 1a28f64 build(deps): bump atty from 0.2.13 to 0.2.14 8f6cbf8 build(deps): bump vm-memory from `291dc2e` to `467eda6` 5a0d01c build(deps): bump blake2b_simd from 0.5.9 to 0.5.10 38c0d32 build(deps): bump syn from 1.0.12 to 1.0.13 134bcd8 tests: Use the workspace to unit test all the crates b6f6772 vhost_rs: Fix compile failure in tests cf1983c vhost_rs: Mark some broken tests ignored 32a39f9 vm-virtio: Fix broken write_base_regs() unit test b2589d4 vm-virtio, vmm, vfio: Store GuestMemoryMmap in an Arc<ArcSwap<T>> 5c0bb38 build(deps): bump vm-memory from `09c119f` to `291dc2e` b997130 build(deps): bump syn from 1.0.11 to 1.0.12 fda8a04 build(deps): bump vm-memory from `3ef06be` to `09c119f` 34e35c9 build(deps): bump anyhow from 1.0.25 to 1.0.26 95352db build(deps): bump vm-memory from `ec69de9` to `3ef06be` a551398 vmm: device_manager: Use MemoryManager to create KVM mapping 962dec2 vmm: memory_manager: Refactor KVM userspace mapping creation 7df8879 vmm: device_manager: Get device range from MemoryManager 61cfe3e vmm: Obtain sequential KVM memory slot numbers from MemoryManager 260cebb vmm: Introduce MemoryManager bcfe546 build(deps): bump vm-memory from `bb29ec8` to `ec69de9` f668603 ci: Fix flaky test_memory_mergeable_on test 1e3fd2f tests: Remove many redundant clones d5682cd vmm: device_manager: Rewrite if chain using match 21b88c3 vmm: cpu: Rewrite if chain using match e25a47b vmm: device_manager: Remove redundant clones 9fb1c46 vm-virtio: Remove unnecessary cloning deb3cbd arch_gen: Remove unused bootparam module 9701fde vm-virtio: Add connection handshake to vsock 5c4e172 ci: test the vhost-user-blk readonly function cee01ed vhost-user-blk backend: add readonly support 91549dd tests: Add integration test for CPU unplug a6878ac vmm: cpu: Implement CPU removal 7b3fc72 vmm: cpu: Notify guest OS that it should offline vCPUs 7e81b0d vmm: cpu: Create vCPU state for all possible vCPUs 156ea39 vmm: cpu: Only do ACPI notify on newly added vCPUs e8313e3 vmm: acpi: Refactor ACPI CPU notification 43d2e09 ci: Add unit tests to compare CLI and OpenAPI d139090 vmm: config: Derive Debug and PartialEq for configuration structures 93f5f6e vmm: config: Provide a default empty command line through OpenAPI 43bd0e5 main: Move VmParams creation into a dedicated function 17a167d main: Move default values preparation into a dedicated function 9c3a7dd main: Move clap::App creation into a dedicated function 11750ef build(deps): bump log from 0.4.8 to 0.4.10 dea5776 build(deps): bump serde from 1.0.103 to 1.0.104 7909f7a build(deps): bump serde_derive from 1.0.103 to 1.0.104 23150f8 tests: Throttle tests based on disk space d59fe4e ci: Add some time measurements to CI scripts fa0fdc6 cargo: Update Cargo.lock for the 0.4.0 release cec884e release: v0.4.0 6444e29 docs: Add CPU hot plug documentation a002093 build(deps): bump anyhow from 1.0.23 to 1.0.25 43f0478 build(deps): bump thiserror from 1.0.6 to 1.0.9 664431f vsock: vhost_user: vfio: Fix potential host memory overflow 1e97d14 README: Update for newer distribution support e8e21ae README: Update the --cpus command line examples a40a70a ci: Rely on latest virtiofsd version f0b7412 vmm: device_manager: Add all virtio devices to the migratable list 37557c8 vmm: vm: Implement the Pausable trait 9756fc2 vmm: cpu_manager: Implement the Pausable trait 35dd152 vmm: device_manager: Implement the Pausable trait a122da4 vm-virtio: vhost: Implement the Pausable trait for all vhost-user devices dae0b2e vm-virtio: Implement the Pausable trait for all virtio devices 35d7721 vmm: Convert virtio devices to Arc<Mutex<T>> 5450de0 cargo: Do not run fmt on anyhow's build code 0361df4 vm-device: Initial Migratable trait 36daf9c ci: Skip testing RFC or WIP PRs 64c5e3d vmm: api: Adjust FsConfig for OpenAPI 4bfd51c vmm: api: Match VhostUserBlkConfig defaults between CLI and HTTP API 1c2587f vmm: api: Match VhostUserNetConfig defaults between CLI and HTTP API 5e0bbf9 vmm: Don't factorize vhost-user configurations 793327c vmm: api: Make ConsoleConfig default match between CLI and HTTP API cc08c44 vmm: api: Make MemoryConfig default match between CLI and HTTP API 5a72225 vmm: api: Update CpuConfig name to match the internal name f7c215d cli: Fix default CPU argument 59ae01f ci: Cancel older builders on Jenkins c61104d vmm: Port to latest vmm-sys-util 4c92f89 ci: Add OpenAPI validation 93bd88e ci: Simplify travis.yml d42ef18 ci: Offload cargo tests to the worker node VM ee528ae vmm: api: Make FsConfig defaults match between CLI and HTTP API befd342 vmm: api: Make NetConfig defaults match between CLI and HTTP API eff78f7 resources: Prevent kernel config interactive shell from showing up 99e608c openapi: Fix schema f994665 vmm: Reduce the minimum IRQ constant ba59c62 vmm, devices: Remove hardcoded IRQ number for GED device ce1bd9c resources: turn on CONFIG_ACPI_REDUCED_HARDWARE_ONLY 0374c3d build(deps): bump ssh2 from 0.5.0 to 0.6.0 aa94e9b Revert "vmm: api: Modify FsConfig to be OpenAPI friendly" 9b1ba14 vmm: Delegate device related ACPI DSDT table work to DeviceManager 60e6609 vmm: Delegate CPU related ACPI tables to CpuManager defc5dc vmm: api: Modify FsConfig to be OpenAPI friendly 66e00ce ci: Extend VFIO integration test 59d0171 vmm: Remove kernel based IOAPIC handling from the device manager afea6a1 vmm: Stop initialising kernel based IOAPIC/PIC 9b1cb96 vmm: Remove pin based interrupt setup for virtio devices 72fb687 vmm: Check for required capabilities 904b1ea build(deps): bump unicode-width from 0.1.6 to 0.1.7 fcf92d8 tests: Add rebooting to the CPU hotplug test f98b16f vmm: Update the configuration to preserve hot-plug CPUs after reboot 1722708 vmm: Switch to storing VmConfig inside an Arc<Mutex<>> c063bb8 vmm: acpi: Make GED interrupt edge triggered e1af17d vmm: Restore tty to canonical mode when SIGTERM or SIGINT received 44d026b build(deps): bump serde_json from 1.0.43 to 1.0.44 a1285ea build(deps): bump cc from 1.0.47 to 1.0.48 23929f4 vfio: Don't override MSI Enable bit through VFIO ioctl 1dfd60b vfio: use correct flags to disable interrupts 5208ff8 vmm: Detect and handle AMD SME (Secure Memory Encryption) dcfd6ff build(deps): bump serde_json from 1.0.42 to 1.0.43 08258d5 vfio: pci: Allow multiple devices to be passed through 4115fa8 vfio: pci: Update irqfd registration 1379abb pci: msi: Fix MSG_CTL update through 32 bits write c81e808 docs: Update instructions regarding virtiofsd 17badfb vmm: cpu: Call vcpu configure() on the vCPU thread 1350306 api: Fix OpenAPI specification entries e1ff142 tests: Remove MSI only test from test_serial_off e083064 tests: Add integration test for hotplugging vCPUs 66a31c1 vmm: acpi: Upon GED interrupt notify on all vCPUs 48bf141 vmm: Trigger a hotplug device notification when resizing b629727 vmm: acpi: Add a CTFY method to notify on all CPU objects ae9359c vmm: acpi: Create the CPU entries in the DSDT for all vCPUs 791ca33 vmm: device_manager: Add ability to notify via GED device 623755c devices: Add ACPI GED device 7ad68d4 vmm: device_manager: Allocate I/O port for ACPI shutdown device 86339b4 vmm: Add HTTP API to resize the VM e7d4eae vmm: cpu: Add support for starting more vCPU threads 0ef9999 vmm: cpu: Support only partially configuring the vCPU c8b3041 vmm: openapi: Update OpenAPI for CpuConfig struct b6801e3 vmm: cpu: Refactor vCPU thread starting 66d5163 vmm: cpu: Encapsulate vCPU state into its own struct ea19bb0 tests: Add a test to check that the boot vs max cpus work 1bbe48b vmm: acpi: Mark non-boot vCPUs as disabled in the MADT table 4bc8635 tests: Use new "--cpus" syntax for integration tests 82bc07c vmm: Add boot and max vCPU handling to command line parser 7543e00 vmm: Use new CpuManager accessor to get boot vCPUs df09078 vmm: cpu: Introduce concept of maximum vs boot vCPUs in CpuManager 669d9a8 vhost_user_backend: fix memory region offsetting d378da6 build(deps): bump vcpkg from 0.2.7 to 0.2.8 b1cfdc7 build(deps): bump syn from 1.0.9 to 1.0.11 0f21781 cargo: Bump the kvm and vmm-sys-util crates ca97385 build(deps): bump libc from 0.2.65 to 0.2.66 f7dace1 build(deps): bump syn from 1.0.8 to 1.0.9 861d902 acpi_tables: aml: Add support for binary operators f787139 build: Reorder travis build commands to reuse build assets 338beeb misc: Update locations to point to new kernel fork 4de04e8 vfio-pci: unmap regions when dropping VfioGroup 62fa595 cargo: set cloud-hypervisor as default crate ab16af2 openapi: make context ID vsock int64 9fd5ea4 build(deps): bump signal-hook from 0.1.11 to 0.1.12 d6d1074 build(deps): bump serde_derive from 1.0.102 to 1.0.103 4cff045 build(deps): bump serde_json from 1.0.41 to 1.0.42 0ae9610 build(deps): bump serde from 1.0.102 to 1.0.103 0274b79 build(deps): bump signal-hook-registry from 1.1.1 to 1.2.0 edd59a0 build(deps): bump remain from 0.1.4 to 0.1.5 c718225 build(deps): bump openssl-sys from 0.9.52 to 0.9.53 360f063 Revert "vfio: use correct flags to disable interrupts" 8fe5a43 tests: Only setcap on test binary f1c7f0c ci: Add integration test for vhost_user_fs daemon 50b0e58 vhost_user_fs: Allow specific shared directory to be specified ba17758 src: Add vhost-user-fs daemon 5c12802 vhost_user_fs: Add Server structure to consume FileSystem implementation e1fccc3 vhost_user_fs: Add virtio descriptor helper traits 5f7935f vhost_user_fs: Add file traits to handle writing volatile memory e33ccb0 vhost_user_fs: Implement FileSystem trait for Passthrough 1b76c0a vhost_user_fs: Add FileSystem trait 1e65bda vhost_user_fs: Add multikey module cd1684b vhost_user_fs: Add FUSE definitions 03361a6 vhost_user_fs: Add new crate 8845326 vm-virtio: Introduce DescriptorChain iterator 3d6b545 ci: Make the integration test binary run with same caps ac118c9 ci: Parse the smaps file with Rust bdb7bcd ci: Add integration test for mergeable memory f979380 vmm: Mark guest persistent memory pages as mergeable 0f9afc3 vmm: Add mergeable=on|off option to --pmem flag e4e8062 vmm: Mark guest RAM pages as mergeable 880f62b vmm: Add mergeable=on|off option to --memory flag 0213177 Jenkinsfile: Add timeout for build d642060 Jenkinsfile: Switch to pipeline (declarative format) 1d852e9 vmm: Provide vmm version to start_vmm_thread a518651 http: api: implement vmm.ping 348a1bc vmm: cpu: Allocate I/O port for the CPU manager 07cdb37 vmm: cpu & acpi: Query CPU manager for CPU status 5faf8b7 vmm: acpi: Add an _MAT for the CPU devices containing a LAPIC e51ebe0 acpi_tables: Add support for Buffer objects 1da0ff3 vmm: cpu: Add the CpuManager onto the IO bus 39a1b8f acpi_tables: aml: Add support for calling methods d5bb078 acpi_tables: aml: Add support for while loops 89f0db2 acpi_tables: aml: Add support for device notification d6696e1 acpi_tables: aml: Add support for mutexes 3d70ce9 acpi_tables: aml: Add "if" with local variables and arguments d06623f acpi_tables: aml: Add support for OpRegion 93ee6f5 acpi_tables: aml: Add support for field definitions 4b5ce23 acpi_tables: Add PkgLength variant that does not include itself 50c8335 vmm: device_manager: Expose the SystemAllocator 1ac1231 vmm: Encase CpuManager within an Arc<Mutex<>> d7dc1a9 pci: don't cleanup msi/msix interrupts repeatedly 66fde24 vfio: use correct flags to disable interrupts 8ec89bc misc: Update to new repository locations 64305da docs: device_model: Fix formatting error b55d75e docs: Add device model f0e6184 vmm: device_manager: Use consistent naming when adding devices a2ee681 vmm: device_manager: Add an MMIO devices creation routine 79b8f8e vmm: device_manager: Add a PCI devices creation routine 5087f63 vmm: device_manager: Add an IOAPIC creation routine ce1765c vmm: device_manager: Add an ACPI device creation routine cfca275 vmm: device_manager: Add a legacy devices creation routine 4b469b9 vmm: device_manager: Add a console creation routine e1281b5 build(deps): bump cast from 0.2.2 to 0.2.3 fa0d573 build(deps): bump arc-swap from 0.4.3 to 0.4.4 d9695a0 docs: fs: Update virtio-fs documentation 4d0872d build(deps): bump vm-memory from `8d6ca35` to `bb29ec8` c204d54 docs: networking: Fix typo in hyperlink b930b3f vmm: api: Specify which integers are 64 bit wide 6af2f57 vmm: api: Fix the vm.info response payload 2dcd36f build(deps): bump synstructure from 0.12.2 to 0.12.3 6958ec4 vmm: Move CPU management code to its own module 7b77189 build(deps): bump vm-memory from `366a907` to `8d6ca35` 3dde848 vmm: api: Update our OpenAPI document 96aa244 vmm: http: Convert to micro_http HttpServer f34ace7 vmm: http_endpoint: Do not sent 200 status code when our body is empty ede2626 API: HTTP: change response content type to JSON 7498647 cargo: Update micro_http fa94635 build(deps): bump syn from 1.0.7 to 1.0.8 ff36fa9 vm-virtio: Replace use of deprecated std::mem::uninitialized 3c715da vmm: Fix rustfmt failure by removing extra ";" 73b4668 acpi_tables: Fix rustfmt failure by removing extra ";" a1a5fe0 vmm: Split CPU management into it's own struct 0319a4a arch: vmm: Move ACPI tables creation to vmm crate c3eaa41 ci: use the new vhost-user-blk backend for integration tests ceafd4c vhost_user_backend: remove ownership check in set_features() 5870452 src: add vhost-user-blk backend 3a3dd00 vm-virtio: export block::Request and related funcs/structs 08bebaa vhost_user_backend: move protocol_features to the backend 85e936d vhost_rs: fix VhostUserConfig payload management 2cc723f build(deps): bump blake2b_simd from 0.5.8 to 0.5.9 d1f03ba build(deps): bump pnet_macros from 0.22.0 to 0.23.0 ae5e8c4 build(deps): bump cc from 1.0.46 to 1.0.47 8cd45e4 build(deps): bump synstructure from 0.12.1 to 0.12.2 c999ea6 arch: x86_64: acpi: Add basic processor details 64368a1 acpi_tables: aml: Add support for Method and Return 08d6386 acpi_tables: aml: Add support for strings 5cd4f5d vmm: Release the old vm before build a new one b3388c3 vmm: device_manager: Ensure I/O ports are allocated 2d25862 build(deps): bump pkg-config from 0.3.16 to 0.3.17 ce386ba tests: Use release build for integration tests 87e9ce6 build(deps): bump num_cpus from 1.10.1 to 1.11.0 5694ac2 vm-virtio: Create new VirtioTransport trait to abstract ioeventfds 3fa5df4 vmm: Unregister old ioeventfds when reprogramming PCI BAR 587a420 cargo: Update to the latest kvm-ioctls version c7cabc8 vmm: Conditionally update ioeventfds for virtio PCI device de21c9b pci: Remove ioeventfds() from PciDevice trait 3be95db pci: Remove KVM dependency 296f2e1 ci: Add integration test for PCI BAR reprogramming d6c68e4 pci: Add error propagation to PCI BAR reprogramming 3e819ac pci: Use a weak reference to the AddressManager 149b61b pci: Detect BAR reprogramming 04a449d pci: Pass DeviceRelocation to PciBus e93467a vmm: Implement DeviceRelocation trait 4f8054f pci: Store the type of BAR to return correct address b51a9e1 pci: Make PciBarRegionType implement PartialEq 8746c16 vmm: Create AddressManager to own SystemAllocator 1870eb4 devices: Lock the BtreeMap inside to avoid deadlocks 733e636 devices: Allow for bus range removal and update e536f88 vfio: Implement move_bar() from PciDevice trait c865f93 pci: Extend PciDevice trait with move_bar() function 3e37f59 pci: Add new DeviceRelocation trait 5cc1e73 Fix Cargo.lock 05eb567 build: Ensure there is a release build artifact for travis to upload 75bf240 cargo: Move to 0.3.0 be6a197 build(deps): bump serde_derive from 1.0.101 to 1.0.102 f27893f build(deps): bump vm-memory from `8669369` to `366a907` 696f6ca build(deps): bump signal-hook from 0.1.10 to 0.1.11 1f7f484 build(deps): bump serde from 1.0.101 to 1.0.102 4e0b5e8 build(deps): bump syn from 1.0.6 to 1.0.7 c159515 build(deps): bump syn from 1.0.5 to 1.0.6 2633636 build(deps): bump getrandom from 0.1.12 to 0.1.13 7c2c4fb acpi_tables: aml: Rename to_bytes() to to_aml_bytes() ad60fe1 arch: x86_64: acpi: Mark 64-bit device area uncacheable 025f1f9 arch: x86_64: acpi: Remove 16-bit PCI range 555ac68 arch: x86_64: acpi: Generate DSDT programatically dd539df acpi_tables: sdt: Add ability to add to the table from a slice c76fd6d acpi_tables: aml: Implement AML Zero, One, Ones 9269e40 acpi_tables: aml: Add support for device and scope e1e0ac2 acpi_tables: aml: Add support for creating IO and interrupt resources 08aff4e acpi_tables: aml: Add support for address spaces c4c3540 acpi_tables: aml: Add resource templates and Memory32Fixed 03d8cdc acpi_tables: aml: Generate EISA name IDs 3cb73b3 acpi_tables: aml: Add Package support bf0d0d9 acpi_tables: aml: Add support for named definitions 5a70764 acpi_tables: aml: Implement numbers a4ce596 acpi_tables: aml: Add support for generating AML name paths 1387ac5 ci: Add cargo audit to the travis pipeline de9eb3e Bump vmm-sys-utils to 0.2.0 dc951af build(deps): bump c2-chacha from 0.2.2 to 0.2.3 3dff551 build(deps): bump ppv-lite86 from 0.2.5 to 0.2.6 4783fe7 build(deps): bump autocfg from 0.1.6 to 0.1.7 e10413b build(deps): bump proc-macro2 from 1.0.5 to 1.0.6 317d754 build(deps): bump ssh2 from 0.4.0 to 0.5.0 eff1ece build(deps): bump openssl-sys from 0.9.51 to 0.9.52 05c7130 ci: Update ClearLinux image 8e8a7b6 release-notes: v0.3.0 release 2d7bfdd build(deps): bump libc from 0.2.64 to 0.2.65 5822969 docs: Update instructions to create custom ClearLinux image defc339 docs: iommu: Improve VM boot time and performance efbafdf vm-virtio: Allow 2MiB mappings 2b60452 build(deps): bump backtrace from 0.3.39 to 0.3.40 e8a25c2 build(deps): bump backtrace from 0.3.38 to 0.3.39 b8be1dc build(deps): bump backtrace-sys from 0.1.31 to 0.1.32 8363159 build(deps): bump cc from 1.0.45 to 1.0.46 78e2f7a api: http: handle cpu according to openapi 205b8c1 api: http: make consistent api and implementation 3acf9df vfio: Don't map guest memory for VFIO devices attached to vIOMMU 63c30a6 vmm: Build and set the list of external mappings for VFIO c65ead5 vm-virtio: Trigger external map/unmap from virtio-iommu 837bcbc vfio: Create VFIO implementation of ExternalDmaMapping 3598e60 vfio: Add a public function to retrive VFIO container 34bb317 vm-device: Add new crate for virtio and VFIO agnostic traits 9085a39 vmm: Attach VFIO devices to IORT table 5fc3f37 vmm: Add iommu=on|off option for --device 3bb51d4 build(deps): bump libc from 0.2.62 to 0.2.64 cc72ed1 vhost_user_net: Propagate errors correctly 8663b42 vhost_user_net: Remove unnecessary checks for unconfigured memory df336ad vhost_user_net: Remove debugging println! messages 9e78c2e build(deps): bump ryu from 1.0.1 to 1.0.2 786e339 api: http: Fix openpi schema. 90d1083 build(deps): bump syn from 1.0.3 to 1.0.5 5ca068a build(deps): bump proc-macro2 from 1.0.1 to 1.0.5 2a0ba7a vmm: vm: Add state validation unit test 097b306 vmm: vm: Verify that state transitions are valid ef090cf build(deps): bump ryu from 1.0.0 to 1.0.1 db3ece8 build(deps): bump failure from 0.1.5 to 0.1.6 af41d6f main: Add VM pause/resume test d2d3abb vmm: Rename Booted vm state to Running dbbd04a vmm: Implement VM resume 4ac0cb9 vmm: Implement VM pause 80c3fd9 ci: Allow enough time for L2 VM to boot 37a7000 ci: Make sure VFIO test don't conflict with Azure private IP 6e9e24e ci: Extend virtio-iommu integration test 1fc8ee9 ci: Remove QEMU dependency for nested VFIO test cb59f82 scripts: Use virtio-fs-virtio-iommu branch as custom kernel 688ec0e resources: Update kernel config 8e018d6 vfio: Move vfio-bindings to crates.io c446b9d Cargo: Move virtio-bindings to crates.io 6df7cd0 build(deps): bump openssl-sys from 0.9.50 to 0.9.51 3a04db5 build(deps): bump arrayvec from 0.4.11 to 0.4.12 ad7d02c build(deps): bump nodrop from 0.1.13 to 0.1.14 1298b50 vmm: Manage the exit and reset behaviours from the control loop a95fa1c vmm: api: Add a VMM shutdown command 228adeb vmm: Unreference the VM when shutting down 14eb071 Cargo: Move to crates.io vmm-sys-util 5652cc7 README: Remove wrong statement about the firmware 2c50c96 docs: Explain how to use the virtual IOMMU 46848fd ci: Add integration test for virtio-iommu b918220 vmm: Support virtio-pci devices attached to a virtual IOMMU 278ab05 vmm: Add iommu=on|off option for --vsock 32d07e4 vmm: Add iommu=on|off option for --console 63869bd vmm: Add iommu=on|off option for --pmem fb47693 vmm: Add iommu=on|off option for --rng 20c4ed8 vmm: Add iommu=on|off option for --net 4b8d7e7 vmm: Add iommu=on|off option for --disk 6e0aa56 vmm: Add iommu field to the VmConfig 03352f4 arch: Create ACPI IORT table f40adff vm-virtio: Add virtio-iommu support 0acb1e3 vm-virtio: Translate addresses for devices attached to IOMMU 6566c73 vm-virtio: Add IOMMU support to virtio-vsock 9ab00dc vm-virtio: Add IOMMU support to virtio-rng ee1899c vm-virtio: Add IOMMU support to virtio-pmem 392f1ec vm-virtio: Add IOMMU support to virtio-console 9fad680 vm-virtio: Add IOMMU support to virtio-net 9ebb1a5 vm-virtio: Add IOMMU support to virtio-blk 85e1865 vm-virtio: Implement reset() for vhost-user-fs 4b1328a vm-virtio: Implement reset() for vhost-user-net 8225d4c vm-virtio: Implement reset() for virtio-console dac7737 vm-virtio: Implement reset() for virtio-vsock 3e750de vm-virtio: Implement reset() for virtio-pmem eb91bc8 vm-virtio: Implement reset() for virtio-rng 59b4aab vm-virtio: Implement reset() for virtio-net 8288cb2 micro_http: Use Firecracker version 2a46613 vmm: api: Set the HTTP response header Server field fc5c210 micro_http: Set the response headers Server value 8dbb16d main: Add a simple HTTP API integration test 7abbad0 vmm: Be more idiomatic when calling into the VMM API 7328ecd vmm: Implement the /api/v1/vm.delete endpoint f9daf2e vmm: Factorize the vm boot and shutdown code 43b3642 vmm: Clean Error handling up 4275824 vmm: Implement the /api/v1/vm.info endpoint 27af983 vmm: Track the VM state b703441 vmm: Handle the missing VM error 7e0cb07 vmm: Only build a new VM when booting it 9a93f4f micro_http: Fix clippy warning c505cfa vmm: Implement the VM HTTP endpoint handlers 8a5e47f vmm: Implement the shutdown and reboot API 46cde1a vmm: Rename the VM start and stop operations to boot and shutdown ce0b475 vmm: Move the VM creation and startup helpers to the api module f674019 vmm: {De}serialize VmConfig f2de4d0 vmm: config: Make the cmdline config serializable 6a722e5 vmm: config: Make VhostUser configs serializable aa31748 vmm: Start the HTTP server thread b14fd37 vmm: Make --kernel optional f27aa21 main: Add API socket option fe5561d main: Group cli options logically 2371325 vmm: api: Add HTTP server e50f441 micro_http: Import Firecracker HTTP 1.x implementation 8916dad vmm: api: Add cloud-hypervisor OpenAPI documentation 1b66a2f build(deps): bump serde_json from 1.0.40 to 1.0.41 8ea4145 devices, vmm: Add legacy CMOS device 47367eb build(deps): bump openssl-sys from 0.9.49 to 0.9.50 df3e5c8 tests: Add support for integration testing Ubuntu "eoan" 8ec6cda ci: Do not look for vubridge to decide if qemu must be built 8c33eb3 src: Add integration test for vhost-user-net backend f6d1a9d src: Add vhost-user-net backend d724511 vm-virtio: Add set_protocol_features in vhost-user-net 9ff4206 vhost_user_backend: Fix clippy issues db15181 Cargo.toml: Add workspace config changes 9356af8 arch: Mark the PCI MMCONFIG region as reserved in the E820 tables 6a4a931 arch: acpi: Reserve the PCI MMCONFIG region 038f198 arch: acpi: Fix off-by-one error in size of PCI device region 833a3d4 pci, vmm: Expose the PCI bus for configuration via MMIO c0ca3b6 arch: acpi, layout: Correctly calculate and expose PCI MMCONFIG area a9eb352 arch: acpi: Patch the 32-bit PCI device area in the APCI table 09392f0 vhost_user_backend: Fix remaining issues 527dd68 vhost_user_backend: Update vmm_va_to_gpa with adding offset 4a1af7f vhost-user-backend: Correct error handling in run c430951 vhost-user-backend: Remove one checking from set_features 347611b vhost_user_backend: Pass a backend that can be modified f14ab87 vhost_user_backend: Give access to the EpollVringHandler cfc8c39 vhost_user_backend: Provide some default trait implementations 1aab372 vhost_user_backend: Make the backend a server c1b26b1 vhost_user_backend: Don't process disabled queues d80ac43 vhost_user_backend: Remove useless started field 5f07692 vhost_user_backend: Allow for proper error propagation 36de390 vhost_user_backend: Make some trait functions as mutable d4f7f73 vhost_user_backend: Move to a per-queue RwLock 4ed8189 vhost_user_backend: Replace Mutex with RwLock when possible 2e2cad9 vhost_user_backend: Add new crate b5ee921 vmm, devices: Use APIC address constant 162791b vmm, arch: Use IOAPIC constants from layout in DeviceManager 8207b2e arch: Move addresses for GDT and IDT tables to layout module a045516 vmm: Use layout constant for kernel command line 1bc4750 arch: Move initial page table addresses to layout module 5ba61f6 arch: Move address of MPTABLE to layout module 6d6e290 arch: Move APIC and IOAPIC addresses into layout 0e7a1fc arch, vmm: Start documenting major regions of RAM and reserved memory f63cb85 net_util: Implement fmt::Display for MacAddr ff1cb11 arch: Use if-let notation df2516f vhost_rs: Add clippy override 2ae3919 vm-virtio: Fix formatting 8188074 main: Start the VMM thread e235c6d vmm: Add VM creation and startup helpers 151f96e vmm: Add a VMM thread startup routine 2f1ff23 vmm: (Re-)Introduce a VMM structure 4671a58 vmm: Move the EpollContext implementation to lib 03ab683 vmm: Introduce Cloud Hypervisor IPC 6710a39 vmm: Pass the exit and reset fds to the vm creation method feb1c33 vmm: Add a VM config getter 47167a6 vmm: Add a VM console handling method ea7abc6 vmm: Add a VM stop method e6ef9ec vmm: Move the tty setting to the VM start routine 2e9d815 vmm: Use a reference counted VmConfig when creating a new VM 2e0f1c2 README: Update Slack invitation link e869283 build(deps): bump cfg-if from 0.1.9 to 0.1.10 bdfd1a3 vmm: Remove the Vmm structure 9c5135d vmm: Simplify the VM start flow b79c1f7 vmm: Derive the clone trait for VmConfig acc60b0 vmm: Make VsockConfig owned 3dc7aff vmm: Make vhost-user configuration owned 5f8a62f vmm: Make DeviceConfig owned 3613723 vmm: Make ConsoleConfig owned 79a02f9 vmm: Make PmemConfig owned 00674cd vmm: Make FsConfig owned 5323da0 vmm: Make RngConfig owned 0688bec vmm: Make NetConfig owned 675e463 vmm: Make DiskConfig owned 036890e vmm: Make KernelConfig owned 9c5bfb8 vmm: Make MemoryConfig owned dbff0e9 build(deps): bump backtrace from 0.3.37 to 0.3.38 0c8f9d2 ci: Boot from vhost-user-blk with hypervisor-fw f06b2aa vm-virtio: vhost-user: Set the right vring size a2f3da3 build(deps): bump arc-swap from 0.4.2 to 0.4.3 2cd406b vm-virtio: Fix virtio-pci BAR type 29b3848 ci: Add a test to validate the VM can be booted from vhost-user-blk d723b7d vm-virtio: vhost-user-blk: Add support for reset 0a229ef ci: Extend vhost-user-blk test to validate the content 6b06cec ci: add test case for vhost-user-blk 360980d vhost-user-blk: enable write_config for WCE 39083d7 vhost-user-blk: make read_config work a949ab2 main: add arguments entry for vhost-user-blk 4164853 vmm: add vhost-user-blk support c7559bb config: make error definition common 397d388 vm-virtio: Add vhost-user-blk implementation b232de9 vhost_rs: Add INFLIGHT_SHMFD protocol feature 927148d vhost_rs: Fix GET_CONFIG command c347f84 Revert "vhost_rs: add config messge support" 0a0c735 virtio-bindings: Rely on the upstream crate from rust-vmm 5f0337c tests: Add a "huge" memory test b488d48 arch: x86_64: Fix E820 table for RAM 5b3ca78 vmm: Use the full host physical address range 180e6d1 vm-virtio: Allocate BARs for virtio-block devices in 32-bit hole f0360c9 arch: acpi: Set the upper device range based on RAM levels f9b0875 arch: acpi: Correct range for the 32-bit device hole bf4f3db build(deps): bump vmm-sys-util from `07ef2e2` to `27e7ff1` eb60106 arch: acpi: Correct starting length of MCFG table 67ef4f0 build(deps): bump linux-loader from `b270081` to `6cf23a8` f622a76 build: Build test all supported build configurations on Travis 3bc11a4 vmm: Make the "mmio" only build generate no errors 4df5ebe vmm: Add devices to IO/MMIO bus closer to creation 0739c2c vm-virtio: Fix compilation warning from "mmio" feature only build 7358144 vmm: Cleanup warning from "pci" feature only build 3567206 build, tests: Update to ssh2 0.4.0 ea7f4d7 build(deps): bump serde from 1.0.100 to 1.0.101 c0fede0 build(deps): bump libssh2-sys from 0.2.11 to 0.2.12 1097afb tests: Run MMIO supported integration tests ccb8328 tests: Add integration testing for MMIO based virtio 3ad4b84 tests: Remove unused "kernel_path" variable 1099f07 vmm: Add MMIO support 26974c7 vm-virtio: Add MMIO transport c042483 build: make PCI (virtio and vfio) disableable at build time 6d27ac9 vmm: Allow the DeviceManager to inject extra kernel commandline entries 3df1680 devices: Require Interrupt trait implementations to support Sync f5a44ea docs: Explain how to create a custom Clear Linux cloud image e950aa6 ci: Reduce integration testing time 05b5115 vmm: Call DeviceManager's register_devices() on creation 7edc46f vmm: Make virtio device creation independent of PCI 7c6ef7f ci: Add integration test for virtio-vsock bf37b96 ci: Rely on custom Clear Linux cloud image 4d86359 ci: Install socat on the host VM 5e5c2f2 ci: Allow tests to print some useful information with println a9b2207 ci: Allow threads to send ssh commands 40fc6c3 README: Update rust-hypervisor-firmware link 389f9e3 tests: Check that the test binary cleanly terminated 8f37dec vmm: "close" the SIGWINCH signal handler c00b58d build(deps): bump pkg-config from 0.3.15 to 0.3.16 5f752da build(deps): bump serde from 1.0.99 to 1.0.100 8e7d67f build(deps): bump vmm-sys-util from `8703cfd` to `07ef2e2` b515d48 build(deps): bump cc from 1.0.42 to 1.0.45 eb46aa2 vmm: If acpi feature is disabled make "reboot" shutdown 7975394 vm-virtio: vsock: Port unit testing from Firecracker 5a34728 vm-virtio: vsock: Implement VsockEpollHandler 475e487 vmm: Create vsock backend 434a5d0 vm-virtio: vsock: Port submodule unix from Firecracker df61a8f vm-virtio: vsock: Port submodule csm and packet from Firecracker 22f91ab vm-virtio: Move vsock to its own module 4ccc81f vmm: Create virtio-vsock device 11e7ece vmm: Add new flag "--vsock" c48ca61 vm-virtio: Add virtio-vsock skeleton 69e2728 vmm: Allocate enough MSI-X vectors for multiqueue virtio devices d2db34e vmm: Hide underlying console setup from VM d089ee4 vmm: Move ownership of the exit/reset EventFd to Vm structure 2f4de81 vmm: Access ioapic/io_bus/mmio_bus from DeviceManager via accessor 9ac967e vmm: Split DeviceManager into it's own file f740a35 build(deps): bump getrandom from 0.1.11 to 0.1.12 e21bc97 build(deps): bump vmm-sys-util from `fd4dcd1` to `8703cfd` d446a82 build(deps): bump blake2b_simd from 0.5.7 to 0.5.8 2432ad0 build(deps): bump cc from 1.0.41 to 1.0.42 9661e8d build: Really make the acpi feature disableable 7688e6e release-notes: Add table of contents d784ac2 release-notes: Add v0.2.0 notes 8c2a9a7 vm-virtio: Update backend feature set for vhost-user-net b8622b5 vm-virtio: Address event count error and refactor data setting fe9398f scripts: Fix integration tests script 1f06c59 Revert "vmm, tests: Disable reboot support" 5dd6757 vmm: Call munmap() on regions that have been mmap()ed 037807f build(deps): bump backtrace from 0.3.36 to 0.3.37 47ca277 build(deps): bump backtrace from 0.3.35 to 0.3.36 f59cad1 vmm: Cleanup signal_handler thread used for console SIGWINCH handling 7ce0db9 build(deps): bump regex-syntax from 0.6.11 to 0.6.12 9e764fc vmm, arch, devices: Put ACPI support behind a default feature bb2e7bb vmm: Shutdown vCPU threads 40f9da5 tests: Add a basic direct boot test with acpi=off 8308e1b vmm, tests: Disable reboot support ad128bf vmm: Give vCPU and signal handler thread useful names 7205700 tests: Add integration testing for VM reboot 3af5619 tests: Use shutdown rather than reboot to shutdown the VMs 614eb68 vm: Make triple-fault and i8042 reset reboot the VM 5a187ee x86_64/devices: acpi: Add support for ACPI shutdown & reboot ae66a44 vmm: Support both reset and shutdown ebe8edd devices: i8042: Use error! macro 011496b arch: acpi: Fix legacy interrupt for serial device 2610f43 arch: acpi: Only add ACPI COM1 device if serial is turned on 15387cd arch: x86_64: acpi: Add DSDT table entries for PCI and COM1 638bf03 arch: x86_64: acpi: Generate MCFG table 451502b vm: If a VCPU thread errors out then exit the hypervisor 98f81c3 arch: x86_64: acpi: Generate MADT aka APIC table ee83c2d arch: x86_64: Generate basic ACPI tables eea6f1d acpi_tables: Add initial ACPI tables support 3e99098 vhost_rs: add config messge support e05de45 vhost_rs: The vhost user version we support 6fb7c3b vhost_rs: remove config space offset setting a44a903 vhost_rs: Change get_config()/set_config() b4187a1 vhost_rs: Change the VhostUserConfigFlags 8718043 cloud-hypervisor: Bump vmm-sys-util crate version add0471 vfio: Use the log crate macros 772191b vm-virtio: vhost-user: Rely on acked features to setup backend 97699a5 vm-virtio: vhost-user: Vring should be enabled after initialization a4ebcf4 vm-virtio: vhost-user-net: Map proper error when getting features cdfe576 vm-virtio: vhost-user-net: Set the right set of features bc42420 vm-virtio: Expand vhost-user handler to be reused from virtio-fs b7d3ad9 vm-virtio: fs: Factorize vhost-user setup 56cad00 vm-virtio: Move fs.rs to vhost_user module cc7a96e main: Add integration test f21d54f main: Add arguments entry for vhost-user-net 584a2cc vmm: Add vhost-user-net support 633f51a vm-virtio: Add vhost-user-net implementation 5130655 vmm: Add hugetlbfs handling support ce60ff1 build(deps): bump vmm-sys-util from `a0b3893` to `829d605` 3dd3290 build(deps): bump vmm-sys-util from `2177381` to `a0b3893` b2f85cb vhost_rs: Wait for full request to be satisfied 18a8bb0 build(deps): bump vmm-sys-util from `7222869` to `2177381` 151637b build(deps): bump cc from 1.0.40 to 1.0.41 c316c16 build(deps): bump vm-memory from `1635f25` to `8669369` 808fcaa build(deps): bump lazy_static from 1.3.0 to 1.4.0 bc87c9f build(deps): bump kvm-ioctls from `37669f6` to `30adb02` 66a7a94 build(deps): bump getrandom from 0.1.10 to 0.1.11 dfb18ef net: Make TAP registration functions immutable 0b8856d vmm: Add RwLock to the GuestMemoryMmap ec0b556 vmm: Share the guest memory instead of cloning it f4d41d6 virtio: net: Remove TAP fd from epoll when no available descriptors 582fc7f build(deps): bump constant_time_eq from 0.1.3 to 0.1.4 44d8ab0 vm-virtio: Remove unused dependency from unit tests 5f52dd2 net_util: Fix clippy error aface5b build(deps): bump unicode-width from 0.1.5 to 0.1.6 dc31db4 ci: Fix virtio-fs tests b528e99 build(deps): bump backtrace from 0.3.34 to 0.3.35 e841799 build(deps): bump blake2b_simd from 0.5.6 to 0.5.7 1d9ad9e build(deps): bump autocfg from 0.1.5 to 0.1.6 26a210a arch: x86_64: Fix EBDA adddress 55f01b2 build(deps): bump remain from 0.1.3 to 0.1.4 49a129f build(deps): bump serde from 1.0.98 to 1.0.99 1c23a09 build(deps): bump getrandom from 0.1.9 to 0.1.10 f0082fe tests: Make panics generate a backtrace 8b78e12 tests: Use newgrp to run unit tests f5a6e3c build: Drop vendor directory from rustfmt command d6e3b70 tests: Rename virtiofsd build path 71154d8 tests: Use "-f" on directory rm commands 7245cf7 build(deps): bump rust-argon2 from 0.5.0 to 0.5.1 7adb9d5 build(deps): bump libc from 0.2.61 to 0.2.62 760791a build(deps): bump openssl-sys from 0.9.48 to 0.9.49 7b718f3 build(deps): bump vmm-sys-util from `5f8c251` to `7222869` 08ed88c tests: Remove potential sources of nested panics ab6a8f1 tests: Fix virtio-fs with dax=off integration test 567eda4 tests: Retrieve the bionic image from the Azure storage bucket 0affdd0 docs: Add networking HOWTO 658c076 linters: Fix clippy issues c836417 docs: Add debug I/O port HOWTO c52e276 vmm: Log debug ioport timestamps 48a9300 vmm: Log 0x80 IO port writes 10abfd4 build(deps): bump vmm-sys-util from `54e256b` to `5f8c251` 6678cbf build(deps): bump getrandom from 0.1.8 to 0.1.9 513d2fd arch: x86_64: Update linux-loader crate 76e3a30 pci: Simplify PciDevice trait 0d53a58 build(deps): bump rustc-demangle from 0.1.15 to 0.1.16 b3c809a tests: Fix virtio-pmem af9a72e tests: Add virtio-fs tests with dax=on and dax=off 2e0508c vm-virtio: fs: Add DAX shared region support 3c29c47 vmm: Create shared memory region for virtio-fs 74225ab config: Add option dax and cache_size to virtio-fs f30ba06 vm-virtio: Allocate shared memory regions on dedicated BAR e0fda06 vm-virtio: Remove virtio-pci dependency from VirtioDevice e2b38cc vm-virtio: Extend VirtioDevice trait to retrieve shared memory regions d97079d vm-virtio: Update VirtioPciCap and introduce VirtioPciCap64 d180deb vm-virtio: pci: Fix PCI capability length c6feb03 vhost_rs: Allow MasterReqHandler to reply when needed ef2e8b6 tests: Update virtio-fs mount command 3645bf8 tests: Build virtiofsd from specific branch 021e8d9 tests: Move to new kernel 5.3-rc3 4b3fd90 build(deps): bump cc from 1.0.38 to 1.0.40 bc5b72f build(deps): bump libc from 0.2.60 to 0.2.61 6c06420 vm-virtio: net: Fix out-of-range slice panic when under load b608671 build(deps): bump syn from 0.15.43 to 0.15.44 97c9648 build(deps): bump arc-swap from 0.4.1 to 0.4.2 df5058e vm-virtio: Implement console size config feature d9a355f vmm: Add new "null" serial/console output mode f910476 vmm: Only send stdin input to serial/console if it can handle it aa44726 vm-virtio: Don't trigger an MSI-X interrupt if not enabled c0e2bbb pci: Add MSI-X helper to check if interrupts are enabled 4c9759e build(deps): bump syn from 0.15.42 to 0.15.43 b7ed71b build(deps): bump vmm-sys-util from `9014b7a` to `54e256b` 8fcaf91 build(deps): bump redox_users from 0.3.0 to 0.3.1 87195c9 pci: Fix vector control read/write from/to MSI-X table fca911e main: Add logging support controlled by command line 91ce39e tests: Ensure that the test pipeline fails 6cc3e88 build(deps): bump getrandom from 0.1.7 to 0.1.8 d1cd3c8 build(deps): bump vmm-sys-util from `c0bbae5` to `9014b7a` 91c7f27 build(deps): bump utf8-ranges from 1.0.3 to 1.0.4 87f148c build(deps): bump regex-syntax from 0.6.10 to 0.6.11 778c60f build(deps): bump vmm-sys-util from `71b5b25` to `c0bbae5` 846505d pci: Fix add_capability unit test 9caad73 build, misc: Bump vmm-sys-util dependency ac950d9 build: Bulk update dependencies a1f408a qcow: bounds check the refcount table offset and size dfd44a6 qcow: Add a zero_cluster method to raw file 7d6bf75 qcow: limit the size of a qcow file 20f8d8d qcow: Avoid overflow when taking ceiling of division 4ba1d22 qcow: disallow crazy l1 table sizes bd612b6 qcow: Fix invalid_cluster_bits test b713737 qcow: Limit file setups that consume excessive RAM 35a3b47 qcow: Calculate the max refcounts as a u64 f927d1a qcow: better limits on cluster size 0c95476 build(deps): bump vm-memory from `4c329f4` to `1635f25` 6abd50f build(deps): bump clap from 2.27.1 to 2.33.0 c7f8498 build(deps): bump log from 0.4.6 to 0.4.8 8a7cfe8 build(deps): bump dirs from 2.0.1 to 2.0.2 49ef201 vfio: pci: Provide the right MSI-X table offset a548a01 pci: Fix MSI-X table and PBA offsets baec276 vm-virtio: Don't break from epoll loop on EINTR 1a484a8 vmm: Don't break from epoll loop on EINTR 532f6a9 vmm: Factorize VM related information into a structure c0756c4 vmm: Increase memory slot from virtio-pmem 8c4c162 arch: x86_64: Set MTRR default memory type as WB d526844 tests: Add Ubuntu Bionic version of test_simple_launch facc3b3 tests: Add Bionic to integration test script 09aced9 tests: Use logical name for disk paths 56c4b70 tests: Refactor integration tests to support different distributions d18c8d4 vfio: pci: Add support for expansion ROM BAR d217089 pci: Add support for expansion ROM BAR 347f8a0 vfio: pci: Mask multi function device bit b6ae2cc pci: Disable multiple functions f86b9dd scripts: Add Ubuntu cloud-init data be199e5 tests: Move Clear Linux cloud-init files to subdirectory 98d7955 vm-virtio: Add support for notifying about virtio config update 93b7753 release-notes: Add v0.1.0 notes fa41ddd arch: Add a Reserved memory region to the memory hole 299d887 arch: Add SubRegion memory type 792cc27 vfio: Propagate the KVM routes setting error 421b896 vfio: Don't expose an Interrupt Pin 2f80288 vfio: Disable the ROM expansion BAR e180521 vfio: Fix Memory BAR alignment d92d797 vfio: Update memory slot index to support multiple VFIO devices b9f677c vmm: Fix the memory slot index b5eab43 vfio: Create a global KVM VFIO device for all VFIO devices 0ff074d vm-allocator: Fix potential allocation errors 927861c pci: Fix end of address space check 1971c94 tests: Adjust down entropy expectation ebe04f6 tests: Use custom kernel for all tests 3cc6f48 docs: Add VFIO usage example 46eaea1 README: Fix kernel command line console argument 1f6f522 build: Upload release binary on tag 5ae3144 tests: Add VFIO integration test 4d16ca8 vmm: Support direct device assignment b746dd7 vfio: Map MMIO regions into the guest c93d536 vfio: pci: Build the KVM routes 20f0116 vfio: pci: Track MSI and MSI-X capabilities db5b476 vfio: Initial PCI support 2cec3aa vfio: VFIO API wrappers and helpers 5372554 vfio-bindings: Initial commit 4e48309 vm: Factorize all virtio devices creation routines 8ba54af vm-virtio: Add integration test for virtio console device 24438e0 vm-virtio: Enable the vmm support for virtio-console 577d44c vm-virtio: Add virtio console device for single port operation f98a69f vm-allocator: Introduce an MMIO hole address allocator a761b82 vm-allocator: Fix the aligned address check 7091488 vm-allocator: Fix free range allocation 0a04a95 vm-allocator: Expand the IRQ allocation API to support GSI 96fb38a vm-allocator: Align address at allocation time af7cd74 vm-allocator: Make port IO non optional 1268165 pci: Allow for registering IO and Memory BAR b157181 pci: Fix the way PCI configuration registers are being written 185b108 pci: Add a helper to set the BAR type ee39e46 pci: Add MSI capability structure 72007f0 pci: Improve MSI-X code to let VFIO rely on it 2987895 pci: Implement the From trait for the PciCapabilityID structure 3f02cca qcow: Add support for QCOW v2 header 6f65f34 build: Ensure caps needed for unit test are set 998140f tests: Remove single test limit 492ab7a build: Use tmpfs for /tmp 80f3311 tests: Use incrementing IP and mac address for VMs 93c2099 tests: Abstract guest management under a struct eab639e tests: Support customising the cloud-init network details e9f0174 tests: Create cloud-init image from source files in tests 0776d9d tests: Sleep more in order to speed up tests 7ebfe90 tests: Use a temporary directory for the temporary test files 78fe807 build: Run unit tests on the Jenkins server 1dfe16c vhost_rs: vhost_user: Update unit tests 7499210 vm-virtio: net: Remove attributes for test exclusions af15ce9 vm-virtio: Update test activate() function a50c546 qcow: Make unit tests pass 9a17871 pci: Make unit tests compile 74d079f pci: Mark add_capability test as #[ignore] as it is currently failing 18d5286 arch: x86_64: Make unit tests pass 224f775 devices: serial: Make the serial unit tests pass 9e372a8 net_util: Bump pnet dependency cb81f8b vmm: Make serial port controllable via command line 00df79a README: Really fix the memory parameters examples bc742d6 main: Add a PCI bridge class integration test 2b2c31d pci: Use device PCI header type for our root bridge d6d9b76 README: Fix the memory parameter examples 7ed0738 config: Fix default memory size parameter d9ce291 vmm: Flag --disk should be optional f0a76ad vmm: Add support for multiple virtio-net devices a2947f9 cli: Accept K,M,G suffixes for size parameters 2bb0b22 pci: Refine pci topology 4605ecf pci: Extend the Device trait to carry the device BARs 8173e1c devices: Extend the Bus trait to carry the device range base 42e5458 devices: bus: Return the range base address when resolving 33796c4 devices: bus: Sync with crosvm code 4a15316 vm-virtio: Fix the network and storage PCI class and sub-class 77684f4 vm-virtio: Implement the u32 to VirtioDeviceType conversion 0b7fb42 pci: Export network and mass storage sub classes 49d6b49 vmm: Remove println! from debugging 34e0992 vmm: Add support for multiple virtio-pmem devices 785db62 test: Add virtio-pmem integration tests 294c26b vmm: Add virtio-pmem support to cloud-hypervisor 8862d61 vm-virtio: Add virtio-pmem implementation c0336e8 docs: Add virtio-fs documentation 1cb2378 vmm: Add support for multiple virtio-fs devices 0fcca3e tests: Add virtio-fs testing 53085c7 memory: Allow memory to be backed by a file 2ede30b vmm: Add virtio-fs support to the VMM 1ddc8f2 vm-virtio: Add vhost-user-fs support 8f70771 vhost_rs: Copy vhost crate from jiangliu/v1 8dc06aa vm-virtio: Remove unneeded code 30266a4 vm-memory usage: vm-memory latest codes rename MmapError to Error 9da2343 device: Improvement for BusDevice trait and PciDevice trait 5f7d520 tests: Add split_irqchip test 5e803ab vmm: Integrate userspace IOAPIC 950bd20 devices: Add userspace IOAPIC implementation c8c4a4d devices: Create Interrupt trait to abstract interrupt delivery 2a7fbe8 CI: Fix the Ubuntu VM update stuck on an interactive window fe43e86 README: Use a permanent Slack invite link c4c8b93 build: Switch over to using rust-vmm linux-loader crate 226d336 tests: Add direct boot test using bzImage 429b53a vmm: Add bzimage loader support 0f54429 vmm: Move all the CPUID related code to CpuidPatch a0f4376 vmm: Set the APIC ID in the extended topology 0d0d19e vmm: Enable TSC_DEADLINE_TIMER allows for PIT emulation removal 946a5d4 build: Update Cargo.lock for syn crate update 72f3a69 tests: Add test for booting from vmlinux 445b484 fixup! resources: Shrink 5.0 kernel config a45f473 tests: Loosen memory check requirements 52ce042 tests: Bump the Clear Linux version fa0f1c8 resources: Shrink 5.0 kernel config 24dbe70 irq: Fix pin based interrupt for virtio-pci 4be3dfe build: Update Cargo.lock for linux-loader crate update 4d98dcb msix: Handle MSI-X device masking d810c77 msix: Handle MSI-X vector masking 42378ca vm-virtio: Fix alignment and MSI-X table size on the BAR edd1279 pci: Allow QWORD read and write to MSI-X table 00cdbbc pci: Make MSI-X PBA read only bbd0f5e build: Update Cargo.lock for linux-loader crate update b0a575d tests: Add a test for PCI MSI 47a4065 interrupt: Use a single closure to describe pin based and MSI-X 8df05b7 vmm: Add MSI-X support to virtio-pci devices 13a065d dep: Rely on latest kvm-ioctls crate 4b53dc4 pci: Add MSI-X implementation d3c7b45 interrupt: Make IRQ delivery generic 1f53488 tests: Switch to launching by command ddce3df tests: Add basic integration testing f63d4a7 vm: Disable stdin and terminal reconfiguration when headless 425841a vm: Do not explictly exit on reset 74a21f2 vendor: Remove vendoring 842515c vendor: Add vmm-sys-util duplicate 89fc75d docs: Initial vendoring documentation a6b7715 vendor: Move to the rust-vmm vmm-sys-util package d5f5648 vendor: Add vendored dependencies e3f7bc2 build: Update Cargo.lock to reflect changed dependencies 8370a5b vmm: Repair the port IO memory alignment e5e6518 config: Reorganize command line parsing 9900daa README: Update for new --disk usage a09f918 main, vmm: Add support for multiple --disk options 5279042 vm-allocator: Force documenting all public APIs 9f24775 vm-allocator: Allow for freeing system resources 4b451b0 vm-allocator: Allow for freeing address ranges 8bb71fa vmm: Simplify the vcpu run switch 6615d55 Revert "main: Fix --net behavior" 8e9e760 main: Fix --net behavior e52132c main: refactored parameter parsing CONTRIBUTING.md: removed a space to suport markdown linking 9299502 cloud-hypervisor: Switch to crates.io kvm-ioctls 0d81937 README: Add travis build status badge c1f1fe7 vm: Propagate errors appropriately 6ecdd98 virtio: Enable qcow support for virtio-block 919226f cloud-hypervisor: Add README b60ef22 cloud-hypervisor: Add CREDITS bcd562e cloud-hypervisor: Add a contributing guide 4daf999 cloud-hypervisor: Add initial list of maintainers 929b343 cloud-hypervisor: Adopt the Contributor Covenant code of conduct adb0abf main: Make supplying the commandline optional 2c94529 vmm: Propagate boot_kernel errors properly 43965ed main: Improve guest setting log format fe99c29 vm-virtio: Remove useless PCI BAR debug log 83dadb8 vmm: Remove useless memory setting log 3f38b42 vmm: Fix the Error enum comment cacce5f vmm: Use random local MAC address as the default one 576a28a net_util: Add helper for generating a random local MAC 5934f30 vmm: Add support for letting the VMM create the TAP interface 0c4c330 cloud-hypervisor: Switch to the linux-loader pending PR branch ac328df cloud-hypervisor: Switch to th…
- Loading branch information