Skip to content

perf(tfork): replace Phase B polling with futex events- #9 - #5

Open
yiying-zhang wants to merge 57 commits into
mainfrom
perf/tfork-phase-b-events
Open

perf(tfork): replace Phase B polling with futex events- #9#5
yiying-zhang wants to merge 57 commits into
mainfrom
perf/tfork-phase-b-events

Conversation

@yiying-zhang

Copy link
Copy Markdown
Collaborator

Summary

  • replace tfork restore-barrier 100 ms polling with FUTEX_WAIT on the exact
    observed nr_in_progress value;
  • use the existing decrement-and-wake producer path;
  • handle concurrent changes, signals, aborts, and spurious wakeups without a
    lost-wakeup window;
  • preserve a monotonic 10-second failure deadline; and
  • add an interleaved old/new Phase B benchmark harness.

Performance

At exactly 100 lightweight processes:

  • isolated branch validation: median Phase B 822.833 ms to 306.195 ms
    (-62.8%), median command time 2,077 ms to 1,444 ms (-30.5%);
  • final combined stack: median Phase B 770.573 ms to 266.309 ms (-65.4%),
    median command time 1,558 ms to 1,117 ms (-28.3%).

Validation

  • every sample inherited the source sentinel;
  • normal and abort wake paths remain bounded;
  • the final combined stack passed all eight transactional fault boundaries,
    network-lock smoke, Gensee E2E, and the release soak;
  • zero active bundles, runtime publications, tfork mounts, or D-state tasks
    remained.

yiying-zhang and others added 30 commits July 10, 2026 23:44
Stabilize live tfork source freezing
yiying-zhang and others added 27 commits July 17, 2026 22:25
…-main

Stabilize single-copy tfork clone path
Rewrite tclone setup for Gensee Crate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants