xref: /cloud-hypervisor/release-notes.md (revision cec884e86382e1b64b4e273664a1444acab86f0a)
1*cec884e8SSamuel Ortiz- [v0.4.0](#v040)
2*cec884e8SSamuel Ortiz    + [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
3*cec884e8SSamuel Ortiz    + [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
4*cec884e8SSamuel Ortiz    + [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
5*cec884e8SSamuel Ortiz    + [Guest pause and resume](#guest-pause-and-resume)
6*cec884e8SSamuel Ortiz    + [Userspace IOAPIC by default](#userspace-ioapic-by-default)
7*cec884e8SSamuel Ortiz    + [PCI BAR reprogramming](#pci-bar-reprogramming)
8*cec884e8SSamuel Ortiz    + [New `cloud-hypervisor` organization](#new--cloud-hypervisor--organization)
9*cec884e8SSamuel Ortiz    + [Contributors](#contributors)
108e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
118e8a7b6dSSamuel Ortiz    + [Block device offloading](#block-device-offloading)
128e8a7b6dSSamuel Ortiz    + [Network device backend](#network-device-backend)
138e8a7b6dSSamuel Ortiz    + [Virtual sockets](#virtual-sockets)
148e8a7b6dSSamuel Ortiz    + [HTTP based API](#http-based-api)
158e8a7b6dSSamuel Ortiz    + [Memory mapped virtio transport](#memory-mapped-virtio-transport)
168e8a7b6dSSamuel Ortiz    + [Paravirtualized IOMMU](#paravirtualized-iommu)
178e8a7b6dSSamuel Ortiz    + [Ubuntu 19.10](#ubuntu-1910)
188e8a7b6dSSamuel Ortiz    + [Guest large memory](#guest-large-memory)
197688e6e2SSamuel Ortiz- [v0.2.0](#v020)
208e8a7b6dSSamuel Ortiz    + [Network device offloading](#network-device-offloading)
218e8a7b6dSSamuel Ortiz    + [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
228e8a7b6dSSamuel Ortiz    + [Debug I/O port](#debug-i-o-port)
238e8a7b6dSSamuel Ortiz    + [Improved direct device assignment](#improved-direct-device-assignment)
248e8a7b6dSSamuel Ortiz    + [Improved shared filesystem](#improved-shared-filesystem)
258e8a7b6dSSamuel Ortiz    + [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
267688e6e2SSamuel Ortiz- [v0.1.0](#v010)
278e8a7b6dSSamuel Ortiz    + [Shared filesystem](#shared-filesystem)
288e8a7b6dSSamuel Ortiz    + [Initial direct device assignment support](#initial-direct-device-assignment-support)
298e8a7b6dSSamuel Ortiz    + [Userspace IOAPIC](#userspace-ioapic)
308e8a7b6dSSamuel Ortiz    + [Virtual persistent memory](#virtual-persistent-memory)
318e8a7b6dSSamuel Ortiz    + [Linux kernel bzImage](#linux-kernel-bzimage)
328e8a7b6dSSamuel Ortiz    + [Console over virtio](#console-over-virtio)
338e8a7b6dSSamuel Ortiz    + [Unit testing](#unit-testing)
348e8a7b6dSSamuel Ortiz    + [Integration tests parallelization](#integration-tests-parallelization)
358e8a7b6dSSamuel Ortiz
36*cec884e8SSamuel Ortiz# v0.4.0
37*cec884e8SSamuel Ortiz
38*cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
39*cec884e8SSamuel Ortiz
40*cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
41*cec884e8SSamuel Ortiz
42*cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
43*cec884e8SSamuel Ortiz
44*cec884e8SSamuel OrtizAs a way to vertically scale Cloud-Hypervisor guests, we now support dynamically
45*cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
46*cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
47*cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
48*cec884e8SSamuel Ortizdocumented [here](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/hotplug.md)
49*cec884e8SSamuel Ortiz
50*cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
51*cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
52*cec884e8SSamuel Ortiz
53*cec884e8SSamuel Ortiz### Programmatic firmware tables generation
54*cec884e8SSamuel Ortiz
55*cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
56*cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
57*cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
58*cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
59*cec884e8SSamuel Ortiztables based on the VMM device model and topology.
60*cec884e8SSamuel Ortiz
61*cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
62*cec884e8SSamuel Ortiz
63*cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
64*cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
65*cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
66*cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
67*cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
68*cec884e8SSamuel Ortiz
69*cec884e8SSamuel Ortiz### Guest pause and resume
70*cec884e8SSamuel Ortiz
71*cec884e8SSamuel OrtizAs an initial requiremnt for enabling live migration, we added support for
72*cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
73*cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
74*cec884e8SSamuel Ortizand resume capabilities.
75*cec884e8SSamuel Ortiz
76*cec884e8SSamuel Ortiz### Userspace IOAPIC by default
77*cec884e8SSamuel Ortiz
78*cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
79*cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
80*cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
81*cec884e8SSamuel Ortizdefault.
82*cec884e8SSamuel Ortiz
83*cec884e8SSamuel Ortiz### PCI BAR reprogramming
84*cec884e8SSamuel Ortiz
85*cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
86*cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
87*cec884e8SSamuel Ortizreprogramming.
88*cec884e8SSamuel Ortiz
89*cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
90*cec884e8SSamuel Ortiz
91*cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
92*cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
93*cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
94*cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
95*cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
96*cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
97*cec884e8SSamuel Ortiztemporarily fork.
98*cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
99*cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
100*cec884e8SSamuel Ortiz
101*cec884e8SSamuel Ortiz### Contributors
102*cec884e8SSamuel Ortiz
103*cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
104*cec884e8SSamuel Ortiz
105*cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
106*cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
107*cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
108*cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
109*cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
110*cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
111*cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
112*cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
113*cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
114*cec884e8SSamuel Ortiz
1158e8a7b6dSSamuel Ortiz# v0.3.0
1168e8a7b6dSSamuel Ortiz
1178ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
1188e8a7b6dSSamuel Ortiz
1198e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
1208e8a7b6dSSamuel Ortiz
1218e8a7b6dSSamuel Ortiz### Block device offloading
1228e8a7b6dSSamuel Ortiz
1238e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
1248e8a7b6dSSamuel Ortizand we added support for
1258e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
1268e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
1278e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
1288e8a7b6dSSamuel Ortizbackend.
1298e8a7b6dSSamuel Ortiz
1308e8a7b6dSSamuel Ortiz### Network device backend
1318e8a7b6dSSamuel Ortiz
1328e8a7b6dSSamuel OrtizThe previous release provided support for
1338e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
1348e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
1358e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
1368e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
1378e8a7b6dSSamuel Ortiz
1388e8a7b6dSSamuel Ortiz### Virtual sockets
1398e8a7b6dSSamuel Ortiz
1408e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
1418e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
1428e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
1438e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
1448e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
1458e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
1468e8a7b6dSSamuel Ortiz
1478e8a7b6dSSamuel Ortiz### HTTP based API
1488e8a7b6dSSamuel Ortiz
1498e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
1508e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
1518e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
1528e8a7b6dSSamuel Ortiznext release cycle.
1538e8a7b6dSSamuel Ortiz
1548e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
1558e8a7b6dSSamuel Ortiz
1568e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
1578e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
1588e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
1598e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
1608e8a7b6dSSamuel Ortiz
1618e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
1628e8a7b6dSSamuel Ortiz
1638e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
1648ec89bc8SRob Bradforda [paravirtualized IOMMU](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/iommu.md)
1658e8a7b6dSSamuel Ortizdevice through virtio. This allows for a safer nested virtio and directly
1668e8a7b6dSSamuel Ortizassigned devices support.
1678e8a7b6dSSamuel Ortiz
1688e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
1698e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
1708e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
1718e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
1728e8a7b6dSSamuel Ortizsetting.
1738e8a7b6dSSamuel Ortiz
1748e8a7b6dSSamuel Ortiz### Ubuntu 19.10
1758e8a7b6dSSamuel Ortiz
1768ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
1778e8a7b6dSSamuel Ortizwe can now support the latest
1788e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
1798e8a7b6dSSamuel Ortiz
1808e8a7b6dSSamuel Ortiz### Large memory guests
1818e8a7b6dSSamuel Ortiz
1828e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
1838e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
1847688e6e2SSamuel Ortiz
185d784ac29SSamuel Ortiz# v0.2.0
186d784ac29SSamuel Ortiz
1878ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
188d784ac29SSamuel Ortiz
189d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
190d784ac29SSamuel Ortiz
191d784ac29SSamuel Ortiz### Network device offloading
192d784ac29SSamuel Ortiz
193d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
194d784ac29SSamuel Ortizprocesses, we added support for
195d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
196d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
197d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
198d784ac29SSamuel Ortiz
199d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
200d784ac29SSamuel Ortiz
201d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
202d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
203d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
204d784ac29SSamuel Ortizcleanly reboot and shutdown.
205d784ac29SSamuel Ortiz
206d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
207d784ac29SSamuel Ortizenabled by default.
208d784ac29SSamuel Ortiz
209d784ac29SSamuel Ortiz### Debug I/O port
210d784ac29SSamuel Ortiz
211d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
212d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
213d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
214d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
2158ec89bc8SRob Bradfordmeasurements. See our [debug port documentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/debug-port.md)
216d784ac29SSamuel Ortizfor more details.
217d784ac29SSamuel Ortiz
218d784ac29SSamuel Ortiz### Improved direct device assignment
219d784ac29SSamuel Ortiz
220d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
221d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
222d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
223d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
224d784ac29SSamuel Ortizdirectly assigned devices.
225d784ac29SSamuel Ortiz
226d784ac29SSamuel Ortiz### Improved shared filesystem
227d784ac29SSamuel Ortiz
228d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
229d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
230d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
231d784ac29SSamuel Ortizmemory footprint.
232d784ac29SSamuel Ortiz
233d784ac29SSamuel Ortiz### Ubuntu bionic based CI
234d784ac29SSamuel Ortiz
2358ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
236d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
237d784ac29SSamuel Ortizour CI pipeline.
238d784ac29SSamuel Ortiz
23993b77530SSamuel Ortiz# v0.1.0
24093b77530SSamuel Ortiz
2418ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
24293b77530SSamuel Ortiz
24393b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
24493b77530SSamuel Ortiz
24593b77530SSamuel Ortiz### Shared filesystem
24693b77530SSamuel Ortiz
24793b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
24893b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
24993b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
25093b77530SSamuel Ortiz
2518ec89bc8SRob BradfordSee our [filesystem sharing](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/fs.md)
25293b77530SSamuel Ortizdocumentation for more details on how to use virtio-fs with `cloud-hypervisor`.
25393b77530SSamuel Ortiz
25493b77530SSamuel Ortiz### Initial direct device assignment support
25593b77530SSamuel Ortiz
25693b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
25793b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
25893b77530SSamuel Ortizphysical devices into its guest.
25993b77530SSamuel Ortiz
2608ec89bc8SRob BradfordSee our [VFIO](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/vfio.md)
26193b77530SSamuel Ortizdocumentation for more detail on how to directly assign host devices to
26293b77530SSamuel Ortiz`cloud-hypervisor` guests.
26393b77530SSamuel Ortiz
26493b77530SSamuel Ortiz### Userspace IOAPIC
26593b77530SSamuel Ortiz
26693b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
26793b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
26893b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
26993b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
27093b77530SSamuel Ortiz
27193b77530SSamuel Ortiz### Virtual persistent memory
27293b77530SSamuel Ortiz
27393b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
27493b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
27593b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
27693b77530SSamuel Ortiz
27793b77530SSamuel Ortiz### Linux kernel bzImage
27893b77530SSamuel Ortiz
27993b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
28093b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
28193b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
28293b77530SSamuel Ortizdistribution kernel image.
28393b77530SSamuel Ortiz
28493b77530SSamuel Ortiz### Console over virtio
28593b77530SSamuel Ortiz
28693b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
28793b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
28893b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
28993b77530SSamuel Ortizimplementation.
29093b77530SSamuel Ortiz
29193b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
29293b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
29393b77530SSamuel Ortiz`--serial tty --console off` from the command line.
29493b77530SSamuel Ortiz
29593b77530SSamuel Ortiz### Unit testing
29693b77530SSamuel Ortiz
29793b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
29893b77530SSamuel Ortiz
29993b77530SSamuel Ortiz### Integration tests parallelization
30093b77530SSamuel Ortiz
30193b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
30293b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
303