Skip to content

Commit

Permalink
Merge pull request #660 from elezar/fix-libnvidia-allocator-duplicate…
Browse files Browse the repository at this point in the history
…-mount

Exclude libnvidia-allocator from graphics mounts
  • Loading branch information
elezar committed Aug 22, 2024
2 parents e3936fd + beb921f commit c3c0cdc
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
21 changes: 21 additions & 0 deletions internal/discover/graphics.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,27 @@ func newGraphicsLibrariesDiscoverer(logger logger.Interface, driver *root.Driver
}
}

// Mounts discovers the required libraries and filters out libnvidia-allocator.so.
// The library libnvidia-allocator.so is already handled by either the *.RM_VERSION
// injection or by libnvidia-container. We therefore filter it out here as a
// workaround for the case where libnvidia-container will re-mount this in the
// container, which causes issues with shared mount propagation.
func (d graphicsDriverLibraries) Mounts() ([]Mount, error) {
mounts, err := d.Discover.Mounts()
if err != nil {
return nil, fmt.Errorf("failed to get library mounts: %v", err)
}

var filtered []Mount
for _, mount := range mounts {
if d.isDriverLibrary(filepath.Base(mount.Path), "libnvidia-allocator.so") {
continue
}
filtered = append(filtered, mount)
}
return filtered, nil
}

// Create necessary library symlinks for graphics drivers
func (d graphicsDriverLibraries) Hooks() ([]Hook, error) {
mounts, err := d.Discover.Mounts()
Expand Down
9 changes: 1 addition & 8 deletions internal/discover/graphics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,7 @@ func TestGraphicsLibrariesDiscoverer(t *testing.T) {
return mounts, nil
},
},
expectedMounts: []Mount{
{
Path: "/usr/lib64/libnvidia-allocator.so.123.45.67",
},
},
expectedMounts: nil,
expectedHooks: []Hook{
{
Lifecycle: "createContainer",
Expand Down Expand Up @@ -121,9 +117,6 @@ func TestGraphicsLibrariesDiscoverer(t *testing.T) {
},
},
expectedMounts: []Mount{
{
Path: "/usr/lib64/libnvidia-allocator.so.123.45.67",
},
{
Path: "/usr/lib64/libnvidia-vulkan-producer.so.123.45.67",
},
Expand Down

0 comments on commit c3c0cdc

Please sign in to comment.