Skip to content

fix(cpu-alloc): colocate lvol_poller with jc-singleton, not app_thread - #1203

Merged
wmousa merged 1 commit into
mainfrom
fix/lvol-poller-jc-singleton-colocation
Aug 3, 2026
Merged

fix(cpu-alloc): colocate lvol_poller with jc-singleton, not app_thread#1203
wmousa merged 1 commit into
mainfrom
fix/lvol-poller-jc-singleton-colocation

Conversation

@wmousa

@wmousa wmousa commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

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.

  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
wmousa force-pushed the fix/lvol-poller-jc-singleton-colocation branch from 9c10d4a to aba9e63 Compare July 30, 2026 13:17
@wmousa
wmousa merged commit 6d9fce9 into main Aug 3, 2026
9 of 11 checks passed
@wmousa
wmousa deleted the fix/lvol-poller-jc-singleton-colocation branch August 3, 2026 13:36
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.

3 participants