Failed to allocate guaranteed pods to non-isolated CPU

Bug #2042795 reported by Boovan Rajendran
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
Medium
Boovan Rajendran

Bug Description

Brief Description

For k8s 1.26 when we create a pod of guaranteed QOS after setting CPU manager policy as static the pod should be allocated to non-isolated CPU instead it is allocated to isolated CPU.
Severity

Major

Steps to Reproduce

1. Set up the "kube-cpu-mgr-policy=static" label and allocate two isolcpus.

system host-lock controller-0
system host-label-assign --overwrite controller-0 kube-cpu-mgr-policy=static
system host-cpu-modify -f application-isolated p0 2 controller-0
system host-unlock controller-0

2. Create a guaranteed pod with isolcpus specified.

Expected Behavior

Pod should be allocated to non-isolated CPU.

Actual Behavior

Pod is allocated to isolated CPU.

Reproducibility

100%

System Configuration

AIO-SX

Last Pass

NA

Timestamp/Logs

NA

Alarms

NA

Test Activity

Developer Testing

Workaround

NA

Changed in starlingx:
assignee: nobody → Boovan Rajendran (brajendr)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to integ (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/starlingx/integ/+/900148

Changed in starlingx:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to integ (master)

Reviewed: https://review.opendev.org/c/starlingx/integ/+/900148
Committed: https://opendev.org/starlingx/integ/commit/ace57cab1310608f80373e1f6059e2cfd09747b9
Submitter: "Zuul (22348)"
Branch: master

commit ace57cab1310608f80373e1f6059e2cfd09747b9
Author: Boovan Rajendran <email address hidden>
Date: Sun Nov 5 23:33:15 2023 -0500

    Set the affinity of guaranteed pod to non-isolated CPUs

    This corrects kubelet cpumanager static cpuset tracking for isolcpus
    for versions 1.26.1 and 1.27.5. This ensures that pods specified with
    isolcpus + guaranteed QoS + integer cpu requests, are affined to
    exclusive cpuset and tracked as non-isolated cpus.

    Test Plan:
    Set the "kube-cpu-mgr-policy=static" label and allocate isolcpus.

    The following tests are performed for both k8s 1.26.1 and 1.27.5:
    PASS: Guaranteed pod without isolcpus specified
          (Pod is affined to exclusive cpu)
    PASS: BestEffort pod with isolcpus specified
          (Pod is affined to isolcpus)
    PASS: Burstable pod with isolcpus specified
          (Pod is affined to isolcpus)
    PASS: Guaranteed pod with isolcpus specified (integer CPU)
          (Pod is affined to exclusive cpu)
    PASS: Guaranteed pod with isolcpus specified (fractional CPU)
          (Pod is affined to defaultCpuSet)

    Closes-Bug: 2042795

    Change-Id: I54ac47d1ec697a53999299cfa84093cb5fd6477a
    Signed-off-by: Boovan Rajendran <email address hidden>

Changed in starlingx:
status: In Progress → Fix Released
Ghada Khalil (gkhalil)
Changed in starlingx:
importance: Undecided → Medium
tags: added: stx.9.0 stx.containers
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.