On Mon, Jun 1, 2026 at 12:46 PM 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..fe4b93692385 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->tgid, 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->tgid, pdd->dev,
>                                   start ? KFD_SMI_EVENT_PROCESS_START :
>                                   KFD_SMI_EVENT_PROCESS_END,
>                                   KFD_EVENT_FMT_PROCESS(task_info->task.pid,
> --
> 2.43.0
>

Reply via email to