feat: GPU process list with per-process VRAM/utilization and kill
Add a GPU process table to the Performance tab showing which processes use the selected GPU, with per-process VRAM, GPU utilization, CPU, host memory, and command. Includes a kill endpoint (SIGTERM/SIGKILL, with optional parent kill) behind a confirm dialog. - nvcurve/hal/processes.py: NVML + /proc process enumeration - server.py: GET /api/processes, POST /api/processes/kill (refuses to signal init/kthreadd) - frontend: ProcessList component, API client, types - tests: test_processes.py - docs: API reference for the new endpoints
This commit is contained in:
1 parent
b75b9d43e9
commit
c11ea73ead
10 files changed
+1008
-23
No files matched your search
@@ -8,6 +8,7 @@ import type {
|
||||
FanState,
|
||||
FanPoint,
|
||||
DashboardInfo,
|
||||
ProcessListResponse,
|
||||
} from "../types.js";
|
||||
|
||||
export class ApiError extends Error {
|
||||
@@ -119,6 +120,17 @@ export const api = {
|
||||
voltage: (gpuIndex: number) =>
|
||||
get<{ voltage_uv: number; voltage_mv: number }>("/voltage", gpuIndex),
|
||||
monitor: (gpuIndex: number) => get<MonitoringSample>("/monitor", gpuIndex),
|
||||
processes: (gpuIndex: number) =>
|
||||
get<ProcessListResponse>("/processes", gpuIndex),
|
||||
killProcess: (
|
||||
pid: number,
|
||||
signal: "TERM" | "KILL" = "TERM",
|
||||
parent = false,
|
||||
) =>
|
||||
post<{ ok: boolean; pid: number; signal: string; parent: boolean }>(
|
||||
"/processes/kill",
|
||||
{ pid, signal, parent },
|
||||
),
|
||||
snapshots: (gpuIndex: number) => get<SnapshotInfo[]>("/snapshots", gpuIndex),
|
||||
|
||||
/** Write per-point frequency deltas. deltas: { pointIndex: deltaKhz } */
|
||||
|
||||
Reference in new issue
Block a user