On Wed, May 27, 2026 at 10:29 AM Yongqiang Sun <[email protected]> wrote: > > kfd_smi_ev_enabled() skips the suser privilege check when pid=0. > PROCESS_START, PROCESS_END, and VMFAULT events are emitted with > pid=0 while carrying another process's PID and command name, so any > /dev/kfd user in the render group can monitor all GPU workloads. > > Pass the target process PID into kfd_smi_event_add() for these events > so the existing per-client filter restricts delivery to the owning > process or CAP_SYS_ADMIN subscribers. > > Signed-off-by: Yongqiang Sun <[email protected]>
Acked-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > index d2bc169e84b0..82f9165225fd 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c > @@ -254,8 +254,10 @@ void kfd_smi_event_update_vmfault(struct kfd_node *dev, > uint16_t pasid) > if (task_info) { > /* Report VM faults from user applications, not retry from > kernel */ > if (task_info->task.pid) > - kfd_smi_event_add(0, dev, KFD_SMI_EVENT_VMFAULT, > KFD_EVENT_FMT_VMFAULT( > - task_info->task.pid, > task_info->task.comm)); > + kfd_smi_event_add(task_info->task.pid, dev, > + KFD_SMI_EVENT_VMFAULT, > + > KFD_EVENT_FMT_VMFAULT(task_info->task.pid, > + > task_info->task.comm)); > amdgpu_vm_put_task_info(task_info); > } > } > @@ -356,7 +358,7 @@ void kfd_smi_event_process(struct kfd_process_device > *pdd, bool start) > task_info = amdgpu_vm_get_task_info_vm(avm); > > if (task_info) { > - kfd_smi_event_add(0, pdd->dev, > + kfd_smi_event_add(task_info->task.pid, pdd->dev, > start ? KFD_SMI_EVENT_PROCESS_START : > KFD_SMI_EVENT_PROCESS_END, > KFD_EVENT_FMT_PROCESS(task_info->task.pid, > -- > 2.43.0 >
