Markk116
  • Joined on 2025-06-22
Markk116 pushed to master at Markk116/smarm 2026-07-24 07:31:59 +00:00
d4839f1d81 feat(runtime,io): driver-enqueues + park/wake idle path — retire the wake pipe
2854b560d6 feat(park): fenced producer fast path + earliest-deadline snapshot
7b026cfe56 feat(park): scheduler coordination layer — parkers, idle mask, wake protocol (RFC 018)
006a3283e7 chore(hooks): clippy gate falls back to a nix-shell toolchain
Compare 4 commits »
Markk116 pushed to master at Markk116/smarm 2026-07-24 07:06:34 +00:00
8c764e9169 docs(monitor): user-facing rewrite of process monitors
41b9d6d056 docs(introspect): user-facing rewrite of runtime introspection
dd845f22fe docs(mutex): user-facing rewrite of the actor-blocking mutex
36a0a9832d docs(registry): user-facing rewrite of the name registry
feda6517e5 docs(channel): user-facing rewrite of the MPSC channel primitive
Compare 6 commits »
Markk116 pushed to master at Markk116/smarm 2026-07-23 21:00:40 +00:00
d9addeba5e test(causal): controller test no longer races the sweep's site snapshot
d5a3ba1934 fix(causal): born current — slot reuse booked phantom park forgiveness
7eae56a296 fix(runtime): a root actor panic escapes run()
527f045e17 feat(causal): offcpu column + closed-books eff in the attrib probe
0ee3fe7330 feat(causal): offcpu audit bucket — the @50 deficit located (RFC 007)
Compare 19 commits »
Markk116 pushed to master at Markk116/urus 2026-07-23 21:00:18 +00:00
34730930e7 feat(bench): E1 scheduler-count sweep orchestrator
72064c7a79 feat(bench): URUS_SCHED_THREADS knob in plain_serve
14be21db15 feat(bench): PLAIN_ONLY knob — skip causal cells for concurrency sweeps
182f4fe602 feat(bench): ka/close A/B matrix — plain_serve baseline + box orchestrator
17cd4a5ceb feat(causal): load_profile example — external-loadgen causal target
Compare 10 commits »
Markk116 pushed to master at Markk116/smarm 2026-06-20 20:32:24 +00:00
3e9c33377c gen_statem: disambiguate module/macro intra-doc links
e54c67c431 supervisor: rewrite docs for users; relocate internals to items
3e321eaaf3 pg: rewrite docs for users; relocate internals to items
c415f14dd0 ci: deny unwrap_used/expect_used on the library target
33177a0c48 library + trace: rewrite panic sites as explicit match+panic
Compare 8 commits »
Markk116 pushed to master at Markk116/smarm 2026-06-20 11:41:32 +00:00
bfa513cd6d doc: rework gen_server module docs completely
Markk116 pushed to master at Markk116/smarm 2026-06-20 10:53:52 +00:00
0cf6b80396 gen_statem: GenStatem* type prefix + cleanup
3e316066c3 gen_server: prefix public types with Gen (GenServerRef, GenServerCtx, GenServerName, GenServerBuilder, NamedGenServerBuilder)
Compare 2 commits »
Markk116 pushed to master at Markk116/smarm 2026-06-20 10:22:38 +00:00
f646c5cd72 cleanup some LLM crud
Markk116 pushed to master at Markk116/smarm 2026-06-20 10:11:21 +00:00
07867b91f6 doc: links and tweaks
Markk116 pushed to master at Markk116/smarm 2026-06-20 10:01:48 +00:00
8d1605638e statem: add gen_statem! authoring macro (RFC 017 chunk 1)
acc37c5fc9 RFC 017 chunk 1: gen_statem primitives (no macro yet)
0d6fc970a7 scheduler: gate send_after_to runtime tests out of the loom build
e9c39bff46 roadmap: introspection & observability shipped as RFC 016
2d15834b24 RFC 016 Chunk 4: observer example with ps-style + tree dump
Compare 39 commits »
Markk116 pushed to master at Markk116/urus-benches 2026-06-14 22:08:26 +00:00
f25b460d3c Commit baseline results
Markk116 pushed to master at Markk116/urus-benches 2026-06-14 22:08:13 +00:00
943080805c loadgen: fix two latent lua bugs that voided every wrk run
Markk116 pushed to master at Markk116/urus-benches 2026-06-14 22:00:24 +00:00
926aba4344 bench: flag void (high non-2xx) runs; add status-code diagnostic
Markk116 pushed to master at Markk116/urus-benches 2026-06-14 21:44:41 +00:00
5f342858e7 bench: retune spin A/B sweep for saturation (4/6 cores, 16 loadgen)
Markk116 pushed to master at Markk116/urus-benches 2026-06-14 21:12:51 +00:00
56e490c205 bench: port urus memory store to gen_server; add spinning A/B harness
Markk116 pushed to master at Markk116/smarm 2026-06-14 20:16:50 +00:00
2f011f6ce4 fix(rfc-004): gate spinning on max_spinners>0, killing wake-nobody futex_wake at N=1
debcb4e33b docs: per-switch N=1 local profile — shims are ~1% at N=1; cost is schedule_loop + run-queue + a hot-path futex_wake (revises handoff shim hypothesis to a many-core one)
683f2ed02d bench: add switch_cost local-mode per-switch microbench (rdtsc+wall, RFC per-switch spike)
4c1e5f19f1 RFC 004: default spin_budget_cycles=2000 (DEFAULT_SPIN_BUDGET_CYCLES, ~0.5us @3.7GHz), gate spinner cap on pool size (n<=1:0, 2..=4:n, n>=5:0) replacing N/2. From spin_sweep fork-join knee: ~4x p50 win at n<=4, pure cost at n>=8. Budget inert on large pools via 0 cap; explicit max_spinners() still overrides.
Compare 4 commits »
Markk116 pushed to master at Markk116/smarm 2026-06-14 16:07:21 +00:00
7fcc9f2ec5 benches: document spin_sweep in README (catalog + RFC 004 section, knobs, 1-core caveat); add vs-tokio summary to sweep.py. print_results emits a human 'vs tokio' block + greppable VSTOKIO,<bench>,<smarm_label>,<smarm_us>,<tokio_label>,<tokio_us>,<ratio>,<winner> lines, paired like-for-like by thread count (single vs current_thread; multi vs multi; multi_thread_scaling per matching count). ratio = tokio/smarm so >1 = smarm faster. Also gitignore __pycache__/*.pyc.
7ec453920b RFC 004 bench: spin_sweep measurement tool. Latency (p50/p90/p99/min/max, pooled across runs) vs idle-CPU (cores-busy via getrusage RUSAGE_SELF) over spin_budget_cycles x max_spinners x threads. Four workloads: remote-wake (latency target), fork-join, half-load (cost target), pure-idle (floor check). Env-knobbed SMARM_SPIN_*, greppable SPINCSV lines. Smoke-runs clean on 1 core (no hang); 1-core correctly shows the spinner-starves-producer pathology, real curve needs the many-core box.
87416f903a RFC 004 chunk 3: spinning-worker regression tests. Watchdog-timeout harness turns a lost wakeup into a failed assertion. Key test shutdown_releases_pinned_parked_siblings pins siblings in futex_wait while live>0 — verified to FAIL (15s timeout) when the AllDone broadcast is gutted, pass when restored. Also covers bounce/fanout (park+hot-spinner), N=1 cap=0 inertness, budget-0 opt-out, repeated lifecycles.
2ab82ac032 RFC 004 chunk 2: spin-then-park idle policy — submit rule (Dekker-paired wake), CAS-capped spinner enlistment, bounded spin on queue_len, futex park with lost-wakeup + shutdown guards, last-spinner handoff, AllDone broadcast. Gated on spin_budget_cycles>0; default-off path unchanged (full suite green).
d8b5c8db02 RFC 004 chunk 1: substrate — queue_len counter, n_spinning/park_seq/spinning state, spin_budget_cycles+max_spinners Config knobs, pub(crate) futex helpers. Behavioural no-op (feature off by default).
Compare 5 commits »
Markk116 pushed to master at Markk116/smarm 2026-06-13 16:58:54 +00:00
b0c9685c89 plan: roadmap refresh
Markk116 pushed to master at Markk116/urus 2026-06-13 16:00:32 +00:00
86c8d31b93 docs(channels): example, README section, ROADMAP v0.6 mark-done — chunk 4
0de2baa72d feat(channels): opt-in session persistence — v0.6 chunk 3
39e4f70e9d feat(channels): phoenix V2 JSON codec — v0.6 chunk 2
0531390613 feat(channels): core protocol machinery — v0.6 chunk 1
a676c01adc docs(roadmap): ratify v0.6 Channels design
Compare 22 commits »
Markk116 pushed to master at Markk116/smarm 2026-06-11 22:06:00 +00:00
cc4000a165 fix bug in test that only shows on multicore enviroments
156dcca496 doc: note bug report form urus agent
Compare 2 commits »