IPC Subsystem Progress
Status: In Progress Last review: 2026-08-26
Implemented
- Event and bounded channel primitives in
kernel/ipc/event.candkernel/ipc/channel.c. - Handle-transfer path with rights reduction in
kernel/ipc/handle_transfer.c. - Waitset core plus ownership enforcement in
kernel/ipc/waitset.c. - Multiple wake policies (
FIFO,REVERSE,ROUND_ROBIN,PRIORITY). - Per-event metadata controls (priority and enable/disable).
- Batch wait, wait-all, and signaled peek helpers.
- Extended telemetry for wait behavior (disabled skips, priority wakes, wait-all, batch, peek).
- Scheduler-aware thread wait wrappers with wake CPU feedback.
- Contention snapshot API (
vibeos_waitset_contention_snapshot) with enabled/signaled visibility for load diagnostics. - Handle transfer rejects invalid source handles before allocating anything; valid generic handles remain transferable with reduced rights. Host regression covers invalid-source rejection.
- Maximum fan-in waitset coverage exercises all 32 event slots, contention snapshots and batch wake selection under round-robin policy.
Pending
- Large fan-in waitset sharding strategy beyond the current bounded 32-slot primitive.
- Fairness proofs under mixed policy workloads.
- Stronger IPC load/perf benchmarks with reproducible profiles.
Next checkpoint
- Add reproducible throughput benchmarks and a sharding design for waitsets larger than 32 events.