Skip to content

Firecracker-v0.4.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@andreeaflorescu andreeaflorescu released this 08 Jun 20:42

Added

  • The CPU Template can be set with an API call on PUT /machine-config. The only available template is T2.
  • Hyperthreading can be enabled/disabled with an API call on PUT /machine-config. By default, hyperthreading is disabled.
  • Added boot time performance test (tests/performance/test_boottime.py).
  • Added Rate Limiter for Virtio block and net devices. The Rate Limiter uses two token buckets to limit rate on bytes/s and ops/s. The rate limiter can be (optionally) configured per drive with a PUT on /drives/{drive_id} and per network interface with a PUT on /network-interface/{iface_id}.
  • Implemented pre-boot PUT updates for /boot-source, /drives, /network-interfaces and /vsock.
  • Added integration tests for PUT updates.

Changed

  • Moved the API definition (swagger/firecracker-beta.yaml) to the api_server crate.
  • Removed "console=ttyS0" and added "8250.nr_uarts=0" to the default kernel command line to decrease the boot time.
  • Changed the CPU topology to have all logical CPUs on a single socket.
  • Removed the upper bound on CPU count as with musl there is no good way to get the total number of logical processors on a host.
  • Build time tests now print the full output of commands.
  • Disabled the Performance Monitor Unit and the Turbo Boost.
  • Check the expected KVM capabilities before starting the VM.
  • Logs now have timestamps.

Fixed

  • testrun.sh can run on platforms with more than one package manager by setting the package manager via a command line parameter (-p).
  • Allow correct set up of multiple network-interfaces with autogenerated MAC.
  • Fixed sporadic bug in virtio which was causing lost packages.
  • Don't allow PUT requests with empty body on /machine-config.
  • Deny PUT operations after the microvm boots (exception: the temporarily fix for live resize of block devices).

Removed

  • Removed examples crate. This used to have a Python example of starting Firecracker. This is replaced by test_api.py integration tests.
  • Removed helper scripts for getting coverage and coding style errors. These were replaced by test_coverage.py and test_style.py test integration tests.
  • Removed --vmm-no-api command line option. Firecracker can only be started via the API.