Repository navigation
Support configurable RandomX modes and initialization - #605
pithead-developer[bot] wants to merge 12 commits into
Conversation
Part of #532. Implemented by an operator-run gpt-6-astra session at the owner's request. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Operator: this v2.x enhancement stays a held draft until RigForge 1.18.1 is tagged (due Fri 2026-11-06, Sat 11-07 at the latest). 1.18.1 is cut from develop, so merging this first would widen that release. After the tag: rebase on develop, run the agent review, and request the owner's approval. |
|
Operator: released to the runner (owner 2026-11-06). New work goes to the local Flash-Next model first; Claude only after three local rounds or for sensitive work. |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…coverage Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
FAIL What I investigatedI reviewed PR #605 at head 9609fd5 against issue #532. The issue asks for three things: a configurable RandomX mode, init and init-avx2; a HugePages reservation and 1gb-pages setting that follow the mode; and a doctor warning about the mode and dataset memory. It also asks for one bench run in light mode to record the hashrate ratio. The unit work is real. All 10 GitHub checks pass. The new suite fails on the base code and passes on the head, and it runs in CI. The file-budget gate and the topology scan pass. It still goes back for three reasons. It changes the XMRig config RigForge writes and the HugePages/GRUB reservation that setup applies, but it has no tier4-e2e job on its head. The issue's bench run is not done, yet the body still says "Closes #532". One new render step ignores its own failure.
Reviewed head: What are the gaps
|
…ODE once Guard _apply_randomx_config in generate_xmrig_config with the #634 _config_render_fail pattern, skip a tune candidate whose config cannot be rendered, export RX_MODE from parse_config instead of defaulting it at each proposed-grub.sh call, and let doctor reuse the mode _check_randomx_memory read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… export Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
PASS What I investigatedThis is a round-3 re-review of PR #605 (issue #532, configurable RandomX mode, init and init-avx2) at head c5bc4e6, covering the diff since 9609fd5 (worker commits 9a4eb7c and c5bc4e6). Of the three earlier return findings, two are fixed and one was moved to rigforge#655 by an architect ruling that is on record. Both notes are fixed. Each new test goes red when its fix is reverted and green on the head. Tier4-e2e job 3520 on the head is green, all ten GitHub checks pass, and the local suite passes (2437 passed, 0 failed).
Reviewed head: |
Owner brief for
|
The base branch was changed.
|
develop-v1.19.0 was folded back into develop (#664, squash 🤖 Generated with Claude Code |
Resolve the conflicts with the 1.19.0 fold so the RandomX mode work lands on top of the shared-host profile: both util/ overlays source, parse and apply in sequence, the doctor 1GB-page check gains the light-mode branch inside develop's shared-host guard and machine tags, and the coverage gate now includes util/randomx.sh beside util/config-apply-state.sh. Co-Authored-By: Claude Code <noreply@anthropic.com>
…ling Co-Authored-By: Claude Code <noreply@anthropic.com>
tests/daemon-pools.sh sources rigforge.sh into run.sh's main shell, and the readonly colour constants then break the in-process source. Register the suite ahead of it so the source is the same fresh one it was before the merge. Co-Authored-By: Claude Code <noreply@anthropic.com>
The five _check_randomx_memory rows recorded empty IDs, which the develop daemon-pool doctor JSON assertions now reject. Co-Authored-By: Claude Code <noreply@anthropic.com>
What's the problem
Closes #532
RigForge hard-codes XMRig's
randomx.modetofastandrandomx.init/init-avx2to automatic, so a host that cannot spare ~2.5 GB cannot select light mode. The HugePages reservation always budgets for the fast dataset, anddoctorgives no early warning when the dataset will not fit.How I fixed it
xmrig.randomxoverlay (mode,init,init-avx2) inutil/randomx.sh. Defaults are unchanged (fast,-1,-1). It is applied last when the config is rendered, so operator settings beat saved tuning. Light mode forces1gb-pagesoff, including in tune candidates.parse_configexportsRX_MODEonce.util/proposed-grub.shreads it, defaults to fast, and in light mode sizes the reservation for one cache plus scratchpads with no 1 GB dataset pages. Setup, its preview,tune_kerneland tuning all use the same mode.|| _config_render_fail ... || return 1guard as the other render steps (Preserve the last valid miner configuration when rendering fails #634). If it fails, the render stops and the previousconfig.jsonstays in place. Atunecandidate whose config cannot be rendered is skipped as 0 H/s and is never benchmarked.doctornames the mode. In fast mode with the service stopped, it warns when available memory plus free HugePages is below the 2080 MiB dataset bound. Its 1 GB-pages line reuses the mode that check already read.docs/configuration.md(the key, the render order, the failure behaviour, and switching modes needingsetupplus a reboot), plusdocs/hardware.md,docs/how-it-works.md,README.mdandtests/README.md.Measurement moved to rigforge#655 by operator ruling.
Here is the proof
Head
c5bc4e6ed55537d7e6000224f62feb6a7fc1bc21, basedevelop-v1.19.0.bash tests/test-randomx-mode.sh: PASS. The new cases fail without their fix. With the_config_render_failguard removed:FAIL: a failed xmrig.randomx overlay still rendered a config. With HEAD~2's rigforge.sh:FAIL: tune benchmarked a candidate whose config failed to render. Withoutexport RX_MODE:FAIL: expected [light], got []. Without the doctor'sRX_MODEreset:FAIL: expected [], got [light].make test-suiteat 9a4eb7c (c5bc4e6 changes onlyutil/randomx.shand the RandomX test, both rerun above): exit 0,rigforge tests: 2437 passed, 0 failed.shellcheck --severity=warning rigforge.sh util/randomx.sh util/proposed-grub.sh tests/test-randomx-mode.sh tests/coverage.sh: PASS.shfmt -i 4 -don the changed shell files: PASS (local shfmt 3.13.1; CI pins its own).make lint-topology: PASS.FILE_BUDGET_REQUIRE_BASE=1 bash scripts/lint-file-budget.sh: PASS (rigforge.sh 6301 lines, ceiling 6303).markdownlint-cli2@0.23.3 docs/configuration.md: 0 issues.gh pr checks 605).modeoption; every job checks the pushed commit out on the rig, runs the phases, and re-applies the previous checkout afterwards, so it is not a check-mode read:bench-ci job 3520@c5bc4e6ed55537d7e6000224f62feb6a7fc1bc21 · rigforge · tier4-e2e
Generated by
bench-ci evidence 3520@c5bc4e6ed55537d7e6000224f62feb6a7fc1bc21; re-run it to check.Measurement moved to rigforge#655 by operator ruling. The bench rig's config does not set
xmrig.randomx, so job 3520 exercises the default fast render path; light mode on real hardware is part of that follow-up.Ponytail pass: the review's duplication note is cut. The six
RX_MODE="${RX_MODE:-fast}"prefixes and the doctor's secondjqmode read are gone, with no new abstraction added.🤖 Generated with Claude Code