Skip to content

Conversation

@zulinx86
Copy link
Contributor

@zulinx86 zulinx86 commented Jul 5, 2023

Changes

Reason

An Intel microcode update set IA32_ARCH_CAPABILITIES.RRSBA to 1 on CascadeLake, which requires T2S/T2CL templates to be revised since they overwrite these bits.

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.

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>
@zulinx86 zulinx86 added the Type: Fix Indicates a fix to existing code label Jul 5, 2023
@zulinx86 zulinx86 self-assigned this Jul 5, 2023
roypat
roypat previously approved these changes Jul 5, 2023
@zulinx86 zulinx86 force-pushed the backport-v1.3 branch 3 times, most recently from fba3a94 to a8fc839 Compare July 5, 2023 14:30
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:48
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 added the Status: Awaiting review Indicates that a pull request is ready to be reviewed label Jul 5, 2023
@zulinx86 zulinx86 requested review from kalyazin and roypat July 5, 2023 16:17
@zulinx86 zulinx86 merged commit 54a891e into firecracker-microvm:firecracker-v1.3 Jul 5, 2023
@zulinx86 zulinx86 deleted the backport-v1.3 branch July 5, 2023 17:17
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