Skip to content

Commit eef698f

Browse files
committed
Respond to feedback
Signed-off-by: James Sturtevant <[email protected]>
1 parent 1204ef3 commit eef698f

File tree

2 files changed

+22
-15
lines changed

2 files changed

+22
-15
lines changed

keps/sig-windows/4885-windows-cpu-and-memory-affinity/README.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@ tags, and then generate with `hack/update-toc.sh`.
8484
- [Non-Goals](#non-goals)
8585
- [Proposal](#proposal)
8686
- [User Stories (Optional)](#user-stories-optional)
87-
- [Story 1](#story-1)
88-
- [Story 2](#story-2)
8987
- [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional)
9088
- [Risks and Mitigations](#risks-and-mitigations)
9189
- [Design Details](#design-details)
@@ -136,7 +134,7 @@ checklist items _must_ be updated for the enhancement to be released.
136134

137135
Items marked with (R) are required *prior to targeting to a milestone / release*.
138136

139-
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
137+
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
140138
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
141139
- [x] (R) Design details are appropriately documented
142140
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
@@ -191,19 +189,24 @@ demonstrate the interest in a KEP within the wider Kubernetes community.
191189
192190
[experience reports]: https://github.com/golang/go/wiki/ExperienceReports
193191
-->
194-
Add support for CPU and memory affinity on windows by enabling the cpu, memory and topology managers for Windows, which are currently not enabled.
195192

196-
Enables Low latency workloads co-hosted on the same nodes in Windows Server show noisy neighbor behavior preventing them to achieve their performance goals. This feature is needed to add the necessary isolation to accomplish both high performance and co-hosting efficiency. The feature is enabled and available in Linux and Windows users are asking for the same features on Windows.
193+
Add support for CPU and memory affinity for Windows nodes by enabling the cpu, memory and topology managers for Windows,
194+
which are currently not enabled.
195+
196+
Enabling Low latency workloads co-hosted on the same nodes in Windows Server show noisy neighbor behaviors
197+
preventing them from achieving their expected performance goals.
198+
This feature is needed to add the necessary isolation to accomplish both high performance and co-hosting efficiency.
199+
The feature is enabled and available in Linux and Windows users are asking for the same features on Windows.
197200

198201
### Goals
199202

200203
<!--
201204
List the specific goals of the KEP. What is it trying to achieve? How will we
202205
know that this has succeeded?
203206
-->
204-
- Enable CPU manager for Windows allowing for CPU affinity
205-
- Enable Memory Manager for Windows allowing for Memory Affinity
206-
- Enable Topology Manager for Windows allowing for coordination of Memory and CPU affinity
207+
- Enable CPU manager for Windows allowing for CPU affinity for configured pods
208+
- Enable Memory Manager for Windows allowing for memory affinity for configured pods
209+
- Enable Topology Manager for Windows allowing for coordination of Memory and CPU affinity at the node level for scheduled pods
207210

208211
### Non-Goals
209212

@@ -229,7 +232,7 @@ nitty-gritty.
229232
The proposal requires very little changes to the code for the managers and instead extends the [Windows](https://learn.microsoft.com/en-us/windows/win32/procthread/processor-groups) concepts to a CAdvisor mapping to enable the [topology structure in kubelet](https://github.com/kubernetes/kubernetes/blob/cede96336a809a67546ca08df0748e4253ec270d/pkg/kubelet/cm/cpumanager/topology/topology.go#L34-L39).
230233

231234
There are no plans to change the core logic for selecting CPU's and NUMA nodes in the CPU/Memory/Tolopology managers from the existing KEPS ([memory-manager](keps/sig-node/1769-memory-manager)/[cpu-manager](keps/sig-node/3570-cpu-manager)/[topology-manager](keps/sig-node/693-topology-manager")). The logic is currently in platform agnostic
232-
structure so the selection process is does not require changes to adapt for Windows. The Windows specific considerations for each of the managers will be covered in separate sections in this document.
235+
structures so the selection process is does not require changes for adoption on Windows. The Windows specific considerations for each of the managers will be covered in separate sections in this document.
233236

234237

235238
### User Stories (Optional)
@@ -241,9 +244,11 @@ the system. The goal here is to make this feel real for users without getting
241244
bogged down.
242245
-->
243246

244-
#### Story 1
247+
The User stories on Windows are similar to Linux:
245248

246-
#### Story 2
249+
https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3570-cpumanager#user-stories-optional
250+
https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1769-memory-manager#user-stories
251+
https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/693-topology-manager#user-stories-optional
247252

248253
### Notes/Constraints/Caveats (Optional)
249254

@@ -330,7 +335,7 @@ each processor is identified by its group number and its group-relative processo
330335

331336
In Cri we will add the following structure to the `WindowsContainerResources` in CRI:
332337

333-
```golang
338+
```protobuf
334339
message WindowsCpuGroupAffinity {
335340
// CPU mask relative to this CPU group.
336341
uint64 cpu_mask = 1;
@@ -477,6 +482,7 @@ For Beta and GA, add links to added tests together with links to k8s-triage for
477482
https://storage.googleapis.com/k8s-triage/index.html
478483
-->
479484

485+
Integration tests do not run on Windows. Functionality will be covered by unit and e2e tests.
480486

481487
##### e2e tests
482488

@@ -490,7 +496,7 @@ https://storage.googleapis.com/k8s-triage/index.html
490496
We expect no non-infra related flakes in the last month as a GA graduation criteria.
491497
-->
492498

493-
- e2e_node will need to be enabled for windows to add
499+
- e2e_node will need to be enabled for windows to add coverage
494500

495501
### Graduation Criteria
496502

@@ -525,6 +531,7 @@ Below are some examples to consider, in addition to the aforementioned [maturity
525531

526532
- Feature implemented behind a feature flag
527533
- Initial basic e2e tests in Windows e2e suite are added
534+
- unit tests for Windows specific components are added
528535

529536
#### Beta
530537

keps/sig-windows/4885-windows-cpu-and-memory-affinity/kep.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ latest-milestone: "v1.32"
3131
# The milestone at which this feature was, or is targeted to be, at each stage.
3232
milestone:
3333
alpha: "v1.32"
34-
beta: "v1.33"
35-
stable: "v1.34"
34+
beta: ""
35+
stable: ""
3636

3737
# The following PRR answers are required at alpha release
3838
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)