From 6f3543884fa5fcf937bab1735f8a26b387441362 Mon Sep 17 00:00:00 2001 From: Zhenyu Wang Date: Thu, 26 Jul 2018 10:33:12 +0800 Subject: [PATCH 1/2] gpu_plugin: Fix regex string for drm card node As noted on pull request comment, fix regex for drm card node. Signed-off-by: Zhenyu Wang --- cmd/gpu_plugin/gpu_plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/gpu_plugin/gpu_plugin.go b/cmd/gpu_plugin/gpu_plugin.go index 40a7371b..1e8a4bfa 100644 --- a/cmd/gpu_plugin/gpu_plugin.go +++ b/cmd/gpu_plugin/gpu_plugin.go @@ -35,7 +35,7 @@ import ( const ( sysfsDrmDirectory = "/sys/class/drm" devfsDriDirectory = "/dev/dri" - gpuDeviceRE = `^card[0-9]*$` + gpuDeviceRE = `^card[0-9]+$` vendorString = "0x8086" // Device plugin settings. From ec632e0b384b27a1415edfe00344e368e359b6fa Mon Sep 17 00:00:00 2001 From: Zhenyu Wang Date: Thu, 26 Jul 2018 10:35:53 +0800 Subject: [PATCH 2/2] gpu_plugin: skip drm control node DRM control node is deprecated and removed by latest kernel. This will skip possible drm control node found on host. v2: Fix lint error v3: Fix regex string Signed-off-by: Zhenyu Wang --- cmd/gpu_plugin/gpu_plugin.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/gpu_plugin/gpu_plugin.go b/cmd/gpu_plugin/gpu_plugin.go index 1e8a4bfa..b9442ede 100644 --- a/cmd/gpu_plugin/gpu_plugin.go +++ b/cmd/gpu_plugin/gpu_plugin.go @@ -36,6 +36,7 @@ const ( sysfsDrmDirectory = "/sys/class/drm" devfsDriDirectory = "/dev/dri" gpuDeviceRE = `^card[0-9]+$` + controlDeviceRE = `^controlD[0-9]+$` vendorString = "0x8086" // Device plugin settings. @@ -58,6 +59,7 @@ func newDeviceManager() *deviceManager { // Discovers all GPU devices available on the local node by walking `/sys/class/drm` directory. func (dm *deviceManager) discoverGPUs(sysfsDrmDir string, devfsDriDir string) error { reg := regexp.MustCompile(gpuDeviceRE) + ctlReg := regexp.MustCompile(controlDeviceRE) files, err := ioutil.ReadDir(sysfsDrmDir) if err != nil { return fmt.Errorf("Can't read sysfs folder: %v", err) @@ -79,6 +81,10 @@ func (dm *deviceManager) discoverGPUs(sysfsDrmDir string, devfsDriDir string) er } for _, drmFile := range drmFiles { + if ctlReg.MatchString(drmFile.Name()) { + //Skipping possible drm control node + continue + } devPath := path.Join(devfsDriDir, drmFile.Name()) if _, err := os.Stat(devPath); err != nil { continue