Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Snaps] #snapsafe support via VMGenID on ACPI #2476

Open
3 tasks done
raduweiss opened this issue Mar 4, 2021 · 4 comments
Open
3 tasks done

[Snaps] #snapsafe support via VMGenID on ACPI #2476

raduweiss opened this issue Mar 4, 2021 · 4 comments
Labels
Roadmap: Tracked Items tracked on the roadmap project.

Comments

@raduweiss
Copy link
Contributor

Feature Tracker

This is a feature tracking issue for the work to enable Firecracker users to safely and efficiently use snapshots [1] by adding VMGenId counter as a back-end to SysGenID [2].

Describe the desired solution

We are starting by researching how to implement VMGenID via ACPI but without adding PCI support to Firecracker.

Describe possible alternatives

We will look at other options if VMGenId via ACPI is not feasible for some reason.

If we don't implement this, Linux guests can still drive SysGenId from users-space, though this may not work for all use cases, and induces latency upon snapshot restore.

Additional context

See [1] and [2].

Checks

  • Have you searched the Firecracker Issues database for similar requests?
  • Have you read all the existing relevant Firecracker documentation?
  • Have you read and understood Firecracker's core tenets?

[1] https://github.com/firecracker-microvm/firecracker/blob/master/docs/snapshotting/snapshot-support.md#snapshot-security-and-uniqueness
[2] https://www.spinics.net/lists/kernel/msg3842154.html; https://www.spinics.net/lists/kernel/msg3842155.html; https://www.spinics.net/lists/kernel/msg3842157.html

@raduweiss raduweiss added Roadmap: Tracked Items tracked on the roadmap project. Feature: Snapshotting labels Mar 4, 2021
@raduweiss raduweiss changed the title [Feature] #snapsafe support via VMGenID on ACPI [Snapshotting] #snapsafe support via VMGenID on ACPI Mar 4, 2021
@raduweiss raduweiss changed the title [Snapshotting] #snapsafe support via VMGenID on ACPI [Snaps] #snapsafe support via VMGenID on ACPI Mar 4, 2021
@bchalios
Copy link
Contributor

After long discussions, we are focusing into supporting #snapsafety through an extension on the virtio-rng device[1] which will allow VMM to report snapshot-related events to guests.

We have in-flight an RFC patch for supporting this in the Linux kernel [2] which is currently under discussion with the community and a PoC[3] that implements this in Firecracker.

[1] https://www.mail-archive.com/virtio-dev@lists.oasis-open.org/msg09016.html
[2] https://lore.kernel.org/lkml/20230131145543.86369-1-bchalios@amazon.es/
[3] https://github.com/bchalios/firecracker/tree/feat_snapsafety

@JonathanWoollett-Light
Copy link
Contributor

JonathanWoollett-Light commented Dec 11, 2023

We are still working on it, re-opening to indicate this.

@zulinx86
Copy link
Contributor

zulinx86 commented Mar 11, 2024

ACPI support may solve issue #1601.

@bchalios
Copy link
Contributor

PRs #4428 and #4487 added support for ACPI and VMGenID, respectively, on x86 platforms. Once we add support for kernel 6.1, Firecracker will officially support VMGenID on x86 platforms.

For Aarch64 systems, we went a different way. Since we already use Device Tree to boot Firecracker microVMs, we sent out a patch set to Linux: https://lore.kernel.org/lkml/20240419224020.780377-1-Jason@zx2c4.com/ that adds device tree bindings for the VMGenID device and extend the driver so that it can probe the device via them. This should land in Linux kernel 6.10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Roadmap: Tracked Items tracked on the roadmap project.
Projects
Status: Developer Preview
Development

No branches or pull requests

4 participants