Skip to content

feat(tuning): register nova.nested.virt.enabled for the compute roles - #642

Merged
github-actions[bot] merged 1 commit into
developfrom
feat/nova-nested-virt-tuning
Sep 15, 2026
Merged

github-actions[bot] merged 1 commit into
developfrom
feat/nova-nested-virt-tuning

Conversation

@traviswu-bigstack

@traviswu-bigstack traviswu-bigstack commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

What

Fixes #648.

Registers the nova.nested.virt.enabled tuning introduced by bigstack-oss/cubecos#1365 (the fix for bigstack-oss/cubecos#1361) so the API advertises it against the roles that actually apply it.

tuningToRoles[NovaNestedVirtEnabled] = nodes.ComputeRoles — {compute, control-converged, edge-core}.

Why

The tuning's only effect is cpu_model_extra_flags in nova.conf's [libvirt] section, written under if (IsCompute(s_eCubeRole)) in config_nova.cpp — so control-only, storage and moderator nodes never act on it. Without an entry in the map, getTuningRoles falls back to nodes.AllRoles (tuning.go:452), which would advertise it on nodes where libvirt does not run.

ComputeRoles matches the sibling hypervisor-scoped tunings (nova.gpu.type, nova.control.host.memory). It is deliberately narrower than novaLiveResizeRoles, which includes control and moderator because live-resize also constrains nova-api/scheduler behaviour; nested virt does not.

The value must be uniform cluster-wide, which this role set expresses: every compute-capable node applies the same setting. A host exposing vmx while its peers mask it would hand a migrated guest a different CPU than it booted with — the same class of inconsistency cubecos#1365 exists to prevent.

Reviewer notes

  • No docs.yaml change: the tuning entries there are illustrative response examples, not a validating enum, and they already omit the nova.live.resize.* family — adding only this one would be inconsistent. Say the word if you would rather the examples be exhaustive.
  • Depends on cubecos#1365 landing for the tuning to exist in hex_sdk tuning_dump; until then setTuningSpecs simply never sees the name and the map entry is inert, so merge order does not matter.

Docs

Behaviour is documented by cubecos#1365's handbook note; no separate handbook change proposed here.

@traviswu-bigstack
traviswu-bigstack force-pushed the feat/nova-nested-virt-tuning branch from ff4faf9 to 1e5b93e Compare September 1, 2026 10:54
@traviswu-bigstack
traviswu-bigstack marked this pull request as ready for review September 1, 2026 11:02
@traviswu-bigstack
traviswu-bigstack requested review from a team and raven-pan as code owners September 1, 2026 11:02
Signed-off-by: Travis Wu <travis.wu@bigstack.co>
@Eandalf-Bigstack
Eandalf-Bigstack force-pushed the feat/nova-nested-virt-tuning branch from 1e5b93e to 28cdf6e Compare September 15, 2026 06:59
@Eandalf-Bigstack Eandalf-Bigstack added the done Merge the pull request label Sep 15, 2026
@github-actions
github-actions Bot merged commit 28cdf6e into develop Sep 15, 2026
7 of 8 checks passed
@github-actions
github-actions Bot deleted the feat/nova-nested-virt-tuning branch September 15, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

done Merge the pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Task] Register nova.nested.virt.enabled with the compute roles in the tuning API

3 participants