Skip to content

Conversation

@zulinx86
Copy link
Contributor

@zulinx86 zulinx86 commented Jul 5, 2023

Changes

  • Backport CPU template/CPUID normalization fixes to v1.4.
  • Cherry-pick some commits to suppress CI test failures.

Reason

License Acceptance

By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following
Developer Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md.

PR Checklist

  • [ ] If a specific issue led to this PR, this PR closes the issue.
  • The description of changes is clear and encompassing.
  • [ ] Any required documentation changes (code and docs) are included in this PR.
  • [ ] API changes follow the Runbook for Firecracker API changes.
  • User-facing changes are mentioned in CHANGELOG.md.
  • All added/changed functionality is tested.
  • [ ] New TODOs link to an issue.
  • Commits meet contribution quality standards.

  • This functionality cannot be added in rust-vmm.

@zulinx86 zulinx86 self-assigned this Jul 5, 2023
@zulinx86 zulinx86 added the Type: Fix Indicates a fix to existing code label Jul 5, 2023
@zulinx86 zulinx86 added Status: Awaiting author Indicates that an issue or pull request requires author action Status: Awaiting review Indicates that a pull request is ready to be reviewed and removed Status: Awaiting author Indicates that an issue or pull request requires author action labels Jul 5, 2023
@zulinx86 zulinx86 force-pushed the backport-v1.4 branch 4 times, most recently from 0916a6c to 1fb6da5 Compare July 5, 2023 14:49
zulinx86 added 3 commits July 5, 2023 14:51
Sets FDP_EXCPTN_ONLY bit (CPUID.7h.0:EBX[6]) and ZERO_FCS_FDS bit
(CPUID.7h.0:EBX[13]) in Intel's CPUID normalization as recommended in
kernel doc. For more details, please refer to
https://lore.kernel.org/all/20220322110712.222449-3-pbonzini@redhat.com/

Signed-off-by: Takahiro Itazuri <itazur@amazon.com>
We updated the fingerprint files in PR firecracker-microvm#3813, since Intel microcode
release (microcode-20230512) changed to set IA32_ARCH_CAPABILITIES.RRSBA
(bit 19) to 1 on Intel CascadeLake CPU. The mitigation itself is already
in place which is eIBRS.

Since the kernel enables eIBRS by default using SPECTRE_V2_EIBRS mode
regardless of the IA32_ARCH_CAPABILITIES.RRSBA bit, hosts and guests
should not get impacted by this change. However, it has a role to inform
softwares whether the part has the RRSBA behavior.

The T2S template has set it to 0 explicitly before, but this commit
changes to set it to 1 so that guest kernels and applications can know
that the processor has the RRSBA behavior. The reason why it sets the
bit to 1 instead of passing through it from the host is that it aims to
provide the ability to securely migrate snapshots between Intel Skylake
and Intel CascadeLake.

Signed-off-by: Takahiro Itazuri <itazur@amazon.com>
We updated the fingerprint files in PR firecracker-microvm#3813, since Intel microcode
release (microcode-20230512) changed to set IA32_ARCH_CAPABILITIES.RRSBA
(bit 19) to 1 on Intel CascadeLake CPU. The mitigation itself is already
in place which is eIBRS.

Since the kernel enables eIBRS by default using SPECTRE_V2_EIBRS mode
regardless of the IA32_ARCH_CAPABILITIES.RRSBA bit, hosts and guests
should not get impacted by this change. However, it has a role to inform
softwares whether the part has the RRSBA behavior.

The T2CL template has set the RRSBA bit to 0 explicitly before, but this
commit changes to pass through the bit from the host so that guest
kernels and applications can know that the processor has the RRSBA
behavior. The reason why it passes through the bit from the host opposed
to the T2S template is that the T2CL template is not designed to allow
snapshot migration between different CPU models.

In addition to the RRSBA bit, this comit also changes to pass through
the RSBA bit, as it is safer to let guest know these informative bits of
the host CPU than to overwrite them with templates.

Signed-off-by: Takahiro Itazuri <itazur@amazon.com>
roypat and others added 2 commits July 5, 2023 15:49
m6a.metal tests have been timing out due to too many different
combinations of firecracker versions being tested in the snapshot tests.

Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
Removing as it is a microbenchmark and not representative or a real
workload.

If there is a performance regression on this piece, the snapshot/restore
should be able to detect it.

Signed-off-by: Pablo Barbáchano <pablob@amazon.com>
@zulinx86 zulinx86 requested review from kalyazin and roypat July 5, 2023 16:17
@roypat roypat merged commit 875d230 into firecracker-microvm:firecracker-v1.4 Jul 7, 2023
@zulinx86 zulinx86 deleted the backport-v1.4 branch July 7, 2023 10:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Status: Awaiting review Indicates that a pull request is ready to be reviewed Type: Fix Indicates a fix to existing code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants