Merge pull request #83777 from lmdaly/fix-single-numa-node-with-best-effort-pods

Fixed bug in TopologyManager with SingleNUMANode Policy
This commit is contained in:
Kubernetes Prow Robot 2019-11-01 04:53:23 -07:00 committed by GitHub
commit 002dbf6a4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 11 deletions

View File

@ -37,7 +37,7 @@ func (p *singleNumaNodePolicy) Name() string {
}
func (p *singleNumaNodePolicy) CanAdmitPodResult(hint *TopologyHint) lifecycle.PodAdmitResult {
if !hint.Preferred || hint.NUMANodeAffinity.Count() > 1 {
if !hint.Preferred {
return lifecycle.PodAdmitResult{
Admit: false,
Reason: "Topology Affinity Error",

View File

@ -31,16 +31,6 @@ func TestPolicySingleNumaNodeCanAdmitPodResult(t *testing.T) {
hint: TopologyHint{nil, false},
expected: false,
},
{
name: "NUMANodeAffinity has multiple NUMA Nodes masked in topology hints",
hint: TopologyHint{NewTestBitMask(0, 1), true},
expected: false,
},
{
name: "NUMANodeAffinity has one NUMA Node masked in topology hints",
hint: TopologyHint{NewTestBitMask(0), true},
expected: true,
},
}
for _, tc := range tcases {

View File

@ -857,6 +857,24 @@ func TestAdmit(t *testing.T) {
hp: []HintProvider{},
expected: true,
},
{
name: "QOSClass set as BestEffort. single-numa-node Policy. No Hints.",
qosClass: v1.PodQOSBestEffort,
policy: NewRestrictedPolicy(),
hp: []HintProvider{
&mockHintProvider{},
},
expected: true,
},
{
name: "QOSClass set as BestEffort. Restricted Policy. No Hints.",
qosClass: v1.PodQOSBestEffort,
policy: NewRestrictedPolicy(),
hp: []HintProvider{
&mockHintProvider{},
},
expected: true,
},
{
name: "QOSClass set as Guaranteed. BestEffort Policy. Preferred Affinity.",
qosClass: v1.PodQOSGuaranteed,