4.5 KiB
Slice K4 resource telemetry checkpoint
Date: 2026-07-27
Status: Instrumentation and CPU-wakeup correction complete; fixed-binary
connected baselines remain active
Production commit: cb512fd0
Outcome
The Linux headless process now emits one structured resource sample at startup, every 30 seconds, before scheduler stop, and after terminal disposal. Sampling is driven by the existing process scheduler's absolute deadline. It does not add a worker, timer, or callback per session.
Each sample reports:
- working set, private bytes, virtual bytes, total CPU time, interval CPU as both core-equivalent and machine-normalized percentages;
- managed live, heap, fragmentation, committed and allocated bytes, memory load, GC pause percentage, and generation counts;
- process thread/handle counts and Linux file/socket descriptors;
- configured, in-world, faulted, reconnecting, and converged Runtime roots, entity/inventory totals, and exact host-lease count;
- scheduler waits, turns, catch-up collapses, late-deadline count, mean and maximum lateness;
- shared-content lease count, mapped virtual bytes, disposal state, and final convergence.
No account password or credential reference is included in this schema.
Two-account connected evidence
One native Linux process connected the two locally available accounts:
testaccount/+Acdreamtestaccount2/+Horan
Both entered Rynthid and maintained independent Runtime roots and movement. The user asked that this process stay running for the retail-observer gate.
The first process sample after both world entries reported:
| Metric | Value |
|---|---|
| private bytes | 207,966,208 |
| working set | 191,553,536 |
| managed live bytes | 71,108,368 |
| threads | 16 |
| handles | 115 |
| Linux descriptors | 114 |
| socket descriptors | 3 |
| shared content leases | 2 |
| mapped package virtual bytes | 29,908,271,024 |
The roughly 29.9 GB mapped-package value is address space, not resident or private memory. The mmap remains shared and demand-paged.
After movement and additional portal/density activity, the latest recorded sample before this checkpoint reported 305,393,664 private bytes, 332,742,656 working-set bytes, 139,609,360 managed live bytes, 418 entities, 16 threads, 117 handles, and the same three socket descriptors. Entity count changed from 187 to 418 during that interval, so the memory delta is not treated as a same-workload per-session ceiling.
Scheduler finding and correction
The connected samples exposed two distinct scheduler problems:
- scheduler deadlines began during host construction, before sequential account connects completed, producing a false initial catch-up and a roughly 615 ms maximum-lateness sample;
- the final positive sub-millisecond
Task.Delayremainder rounded down to zero on Linux, causing millions of wait-loop turns between actual 15 ms simulation deadlines.
The correction:
- rebases every session and observation deadline exactly once after all configured sessions enter the world;
- refuses to rebase a scheduler that has already dispatched;
- rounds only positive sub-millisecond timer waits up to one millisecond;
- retains the 15 ms absolute simulation cadence and bounded catch-up rules.
The process still under user observation was intentionally not restarted, so its high wait counter belongs to the pre-correction artifact. The committed correction is protected by deterministic rebase/lateness tests and a real system-timer test that fails if the scheduler busy-loops between turns.
Automated gates
- Windows Headless Release: 56 passed.
- Native Ubuntu Headless Release: 56 passed.
- Complete Windows Release suite: 8,773 passed / 5 skipped.
- Windows and native Ubuntu Release builds complete.
- Diagnostics assert two configured sessions, no password text, and exact two-runtime terminal convergence.
Remaining K4 gate
The next connected restart must use exact binary cb512fd0 or a documented
descendant and prove the wait counter remains cadence-bounded, initial
catch-up remains zero, CPU falls accordingly, and terminal resource samples
converge. Available credentials support a two-account connected scale gate.
The 5/10/30-session isolation and endurance dimensions therefore remain
automated in-process gates unless additional local ACE accounts are
provisioned.
Numeric ceilings are not yet committed: they will be derived only from the fixed binary under matched 1- and 2-session workloads.
Rollback
git revert cb512fd0