devloperdevesh / devloperdevesh/FaultPlane

[Feat/Kernel]: Implement eBPF-Driven Zero-Copy Process Memory Snipping to Bypass Heavy CRIU Disk Serialization

Open
#39 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement good first issue help wanted
Dominant language
Go
Stars
2
Forks
1
Avg merge
14m
Merged PRs (30d)
57

Description

Problem

Traditional low-level container runtimes utilizing RunC with CRIU (Checkpoint/Restore in Userspace) handle process state capture by frozen memory pools and writing raw execution state trees down to high-latency local disk sub-systems as unaligned image files. At massive infrastructure scale, this thick filesystem interaction serialization layer spikes restoration delays beyond 100ms, triggering packet drops across active multi-tenant ingress nodes.


Proposed Solution

Develop a high-performance Shared-Memory Page Snipping Engine inside cmd/daemon/page_snipper.c leveraging native kernel eBPF memory rings mapping structures.

  • Track active process memory offsets and runtime registers dynamically using compiled eBPF context tracepoints hooks.
  • Instead of executing full binary state snapshots arrays extraction down to the local disk, snipe only volatile execution delta arrays directly inside RAM memory registers.
  • Synchronize snapshot pointers asynchronously down to healthy remote container nodes using contiguous shared memory blocks, executing state restoration operations under < 1 millisecond.

Alternatives

  • Storing process dumps inside sharded key-value arrays like external Redis cluster setups, which reduces disk constraints but bounds performance parameters to standard Layer 7 connection speeds.

Use Case

Eliminates storage layer context tracking lags from container migrations, transforming FaultPlane into an unshakeable platform capable of executing zero-downtime hot-swaps on bare-metal systems seamlessly.


Additional Notes

All pointer synchronization offsets must follow the atomic alignment and memory padding dimensions specified under issue #6 definitions layouts.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with cmd/daemon/page_snipper.c and the pointer-alignment and padding definitions referenced in issue #6. Review the existing daemon and kernel integration points before determining how process offsets, registers, shared-memory synchronization, and restoration fit together. Done means the proposed eBPF-driven zero-copy snapshot path supports the stated sub-millisecond restoration target without full disk serialization.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, go, linux
Domain
infrastructure, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.