Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pkg/device/awsneuron/device.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ func (neuron *AWSNeuronDevices) Fit(devices []*device.DeviceUsage, request devic
if len(alloc) == 0 {
reason[common.NumaNotFit]++
klog.V(5).InfoS(common.NumaNotFit, "pod", klog.KObj(pod), "device", devices, "request nums", request.Nums, "numa")
return false, tmpDevs, common.GenReason(reason, len(reason))
return false, tmpDevs, common.GenReason(reason, len(devices))
}
for _, dev := range alloc {
for _, val := range devices {
Expand Down
27 changes: 27 additions & 0 deletions pkg/device/awsneuron/device_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -860,6 +860,33 @@ func TestDevices_Fit(t *testing.T) {
wantDevIDs: []string{},
wantReason: "1/1 ExclusiveDeviceAllocateConflict",
},
{
name: "fit fail: NumaNotFit with multiple devices",
devices: []*device.DeviceUsage{
{
ID: "dev-0", Index: 0, Used: 0, Count: 2, Totalcore: 3,
Type: AWSNeuronDevice, Health: true,
CustomInfo: map[string]any{AWSNodeType: "trn"},
},
{
ID: "dev-1", Index: 1, Used: 0, Count: 2, Totalcore: 3,
Type: AWSNeuronDevice, Health: true,
CustomInfo: map[string]any{AWSNodeType: "trn"},
},
},
request: device.ContainerDeviceRequest{
Nums: 2,
Memreq: 0,
MemPercentagereq: 0,
Coresreq: 2,
Type: AWSNeuronDevice,
},
annos: map[string]string{},
wantFit: false,
wantLen: 0,
wantDevIDs: []string{},
wantReason: "1/2 NumaNotFit",
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
}

for _, test := range tests {
Expand Down
2 changes: 1 addition & 1 deletion pkg/device/kunlun/device.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func (kl *KunlunDevices) Fit(devices []*device.DeviceUsage, request device.Conta
if len(alloc) == 0 {
reason[common.NumaNotFit]++
klog.V(5).InfoS(common.NumaNotFit, "pod", klog.KObj(pod), "device", devices, "request nums", request.Nums, "numa")
return false, tmpDevs, common.GenReason(reason, len(reason))
return false, tmpDevs, common.GenReason(reason, len(devices))
}

for _, dev := range alloc {
Expand Down
29 changes: 27 additions & 2 deletions pkg/device/kunlun/device_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ limitations under the License.
package kunlun

import (
"strings"
"testing"

"gotest.tools/v3/assert"
Expand Down Expand Up @@ -50,7 +49,33 @@ func TestKunlunVDevices_Fit_Mutex(t *testing.T) {
}}
fit, _, reason := dev.Fit(devices, req, mutexPod, nodeInfo, allocated)
assert.Equal(t, fit, false)
assert.Assert(t, strings.Contains(reason, common.ExclusiveDeviceAllocateConflict), reason)
assert.Equal(t, reason, "8/8 "+common.ExclusiveDeviceAllocateConflict)
}

func TestKunlunVDevices_Fit_NumaNotFit(t *testing.T) {
dev := &KunlunVDevices{}
devices := make([]*device.DeviceUsage, 8)
for i := range devices {
devices[i] = &device.DeviceUsage{Index: uint(i), Used: 0, Usedmem: 0, Totalmem: 1024}
}
req := device.ContainerDeviceRequest{Nums: 1, Memreq: 2048}

fit, _, reason := dev.Fit(devices, req, &corev1.Pod{}, &device.NodeInfo{}, &device.PodDevices{})
assert.Equal(t, fit, false)
assert.Equal(t, reason, "1/8 "+common.NumaNotFit)
}

func TestKunlunDevices_Fit_NumaNotFit(t *testing.T) {
dev := &KunlunDevices{}
devices := make([]*device.DeviceUsage, 8)
for i := range devices {
devices[i] = &device.DeviceUsage{Index: uint(i), Used: 1}
}
req := device.ContainerDeviceRequest{Nums: 1, Type: KunlunGPUDevice}

fit, _, reason := dev.Fit(devices, req, &corev1.Pod{}, &device.NodeInfo{}, &device.PodDevices{})
assert.Equal(t, fit, false)
assert.Equal(t, reason, "1/8 "+common.NumaNotFit)
}

func Test_graphSelect(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/device/kunlun/vdevice.go
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ func (dev *KunlunVDevices) Fit(devices []*device.DeviceUsage, request device.Con
reason[common.NumaNotFit]++
klog.V(5).InfoS(common.NumaNotFit, "pod", klog.KObj(pod), "device", devices, "request nums", request.Nums)
}
return false, tmpDevs, common.GenReason(reason, len(reason))
return false, tmpDevs, common.GenReason(reason, len(devices))
Comment thread
archlitchi marked this conversation as resolved.
}
for _, dev := range alloc {
for _, val := range devices {
Expand Down
Loading