Merge pull request #515 from elezar/fix-cdi-construction

Ensure consistent construction order for libs
This commit is contained in:
Evan Lezar 2024-05-28 12:33:37 +02:00 committed by GitHub
commit b407109bdf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -81,14 +81,25 @@ func New(opts ...Option) (Interface, error) {
indexNamer, _ := NewDeviceNamer(DeviceNameStrategyIndex) indexNamer, _ := NewDeviceNamer(DeviceNameStrategyIndex)
l.deviceNamers = []DeviceNamer{indexNamer} l.deviceNamers = []DeviceNamer{indexNamer}
} }
if l.nvidiaCDIHookPath == "" {
l.nvidiaCDIHookPath = "/usr/bin/nvidia-cdi-hook"
}
if l.driverRoot == "" { if l.driverRoot == "" {
l.driverRoot = "/" l.driverRoot = "/"
} }
if l.devRoot == "" { if l.devRoot == "" {
l.devRoot = l.driverRoot l.devRoot = l.driverRoot
} }
if l.nvidiaCDIHookPath == "" { l.driver = root.New(
l.nvidiaCDIHookPath = "/usr/bin/nvidia-cdi-hook" root.WithLogger(l.logger),
root.WithDriverRoot(l.driverRoot),
root.WithLibrarySearchPaths(l.librarySearchPaths...),
)
if l.nvmllib == nil {
l.nvmllib = nvml.New()
}
if l.devicelib == nil {
l.devicelib = device.New(device.WithNvml(l.nvmllib))
} }
if l.infolib == nil { if l.infolib == nil {
l.infolib = info.New( l.infolib = info.New(
@ -99,12 +110,6 @@ func New(opts ...Option) (Interface, error) {
) )
} }
l.driver = root.New(
root.WithLogger(l.logger),
root.WithDriverRoot(l.driverRoot),
root.WithLibrarySearchPaths(l.librarySearchPaths...),
)
var lib Interface var lib Interface
switch l.resolveMode() { switch l.resolveMode() {
case ModeCSV: case ModeCSV:
@ -118,13 +123,6 @@ func New(opts ...Option) (Interface, error) {
} }
lib = (*managementlib)(l) lib = (*managementlib)(l)
case ModeNvml: case ModeNvml:
if l.nvmllib == nil {
l.nvmllib = nvml.New()
}
if l.devicelib == nil {
l.devicelib = device.New(device.WithNvml(l.nvmllib))
}
lib = (*nvmllib)(l) lib = (*nvmllib)(l)
case ModeWsl: case ModeWsl:
lib = (*wsllib)(l) lib = (*wsllib)(l)