[Public]
Regards,
Prike
> -----Original Message-----
> From: Alex Deucher <[email protected]>
> Sent: Friday, September 12, 2025 2:55 AM
> To: Liang, Prike <[email protected]>
> Cc: [email protected]; Deucher, Alexander
> <[email protected]>; Koenig, Christian <[email protected]>;
> Khatri, Sunil <[email protected]>
> Subject: Re: [PATCH 1/9] drm/amdgpu: add UAPI for user queue query status
>
> On Wed, Sep 10, 2025 at 7:37 AM Prike Liang <[email protected]> wrote:
> >
> > From: Alex Deucher <[email protected]>
> >
> > Add an API to query queue status such as whether the queue is hung or
> > whether vram is lost.
> >
>
> We need mesa code before we can land this new interface.
Do we have a plan for upstreaming the mesa counterpart code?
Or can we update the userq structure in the drm header first if we need to
upstream the following metadata solution?
> Alex
>
> > Reviewed-by: Christian König <[email protected]>
> > Reviewed-by: Sunil Khatri <[email protected]>
> > Signed-off-by: Alex Deucher <[email protected]>
> > ---
> > include/uapi/drm/amdgpu_drm.h | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/include/uapi/drm/amdgpu_drm.h
> > b/include/uapi/drm/amdgpu_drm.h index 85b3ca14f81e..7292f7bfcd13
> > 100644
> > --- a/include/uapi/drm/amdgpu_drm.h
> > +++ b/include/uapi/drm/amdgpu_drm.h
> > @@ -334,6 +334,7 @@ union drm_amdgpu_ctx {
> > /* user queue IOCTL operations */
> > #define AMDGPU_USERQ_OP_CREATE 1
> > #define AMDGPU_USERQ_OP_FREE 2
> > +#define AMDGPU_USERQ_OP_QUERY_STATUS 3
> >
> > /* queue priority levels */
> > /* low < normal low < normal high < high */ @@ -346,6 +347,12 @@
> > union drm_amdgpu_ctx {
> > /* for queues that need access to protected content */ #define
> > AMDGPU_USERQ_CREATE_FLAGS_QUEUE_SECURE (1 << 2)
> >
> > +
> > +/* the queue is hung */
> > +#define AMDGPU_USERQ_QUERY_STATUS_FLAGS_HUNG (1 << 0)
> > +/* indicate vram lost since queue was created */ #define
> > +AMDGPU_USERQ_QUERY_STATUS_FLAGS_VRAMLOST (1 << 1)
> > +
> > /*
> > * This structure is a container to pass input configuration
> > * info for all supported userqueue related operations.
> > @@ -427,9 +434,16 @@ struct drm_amdgpu_userq_out {
> > __u32 _pad;
> > };
> >
> > +/* The structure to carry output of userqueue ops */ struct
> > +drm_amdgpu_userq_out_query_state {
> > + __u32 flags;
> > + __u32 _pad;
> > +};
> > +
> > union drm_amdgpu_userq {
> > struct drm_amdgpu_userq_in in;
> > struct drm_amdgpu_userq_out out;
> > + struct drm_amdgpu_userq_out_query_state out_qs;
> > };
> >
> > /* GFX V11 IP specific MQD parameters */
> > --
> > 2.34.1
> >