On 7/14/26 10:10, Srinivasan Shanmugam wrote: > The queue reset path already resolves the affected queue directly from > the doorbell and funnels successful reset handling through > amdgpu_userq_handle_hung_queue(). Reuse that common handling point to > create the corresponding WAIT_EVENT record. > > Keeping the notification in the common helper ensures that queue state > is updated before userspace is notified and that both EVENTFD and > WAIT_EVENT observe the same reset. It also avoids duplicating the > doorbell lookup or adding a queue scan in the MES reset path. > > No MES or GFX interrupt changes are needed. > > Signed-off-by: Srinivasan Shanmugam <[email protected]> > Reviewed-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > index 28f9d3fe0e80..9e1d03eb31d7 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > @@ -166,6 +166,7 @@ void amdgpu_userq_handle_hung_queue(struct amdgpu_device > *adev, > struct amdgpu_usermode_queue *queue) > { > struct amdgpu_eventfd_mgr *eventfd_mgr; > + struct amdgpu_wait_event_mgr *wait_event_mgr; > > queue->state = AMDGPU_USERQ_STATE_HUNG; > atomic_inc(&adev->gpu_reset_counter); > @@ -176,6 +177,11 @@ void amdgpu_userq_handle_hung_queue(struct amdgpu_device > *adev, > amdgpu_eventfd_signal(eventfd_mgr, > DRM_AMDGPU_EVENT_TYPE_QUEUE_RESET, > queue); > + > + wait_event_mgr = amdgpu_userq_wait_event_mgr(queue->userq_mgr); > + amdgpu_wait_event_add(wait_event_mgr, > + DRM_AMDGPU_EVENT_TYPE_QUEUE_RESET, > + queue);
How are we making sure here that this wait_event_mgr doesn't go out of scope? Regards, Christian. > > drm_dev_wedged_event(adev_to_drm(adev), > DRM_WEDGE_RECOVERY_NONE, NULL);
