Simplify meta device discovery

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar
2023-11-20 15:03:36 +01:00
parent 00a712d018
commit 3a96a00362
10 changed files with 18 additions and 35 deletions

View File

@@ -20,18 +20,13 @@ import (
"fmt"
"github.com/NVIDIA/nvidia-container-toolkit/internal/discover"
"github.com/NVIDIA/nvidia-container-toolkit/internal/lookup"
)
// newCommonNVMLDiscoverer returns a discoverer for entities that are not associated with a specific CDI device.
// This includes driver libraries and meta devices, for example.
func (l *nvmllib) newCommonNVMLDiscoverer() (discover.Discover, error) {
metaDevices := discover.NewDeviceDiscoverer(
metaDevices := discover.NewCharDeviceDiscoverer(
l.logger,
lookup.NewCharDeviceLocator(
lookup.WithLogger(l.logger),
lookup.WithRoot(l.devRoot),
),
l.devRoot,
[]string{
"/dev/nvidia-modeset",

View File

@@ -29,8 +29,8 @@ const (
func newDXGDeviceDiscoverer(logger logger.Interface, devRoot string) discover.Discover {
deviceNodes := discover.NewCharDeviceDiscoverer(
logger,
[]string{dxgDeviceNode},
devRoot,
[]string{dxgDeviceNode},
)
return deviceNodes

View File

@@ -103,8 +103,8 @@ func newFullGPUDiscoverer(logger logger.Interface, devRoot string, nvidiaCTKPath
deviceNodes := discover.NewCharDeviceDiscoverer(
logger,
deviceNodePaths,
devRoot,
deviceNodePaths,
)
byPathHooks := &byPathHookDiscoverer{

View File

@@ -109,6 +109,7 @@ type managementDiscoverer struct {
func (m *managementlib) newManagementDeviceDiscoverer() (discover.Discover, error) {
deviceNodes := discover.NewCharDeviceDiscoverer(
m.logger,
m.devRoot,
[]string{
"/dev/nvidia*",
"/dev/nvidia-caps/nvidia-cap*",
@@ -117,7 +118,6 @@ func (m *managementlib) newManagementDeviceDiscoverer() (discover.Discover, erro
"/dev/nvidia-uvm",
"/dev/nvidiactl",
},
m.devRoot,
)
deviceFolderPermissionHooks := newDeviceFolderPermissionHookDiscoverer(

View File

@@ -112,12 +112,12 @@ func newComputeInstanceDiscoverer(logger logger.Interface, driverRoot string, gp
deviceNodes := discover.NewCharDeviceDiscoverer(
logger,
driverRoot,
[]string{
parentPath,
giCapDevicePath,
ciCapDevicePath,
},
driverRoot,
)
return deviceNodes, nil