kubevirt / community

Community content
https://kubevirt.io
49 stars 103 forks source link

instancetype: Extend `PreferSpread` #287

Closed lyarwood closed 3 months ago

lyarwood commented 5 months ago

/cc @0xFelix /cc @fabiand /cc @vladikr

What this PR does / why we need it:

The preferSpread preferredCPUTopology was introduced with KubeVirt v1.1 and allows for vCPUs provided by an instance type to be spread across guest visible sockets and cores using a configurable ratio that defaults to 2.

This design proposal aims to extend this implementation by introducing new configurables within a preference to control how vCPUs are spread with the goal of allowing vCPUs to also be spread to threads.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged): Fixes #

Special notes for your reviewer:

This supersedes the original Allow custom guest CPU topologies within instancetypes proposal given insight from a few downstream teams around their need for SMT within the guest OS for their workloads. While this proposal doesn't guarantee performant SMT aligned threads within the guest it at least allows us to express that threads will be present through the existing instance type and preference API paradigms.

Checklist

This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR. Approvers are expected to review this list.

Release note:

NONE
lyarwood commented 3 months ago

@vladikr would you mind approving this as the implementation has already landed?

aburdenthehand commented 3 months ago

/approve

kubevirt-bot commented 3 months ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: aburdenthehand

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

The pull request process is described here

Needs approval from an approver in each of these files: - ~~[OWNERS](https://github.com/kubevirt/community/blob/main/OWNERS)~~ [aburdenthehand] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment