Skip to content

Commit 36da4c6

Browse files
authored
Merge pull request #26 from polarsignals/graphics-processes
nvidia: Collect graphicsRunningProcesses
2 parents 19ecc57 + 06d3398 commit 36da4c6

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

nvidia.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -457,20 +457,27 @@ func (ds *perDeviceState) collectProcessUtilization() error {
457457
return fmt.Errorf("failed to get compute running processes for %d: %s", ds.index, nvml.ErrorString(ret))
458458
}
459459

460+
graphicsProccesses, ret := ds.d.GetGraphicsRunningProcesses()
461+
if !errors.Is(ret, nvml.SUCCESS) {
462+
return fmt.Errorf("failed to get graphics running processes for %d: %s", ds.index, nvml.ErrorString(ret))
463+
}
464+
460465
// Return early if no processes are running
461-
if len(computeProcesses) == 0 {
462-
slog.Debug("no compute processes running")
466+
if len(computeProcesses) == 0 && len(graphicsProccesses) == 0 {
467+
slog.Debug("no processes running")
463468
return nil
464469
}
465470

466-
pids := make([]uint32, len(computeProcesses))
467-
for i, p := range computeProcesses {
471+
processes := append(computeProcesses, graphicsProccesses...)
472+
473+
pids := make([]uint32, len(processes))
474+
for i, p := range processes {
468475
pids[i] = p.Pid
469476
}
470-
slog.Debug("compute processes running", "pids", pids)
477+
slog.Debug("processes running", "pids", pids)
471478

472479
// Add data points for each process
473-
for _, process := range computeProcesses {
480+
for _, process := range processes {
474481
utilization, ret := ds.d.GetProcessUtilization(uint64(process.Pid))
475482
if !errors.Is(ret, nvml.SUCCESS) {
476483
// If the process is not found (likely terminated), skip it and continue

0 commit comments

Comments
 (0)