Skip to content

[libvirt_manager] Allow for multi-numa guest deployment#3686

Open
jamepark4 wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
jamepark4:add_multi_numa
Open

[libvirt_manager] Allow for multi-numa guest deployment#3686
jamepark4 wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
jamepark4:add_multi_numa

Conversation

@jamepark4
Copy link
Contributor

@jamepark4 jamepark4 commented Feb 16, 2026

Allow for guests to deploy with multiple numa nodes if a numa key is supplied to the cifmw_libvirt_manager_configuration when defining a guest. This is useful when testing multi-numa environments that take advantage of NUMA affinity and managing cpu policy across a slightly more complex architecture. Logic assumes operator will define an evenly distributed system and will not take into account remainders.

Signed-off-by: James Parker jparker@redhat.com

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 16, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign evallesp for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/a7bff98fca3f4585899a8e5651cb9ede

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 15m 36s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 19m 55s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 34m 27s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 02m 47s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 46s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 38s
✔️ cifmw-pod-pre-commit SUCCESS in 8m 50s
cifmw-molecule-libvirt_manager FAILURE in 10m 59s
cifmw-molecule-reproducer FAILURE in 9m 22s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/8382be646dc64af99078d9a48014c756

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 02m 50s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 16m 35s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 29m 39s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 47m 31s
✔️ cifmw-pod-zuul-files SUCCESS in 5m 04s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 22s
cifmw-pod-pre-commit FAILURE in 8m 29s
✔️ cifmw-molecule-libvirt_manager SUCCESS in 41m 42s
✔️ cifmw-molecule-reproducer SUCCESS in 14m 51s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/67dc2b64a8b64d969257d422126ff0e3

✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 38m 27s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 23m 56s
cifmw-crc-podified-edpm-baremetal RETRY_LIMIT in 14m 32s
cifmw-crc-podified-edpm-baremetal-minor-update RETRY_LIMIT in 14m 43s
✔️ cifmw-pod-zuul-files SUCCESS in 5m 29s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 56s
cifmw-pod-pre-commit FAILURE in 8m 36s
✔️ cifmw-molecule-libvirt_manager SUCCESS in 39m 41s
cifmw-molecule-reproducer FAILURE in 15m 13s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/9d5465b74e2848a9bf69f98439617884

✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 43m 19s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 25m 46s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 29m 59s
cifmw-crc-podified-edpm-baremetal-minor-update FAILURE in 40m 11s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 41s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 52s
✔️ cifmw-pod-pre-commit SUCCESS in 7m 45s
✔️ cifmw-molecule-libvirt_manager SUCCESS in 40m 43s
✔️ cifmw-molecule-reproducer SUCCESS in 15m 10s

@jamepark4 jamepark4 changed the title Allow for multi-numa guest deployment [libvirt_manager] Allow for multi-numa guest deployment Mar 10, 2026
Allow for guests to deploy with multiple numa nodes if a numa key is
supplied to the cifmw_libvirt_manager_configuration when defining a
guest. This is useful when testing multi-numa environments that take
advantage of NUMA affinity and managing cpu policy across a slightly
more complex architecture. Logic assumes operator will define an evenly
distributed system and will not take into account remainders.

Signed-off-by: James Parker jparker@redhat.com
@github-actions
Copy link

This PR is stale because it has been for over 15 days with no activity.
Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale label Mar 26, 2026
<cpu mode='host-passthrough' check='none'>
{% if vm_data.numa is defined and vm_data.numa|int > 1 %}
<numa>
{% set cores_per_node = (vm_data.cpus|int // vm_data.numa|int) %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had no previous knowledge with NUMA
(non-blocking) question: As we're dropping here reminders we're going to have some CPUs not allocated.
Should be possible to allocate +1 node if we have some reminders and if it's the last node?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my original workup I did take that into consideration, but it was a little verbose. Given how rare it would be to need an uneven Core to NUMA allocation ratio I thought it might be better to keep it simple. Having said all that, after thinking on it some more, it might be better to try and leverage cifmw_libvirt_manager_configuration_patch in the job definition. This allows a user to fine tune the memory/cpu ratio exactly the way they would like for the guest. I'm going to experiment with that now and if that handles my use case I think it would best to abandon this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants