fix(cpu-alloc): colocate lvol_poller with jc-singleton, not app_thread - #1203
Merged
Conversation
calculate_core_allocations()'s colocate_lvs branch put lvol_poller_core on app_thread_core's slot. Since jc_singleton_core is assigned in every branch, storage_node_ops.py's poller-group RPC unconditionally preferred jc_singleton_mask (added in e3e8fd0 to force the two onto the same core) � which silently clobbered the >=32 vCPU tier's deliberately dedicated lvol_poller core every time, defeating the point of giving it one. Colocate with jc_singleton_core's slot instead, so lvol_poller_mask becomes the single source of truth: equal to jc_singleton_mask when nothing dedicated was assigned, distinct when it was. Update add_node()/_restart_storage_node_impl() to use lvol_poller_mask directly (jc_singleton_mask only as a last-resort fallback if that reservation came up empty) and fix their now-stale comments to match. Add regression coverage for calculate_core_allocations' colocation behavior across all three size tiers � there was none before.
wmousa
force-pushed
the
fix/lvol-poller-jc-singleton-colocation
branch
from
July 30, 2026 13:17
9c10d4a to
aba9e63
Compare
geoffrey1330
approved these changes
Jul 31, 2026
Hamdy-khader
approved these changes
Aug 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
calculate_core_allocations()'s colocate_lvs branch put lvol_poller_core
on app_thread_core's slot. Since jc_singleton_core is assigned in every
branch, storage_node_ops.py's poller-group RPC unconditionally
preferred jc_singleton_mask (added in e3e8fd0 to force the two onto
the same core) � which silently clobbered the >=32 vCPU tier's
deliberately dedicated lvol_poller core every time, defeating the
point of giving it one.
Colocate with jc_singleton_core's slot instead, so lvol_poller_mask
becomes the single source of truth: equal to jc_singleton_mask when
nothing dedicated was assigned, distinct when it was. Update
add_node()/_restart_storage_node_impl() to use lvol_poller_mask
directly (jc_singleton_mask only as a last-resort fallback if that
reservation came up empty) and fix their now-stale comments to match.
Add regression coverage for calculate_core_allocations' colocation
behavior across all three size tiers � there was none before.