Repository navigation
SharedMemfd memory backend
#6269
Replies: 3 comments
|
Thanks @marco-marangoni — read the doc against what forkd ships (context: #5912 / #5951). Covered. Not covered: write-protect-based capture. Our live path doesn't pre-copy: pause → state dump → arm Two questions:
Happy to bench the |
Thanks for taking a look! |
|
Use-case: same-snapshot fan-out — cross-microVM copy-on-write page sharing (a memory-density goal, distinct from migration / live-fork) Thanks @marco-marangoni — moving my closed #6380 here as you suggested. My use-case is a different axis from the migration and live-fork ones already in this thread, and I think it stresses exactly one assumption in the SharedMemfd design, so I want to state it precisely.
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hello! This is Marco from the Firecracker team :)
We're designing a new set of APIs and a new
SharedMemfdmemory backend.Together, they will allow nice things like pre- and post-copy migrations, backend-initiated snapshots that remove disk I/O for capturing the guest memory, live-migration in 10ms, and more!
The basic idea for
SharedMemfdis that it's going to be anUffdbackend that also receives the memfd containing the guest memory during handshake. New APIs can tell it which pages in memory are dirty of have been discarded, so the backend has all the information it needs to read the guest memory.Early documentation (subject to change): https://github.com/marco-marangoni/firecracker/blob/snapshot-improvements/docs/snapshotting/shared-memfd.md
Proof of concept with example backends is in the same branch.
The tentative release for the feature is the next Firecracker release for a subset of those APIs in dev-preview.
I'll be happy to hear your thoughts on this change, and especially which use-cases it can solve for you, and which use-cases are still not covered.
Thanks!
All reactions