tag:github.com,2008:https://github.com/firecracker-microvm/firecracker/releasesTags from firecracker2025-03-18T11:01:01Ztag:github.com,2008:Repository/107505869/v1.11.02025-03-18T14:29:45ZFirecracker v1.11.0<p>Added</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4987">#4987</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4987">#4987</a>): Reset
<br /> physical counter register (`CNTPCT_EL0`) on VM startup. This avoids VM reading
<br /> the host physical counter value. This is only possible on 6.4 and newer
<br /> kernels. For older kernels physical counter will still be passed to the guest
<br /> unmodified. See more info
<br /> [here](<a href="https://github.com/firecracker-microvm/firecracker/blob/main/docs/prod-host-setup.md#arm-only-vm-physical-counter-behaviour">https://github.com/firecracker-microvm/firecracker/blob/main/docs/prod-host-setup.md#arm-only-vm-physical-counter-behaviour</a>)
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5088">#5088</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5088">#5088</a>): Added
<br /> AMD Genoa as a supported and tested platform for Firecracker.</p>
<p>Changed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4913">#4913</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4913">#4913</a>): Removed
<br /> unnecessary fields (`max_connections` and `max_pending_resets`) from the
<br /> snapshot format, bumping the snapshot version to 5.0.0. Users need to
<br /> regenerate snapshots.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4926">#4926</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4926">#4926</a>): Replace
<br /> underlying implementation for seccompiler from in house one in favor of
<br /> `libseccomp` which produces smaller and more optimized BPF code.</p>
<p>Deprecated</p>
<p>Removed</p>
<p>Fixed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4921">#4921</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4921">#4921</a>): Fixed
<br /> swagger `CpuConfig` definition to include missing aarch64-specific fields.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4916">#4916</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4916">#4916</a>): Fixed
<br /> `IovDeque` implementation to work with any host page size. This fixes
<br /> virtio-net device on non 4K host kernels.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4991">#4991</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4991">#4991</a>): Fixed
<br /> `mem_size_mib` and `track_dirty_pages` being mandatory for all
<br /> `PATCH /machine-config` requests. Now, they can be omitted which leaves these
<br /> parts of the machine configuration unchanged.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5007">#5007</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5007">#5007</a>): Fixed
<br /> watchdog softlockup warning on x86_64 guests when a vCPU is paused during GDB
<br /> debugging.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5021">#5021</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5021">#5021</a>) If a
<br /> balloon device is inflated post UFFD-backed snapshot restore, Firecracker now
<br /> causes `remove` UFFD messages to be sent to the UFFD handler. Previously, no
<br /> such message would be sent.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5034">#5034</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5034">#5034</a>): Fix an
<br /> integer underflow in the jailer when computing the value it passes to
<br /> Firecracker's `--parent-cpu-time-us` values, which caused development builds
<br /> of Firecracker to crash (but production builds were unaffected as underflows
<br /> do not panic in release mode).
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5045">#5045</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5045">#5045</a>): Fixed
<br /> an issue where firecracker intermittently receives SIGHUP when using jailer
<br /> with `--new-pid-ns` but without `--daemonize`.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4995">#4995</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4995">#4995</a>):
<br /> Firecracker no longer overwrites CPUID leaf 0x80000000 when running AMD
<br /> hardware, meaning the guest can now discover a greater range of CPUID leaves
<br /> in the extended function range (this range is host kernel dependent).
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5046">#5046</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5046">#5046</a>): Retry
<br /> KVM_CREATE_VM on EINTR that occasionally happen on heavily loaded hosts to
<br /> improve reliability of microVM creation.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5052">#5052</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/5052">#5052</a>): Build
<br /> the empty seccomp policy as default for debug builds to avoid crashes on
<br /> syscalls introduced by debug assertions from Rust 1.80.0.</p>Manciukictag:github.com,2008:Repository/107505869/v1.12.0-dev2025-03-04T14:13:18Zv1.12.0-devManciukictag:github.com,2008:Repository/107505869/v1.10.12024-11-13T10:56:54ZFirecracker v1.10.1<p>Changed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4907">#4907</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4907">#4907</a>): Bump
<br /> snapshot version to 4.0.0.</p>JackThomson2tag:github.com,2008:Repository/107505869/v1.11.0-dev2024-11-07T12:09:32Zv1.11.0-devJackThomson2tag:github.com,2008:Repository/107505869/v1.10.02024-11-07T18:54:21ZFirecracker v1.10.0<p>Added</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4834">#4834</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4834">#4834</a>): Add
<br /> `VIRTIO_NET_F_RX_MRGBUF` support to the `virtio-net` device. When this feature
<br /> is negotiated, guest `virtio-net` driver can perform more efficient memory
<br /> management which in turn improves RX and TX performance.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4460">#4460</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4460">#4460</a>): Add a
<br /> call to
<br /> [`KVM_KVMCLOCK_CTRL`](<a href="https://docs.kernel.org/virt/kvm/api.html#kvm-kvmclock-ctrl">https://docs.kernel.org/virt/kvm/api.html#kvm-kvmclock-ctrl</a>)
<br /> after pausing vCPUs on x86_64 architectures. This ioctl sets a flag in the KVM
<br /> state of the vCPU indicating that it has been paused by the host userspace. In
<br /> guests that use kvmclock, the soft lockup watchdog checks this flag. If it is
<br /> set, it won't trigger the lockup condition. Calling the ioctl for guests that
<br /> don't use kvmclock will fail. These failures are not fatal. We log the failure
<br /> and increase the `vcpu.kvmclock_ctrl_fails` metric.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4869">#4869</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4869">#4869</a>): Added
<br /> support for Aarch64 systems which feature CPU caches with a number of sets
<br /> higher than `u16::MAX`.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4797">#4797</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4797">#4797</a>),
<br /> [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4854">#4854</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4854">#4854</a>): Added
<br /> GDB debugging support for a microVM guest kernel. Please see our
<br /> [GDB debugging documentation](docs/gdb-debugging.md) for more information.</p>
<p>Changed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4844">#4844</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4844">#4844</a>): Upgrade
<br /> `virtio-net` device to use `readv` syscall to avoid unnecessary memory copies
<br /> on RX path, increasing the RX performance.</p>
<p>Deprecated</p>
<p>Removed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4804">#4804</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4804">#4804</a>): Drop
<br /> Support for guest kernel 4.14. Linux 4.14 reached end-of-life in
<br /> [January 2024](<a href="https://lore.kernel.org/lkml/2024011046-ecology-tiptoeing-ce50@gregkh/">https://lore.kernel.org/lkml/2024011046-ecology-tiptoeing-ce50@gregkh/</a>)
<br /> The minimum supported guest kernel now is 5.10.</p>
<p>Fixed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4796">#4796</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4796">#4796</a>): Fixed
<br /> Vsock not notifying guest about `TRANSPORT_RESET_EVENT` event after snapshot
<br /> restore. This resulted in guest waiting indefinitely on a connection which was
<br /> reset during snapshot creation.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4790">#4790</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4790">#4790</a>): v1.9.0
<br /> was missing most of the debugging information in the debuginfo file, due to a
<br /> change in the Cargo defaults. This has been corrected.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4826">#4826</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4826">#4826</a>): Add
<br /> missing configuration of tap offload features when restoring from a snapshot.
<br /> Setting the features was previously
<br /> [moved](<a class="commit-link" href="https://github.com/firecracker-microvm/firecracker/commit/49ed5ea4b48ccd98903da037368fa3108f58ac1f"><tt>49ed5ea</tt></a>)
<br /> from net device creation to device activation time, but it was not reflected
<br /> in the restore path. This was leading to inability to connect to the restored
<br /> VM if the offload features were used.</p>JackThomson2tag:github.com,2008:Repository/107505869/v1.9.12024-11-26T17:15:23ZFirecracker v1.9.1<p>Fixed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4824">#4824</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4824">#4824</a>): Add
<br /> missing configuration of tap offload features when restoring from a snapshot.
<br /> Setting the features was previously
<br /> [moved](<a class="commit-link" href="https://github.com/firecracker-microvm/firecracker/commit/49ed5ea4b48ccd98903da037368fa3108f58ac1f"><tt>49ed5ea</tt></a>)
<br /> from net device creation to device activation time, but it was not reflected
<br /> in the restore path. This was leading to inability to connect to the restored
<br /> VM if the offload features were used.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4829">#4829</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4829">#4829</a>): v1.9.0
<br /> was missing most of the debugging information in the debuginfo file, due to a
<br /> change in the Cargo defaults. This has been corrected.</p>kalyazintag:github.com,2008:Repository/107505869/v1.9.02024-09-03T12:11:11ZFirecracker v1.9.0<p>Added</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4687">#4687</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4687">#4687</a>): Added
<br /> VMGenID support for microVMs running on ARM hosts with 6.1 guest kernels.
<br /> Support for VMGenID via DeviceTree bindings exists only on mainline 6.10 Linux
<br /> onwards. Users of Firecracker will need to backport the relevant patches on
<br /> top of their 6.1 kernels to make use of the feature.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4732">#4732</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4732">#4732</a>),
<br /> [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4733">#4733</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4733">#4733</a>),
<br /> [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4741">#4741</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4741">#4741</a>),
<br /> [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4746">#4746</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4746">#4746</a>): Added
<br /> official support for 6.1 microVM guest kernels.</p>
<p>Changed</p>
<p>Deprecated</p>
<p>* Support for guest kernel 4.14 is now deprecated. We will completely remove
<br /> 4.14 support with Firecracker version v1.10</p>
<p>Removed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4689">#4689</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4689">#4689</a>): Drop
<br /> support for host kernel 4.14. Linux 4.14 reached end-of-life in
<br /> [January 2024](<a href="https://lore.kernel.org/lkml/2024011046-ecology-tiptoeing-ce50@gregkh/">https://lore.kernel.org/lkml/2024011046-ecology-tiptoeing-ce50@gregkh/</a>).
<br /> The minimum supported kernel now is 5.10. Guest kernel 4.14 is still
<br /> supported.</p>
<p>Fixed</p>
<p>* [4680](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4680">#4680</a>): Fixed an
<br /> issue
<br /> ([<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/issues/4659">#4659</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/issues/4659">#4659</a>))
<br /> where the virtio-net device implementation would always assume the guest
<br /> accepts all VirtIO features the device offers. This is always true with the
<br /> Linux guest kernels we are testing but other kernels, like FreeBSD make
<br /> different assumptions. This PR fixes the emulation code to set the TAP
<br /> features based on the features accepted by the guest.</p>bchaliostag:github.com,2008:Repository/107505869/v1.10.0-dev2024-08-30T12:42:48Zv1.10.0-devbchaliostag:github.com,2008:Repository/107505869/v1.8.02024-07-10T09:15:47ZFirecracker v1.8.0<p>Added</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4428">#4428</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4428">#4428</a>): Added
<br /> ACPI support to Firecracker for x86_64 microVMs. Currently, we pass ACPI
<br /> tables with information about the available vCPUs, interrupt controllers,
<br /> VirtIO and legacy x86 devices to the guest. This allows booting kernels
<br /> without MPTable support. Please see our
<br /> [kernel policy documentation](docs/kernel-policy.md) for more information
<br /> regarding relevant kernel configurations.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4487">#4487</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4487">#4487</a>): Added
<br /> support for the Virtual Machine Generation Identifier (VMGenID) device on
<br /> x86_64 platforms. VMGenID is a virtual device that allows VMMs to notify
<br /> guests when they are resumed from a snapshot. Linux includes VMGenID support
<br /> since version 5.18. It uses notifications from the device to reseed its
<br /> internal CSPRNG. Please refer to
<br /> [snapshot support](docs/snapshotting/snapshot-support.md) and
<br /> [random for clones](docs/snapshotting/random-for-clones.md) documention for
<br /> more info on VMGenID. VMGenID state is part of the snapshot format of
<br /> Firecracker. As a result, Firecracker snapshot version is now 2.0.0.</p>
<p>Changed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4492">#4492</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4492">#4492</a>): Changed
<br /> `--config` parameter of `cpu-template-helper` optional. Users no longer need
<br /> to prepare kernel, rootfs and Firecracker configuration files to use
<br /> `cpu-template-helper`.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4537">#4537</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4537">#4537</a>) Changed
<br /> T2CL template to pass through bit 27 and 28 of `MSR_IA32_ARCH_CAPABILITIES`
<br /> (`RFDS_NO` and `RFDS_CLEAR`) since KVM consider they are able to be passed
<br /> through and T2CL isn't designed for secure snapshot migration between
<br /> different processors.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4537">#4537</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4537">#4537</a>) Changed
<br /> T2S template to set bit 27 of `MSR_IA32_ARCH_CAPABILITIES` (`RFDS_NO`) to 1
<br /> since it assumes that the fleet only consists of processors that are not
<br /> affected by RFDS.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4388">#4388</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4388">#4388</a>): Avoid
<br /> setting `kvm_immediate_exit` to 1 if are already handling an exit, or if the
<br /> vCPU is stopped. This avoids a spurious KVM exit upon restoring snapshots.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4567">#4567</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4567">#4567</a>): Do not
<br /> initialize vCPUs in powered-off state upon snapshot restore. No functional
<br /> change, as vCPU initialization is only relevant for the booted case (where the
<br /> guest expects CPUs to be powered off).</p>
<p>Deprecated</p>
<p>* Firecracker's `--start-time-cpu-us` and `--start-time-us` parameters are
<br /> deprecated and will be removed in v2.0 or later. They are used by the jailer
<br /> to pass the value that should be subtracted from the (CPU) time, when emitting
<br /> the `start_time_us` and `start_time_cpu_us` metrics. These parameters were
<br /> never meant to be used by end customers, and we recommend doing any such time
<br /> adjustments outside Firecracker.
<br />* Booting with microVM kernels that rely on MPTable on x86_64 is deprecated and
<br /> support will be removed in v2.0 or later. We suggest to users of Firecracker
<br /> to use guest kernels with ACPI support. For x86_64 microVMs, ACPI will be the
<br /> only way Firecracker passes hardware information to the guest once MPTable
<br /> support is removed.</p>
<p>Fixed</p>
<p>* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4526">#4526</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4526">#4526</a>): Added a
<br /> check in the network TX path that the size of the network frames the guest
<br /> passes to us is not bigger than the maximum frame the device expects to
<br /> handle. On the TX path, we copy frames destined to MMDS from guest memory to
<br /> Firecracker memory. Without the check, a mis-behaving virtio-net driver could
<br /> cause an increase in the memory footprint of the Firecracker process. Now, if
<br /> we receive such a frame, we ignore it and increase `Net::tx_malformed_frames`
<br /> metric.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4536">#4536</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4536">#4536</a>): Make
<br /> the first differential snapshot taken after a full snapshot contain only the
<br /> set of memory pages changed since the full snapshot. Previously, these
<br /> differential snapshots would contain all memory pages. This will result in
<br /> potentially much smaller differential snapshots after a full snapshot.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4578">#4578</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4578">#4578</a>): Fix
<br /> UFFD support not being forward-compatible with new ioctl options introduced in
<br /> Linux 6.6. See also
<br /> <a class="issue-link js-issue-link" href="https://github.com/bytecodealliance/userfaultfd-rs/issues/61">bytecodealliance/userfaultfd-rs#61</a>.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4630">#4630</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4630">#4630</a>): On
<br /> x86_64, when taking a snapshot, if a vCPU has MSR_IA32_TSC_DEADLINE set to 0,
<br /> Firecracker will replace it with the MSR_IA32_TSC value from the same vCPU.
<br /> This is to guarantee that the vCPU will continue receiving TSC interrupts
<br /> after restoring from the snapshot even if an interrupt is lost when taking a
<br /> snapshot.
<br />* [<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4666">#4666</a>](<a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/pull/4666">#4666</a>): Fixed
<br /> Firecracker sometimes restoring `MSR_IA32_TSC_DEADLINE` before `MSR_IA32_TSC`.
<br /> Now it always restores `MSR_IA32_TSC_DEADLINE` MSR after `MSR_IA32_TSC`, as
<br /> KVM relies on the guest TSC for correct restoration of
<br /> `MSR_IA32_TSC_DEADLINE`. This fixed guests using the `TSC_DEADLINE` hardware
<br /> feature receiving incorrect timer interrupts after snapshot restoration, which
<br /> could lead to them seemingly getting stuck in sleep-related syscalls (see also
<br /> <a class="issue-link js-issue-link" href="https://github.com/firecracker-microvm/firecracker/issues/4099">#4099</a>).</p>ShadowCursetag:github.com,2008:Repository/107505869/v1.9.0-dev2024-05-21T13:32:54Zv1.9.0-devbchalios