Skip to content

feat: benchmark Nethermind Linux priority policies - #31

Closed
kamilchodola wants to merge 4 commits into
mainfrom
perf/linux-priority-review
Closed

kamilchodola wants to merge 4 commits into
mainfrom
perf/linux-priority-review

Conversation

@kamilchodola

@kamilchodola kamilchodola commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Adds an opt-in container configuration for comparing Nethermind's existing managed thread priority with a scoped Linux native nice value. Default container arguments remain unchanged.

Changes

  • Validate EXPB_NETHERMIND_PRIORITY_MODE=off|observe|nice|boost and reject enabled modes for other clients.
  • Forward enabled modes as NETHERMIND_EXPB_PRIORITY_MODE and grant SYS_NICE equally to observe, nice and boost containers. The companion client's boost policy tries -20 then -6; nice retains the original -5 experiment.
  • Forward explicit off without granting SYS_NICE, so disabling the policy still works with the new Linux default. An absent override preserves the usual container arguments.
  • Add a validated non-negative EXPB_SKIP_OVERRIDE for aligning payload corpora with snapshots. With the current Fusaka corpus, skip=10 and warmup=1 preserve block 25,490,001 as the first measured block without submitting obsolete pre-snapshot fork choices.

This requires a Nethermind image containing the companion priority probe. It changes native nice priority; it does not implement CPU affinity or P/E-core selection.

Use explicit observe for the unchanged-native-priority control: the companion Nethermind revision enables the boost policy by default on Linux. Existing historical timing results used nice=-5 and do not measure the new policy.

Validation

Focused tests cover defaults, mode validation, capability/environment forwarding, skip validation, and payload-server/K6 measurement boundaries. Integration experiments on the original prototype branches completed 16 valid runs across AMD realblocks, superblocks and Fusaka, plus ARM Fusaka. The publication branch excludes pre-existing SSE/profiler changes, so those measurements are evidence for the original experimental build, not a benchmark of this exact branch tip.

Current validation: 16 focused tests passed, including boost forwarding, explicit off, absent overrides and non-Nethermind behavior; Ruff and git diff --check passed.

Companion Nethermind runtime and workflow PR: NethermindEth/nethermind#13412.

@kamilchodola kamilchodola changed the title feat: add opt-in Nethermind Linux priority benchmark feat: benchmark Nethermind Linux priority policies Sep 13, 2026
@kamilchodola
kamilchodola marked this pull request as ready for review September 14, 2026 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant