perf(cpu): isolate Raspberry Pi 5 polling contention - #361
Conversation
c53700e to
cc4b195
Compare
FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Transplant the reviewed Pi profile onto current upstream without treating the historical binary or T4/T3 arm as a one-variable polling control. Record the prompt-content mismatch and link the separately tracked mudler#293 discriminator. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Record the isolated current-upstream implementation worktree and move the scoped polling discriminator from READY to ACTIVE without moving the broad SERVE-CLI-BENCH row. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Reapply the same-binary concurrency-one polling discriminator unchanged onto current upstream. Keep poll as the default, reject blocking-c1 above c1, and record both the selected mode and blocking-call count in text and JSON output. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Record the hash-verified current-source Pi control: blocking the sole collector restores the four-thread arm while the three-thread control stays neutral and exact tokens hold. Keep the accepted llama.cpp floor unchanged because the pathological polling arm exceeds the binding spread limit, and leave C2 to fresh review and implementation. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Add a test-only wait trace that proves each blocking-c1 wait follows an empty nowait probe, cover the human-readable report, and repair the row anchors. The trace compiles out of production; native and AArch64 vllm-bench artifacts retain the reviewed executable bytes. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Make the output-wait test observer inspect the result only after the same unconditional AsyncLLM call used by production. Replace the source-text guard with a deterministic runtime probe whose bypass mutation fails normally, while preserving the measured AArch64 Release binary byte-for-byte. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Record the reviewed post-rebase operator gate without replacing the older binary's provenance. The current-main same-binary Pi control confirms four-core polling contention while T3 remains neutral, but the unstable poll arm still forbids a binding floor change. Correct the low-severity evidence precision finding by reporting the raw perf-stat T3 CPU-utilization medians to two decimal places. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
Require both benchmark admission arms to expose populated, exact per-request prompt IDs, so dropping the production assignment fails normally. Add semantic mutation evidence for the A76 inventory and STATUS ratchet changes, re-anchor the SERVE-CLI-BENCH row, and project the confirmed C1 polling cause without changing the llama.cpp floor. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Codex:gpt-5.6-sol [Codex]
cc4b195 to
858560f
Compare
|
@richiejp This branch currently conflicts with |
|
Reviewed as part of an external-contributor sweep. This branch is from 2026-08-11 and Nine conflicts, and two of them are against files that no longer exist: What changed under you:
For the record-file conflicts ( The measurement work itself is not in question here; this is purely about the branch's age. |
Row
KERNEL-GEMM-CPU-ELEM-A76— tracked by #284. The benchmark-control prerequisite is tracked by #293.Scope
This draft contains the reviewed concurrency-one
blocking-c1benchmark control and the Raspberry Pi 5 W0/C1 records. It preservespollas the default and rejectsblocking-c1above concurrency one.It also carries the latest-main integration repairs needed to preserve #206 prompt pretokenization, exact prompt IDs, and atomic ordered wave admission after rebasing.
This PR does not contain the general C2 event wait, the F16
neon-zip/neon-p8candidates, a default kernel change, or new assembly.What changed
poll/blocking-c1output-wait selector, CLI validation, JSON/text reporting, and exact-token tests.get_output_nowaitevaluation before the C1 blocking call.STATUS,BENCHMARKS,USAGE,NOW, the owning specs/matrices, and indexed Pi evidence. The llama.cpp floor remains unmet.Evidence
test_engine_core_proc,test_output_processor,test_async_llm,test_bench,test_cpu_threadpool).PATHcan resolve Git.Review state
Follow-up work not in this PR
518316436: product, native gates, and nine mutations passed review; a record-only anchor correction is required before it can pass final review.b120a71b5: native/cross-build/disassembly checks passed; review found that the physical-selection fixture needs an independent correctness golden before Pi benchmarking.baseline/neon-zip/neon-p8A/B, retain only a token-exact physical winner, and compare the full model against llama.cpp. Assembly remains forbidden until the C++ path clears that floor.Rebase status
This branch was rebased through upstream
11d45330b; upstreammainis now6dbedf9f3, and GitHub currently reports merge conflicts. Rebase, fresh conflict review, and exact-head QEMU/Pi evidence remain required before marking the PR ready.FOLLOWING_AGENTS_PROTOCOL