From f693cc1fc7d80b66ae23a6d23d873588c35c3d66 Mon Sep 17 00:00:00 2001 From: dkeven Date: Mon, 8 Jun 2026 21:45:02 +0800 Subject: [PATCH] fix(scheduler): minimize sharemode update delay --- pkg/scheduler/nodes.go | 6 +++--- pkg/scheduler/scheduler.go | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/scheduler/nodes.go b/pkg/scheduler/nodes.go index 102e69b31..edf55a521 100644 --- a/pkg/scheduler/nodes.go +++ b/pkg/scheduler/nodes.go @@ -125,9 +125,9 @@ func (m *nodeManager) UpdateDeviceShareMode(uuid, mode string) error { m.mutex.Lock() defer m.mutex.Unlock() for _, node := range m.nodes { - for _, dev := range node.Devices { - if dev.ID == uuid { - dev.ShareMode = mode + for i := range node.Devices { + if node.Devices[i].ID == uuid { + node.Devices[i].ShareMode = mode return nil } } diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index 03378198e..62706a68f 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -261,6 +261,13 @@ func (s *Scheduler) RegisterFromNodeAnnotations() { s.rmNodeDevices(val.Name, devhandsk) continue } + + for _, nodedevice := range nodedevices { + if err := s.UpdateDeviceShareMode(nodedevice.ID, nodedevice.ShareMode); err != nil { + klog.V(5).InfoS("Skipping share mode sync, device not registered yet", "nodeName", val.Name, "deviceID", nodedevice.ID) + } + } + if !needUpdate { klog.V(5).InfoS("No update needed for device", "nodeName", val.Name, "deviceVendor", devhandsk) continue