Build modules size their steps from the node's build share once it is given (issue 1806, change A) #499

Merged
mesh-tools merged 6 commits from fix/build-cpu-yields into main 2026-10-26 14:22:50 +00:00
Member

Issue 1806, ADR 0553/0554. Change A, group fix/build-cpu-yields with mesh-sdk and mesh-host.

mesh-build-go, mesh-build-node and mesh-build-image pin mesh-sdk 17b7cc48; each step's go, node and buildah commands get GOMAXPROCS/UV_THREADPOOL_SIZE from buildstep.NodeLimits — none until change B gives the share; then share ÷ own capacity (shanks: 4). The per-module cpu-cap setting is gone. Status tools show cpu.limits and cpu.in-force (unit, slice, nice).

Rebuilds mesh-build-go, mesh-build-node and mesh-build-image: their runtimes restart once. Builds are otherwise unchanged until change B gives them the share: no thread limit, no slice yet.

Tests: unit suites and vet clean. Try try-1793022907797599445 passed.

Reviewed-by: review-buildcpu@shanks at 2aecbe8055

Issue 1806, ADR 0553/0554. Change A, group fix/build-cpu-yields with mesh-sdk and mesh-host. mesh-build-go, mesh-build-node and mesh-build-image pin mesh-sdk 17b7cc48; each step's go, node and buildah commands get GOMAXPROCS/UV_THREADPOOL_SIZE from buildstep.NodeLimits — none until change B gives the share; then share ÷ own capacity (shanks: 4). The per-module cpu-cap setting is gone. Status tools show cpu.limits and cpu.in-force (unit, slice, nice). Rebuilds mesh-build-go, mesh-build-node and mesh-build-image: their runtimes restart once. Builds are otherwise unchanged until change B gives them the share: no thread limit, no slice yet. Tests: unit suites and vet clean. Try try-1793022907797599445 passed. Reviewed-by: review-buildcpu@shanks at 2aecbe80553cb2b1787e44d966f3a96629f98c36
mesh-tools added 6 commits 2026-10-26 14:22:09 +00:00
The operator's desktop slows while it builds (shanks at 92%, the Go build
runtime at 1650% of 24 processors). The build modules declare cpu-cap
(default shanks=50,g14=50,ace=75), which the composer turns into the runtime's
quota at idle priority; each step's go, node and buildah commands get
GOMAXPROCS and UV_THREADPOOL_SIZE for their part of it, and the status tools
show the limits and what the kernel holds the runtime to.
Review round 1: a cap per module let three build modules take three shares
of the node. The share is now one node value held by the node-engine's
yielding slice; each step divides it by every build slot of the node, from the
composer's words, or assumes every build seat at its own capacity without them.
Change A rebuilds the three build modules, so their runtimes restart once; it
changes nothing else about their builds until change B gives them the share.
Merge main into fix/build-cpu-yields; pin mesh-sdk at its head (ADR 0553, ADR 0554)
mesh/delivery merged: source.main moved to novox/mesh-catalog@ceb3aac9b39a
mesh/delivery-group group fix/build-cpu-yields merged: every member is merged
mesh/check being carried to 2aecbe80553c on ceb3aac9b39a | from 9a8e54d988fe, mesh-host bba9081ca127
2aecbe8055
Author
Member

Delivery novox/mesh-catalog@2aecbe80553c — merged since 2026-10-26T14:22:53Z

Source — source.main moved to novox/mesh-catalog@ceb3aac9b3. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Group fix/build-cpu-yields: novox/mesh-catalog@2aecbe8055, novox/mesh-host@a78239b2aa, novox/mesh-sdk@17b7cc480d

Transitions

  • 2026-10-26 14:22 (new) → proposed (announced): novox/mesh-catalog#499's head announced
  • 2026-10-26 14:22 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-10-26 14:22 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@2aecbe80553c` — **merged** since 2026-10-26T14:22:53Z **Source** — source.main moved to novox/mesh-catalog@ceb3aac9b39a. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Group** `fix/build-cpu-yields`: novox/mesh-catalog@2aecbe80553c, novox/mesh-host@a78239b2aa05, novox/mesh-sdk@17b7cc480d6d **Transitions** - 2026-10-26 14:22 (new) → proposed (announced): novox/mesh-catalog#499's head announced - 2026-10-26 14:22 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-10-26 14:22 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit ceb3aac9b3 into main 2026-10-26 14:22:50 +00:00
mesh-tools deleted branch fix/build-cpu-yields 2026-10-26 14:22:51 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#499