[0/3] drm/lima: expose usage statistics via fdinfo

Message ID 20230312233052.21095-1-nunes.erico@gmail.com
Headers
Series drm/lima: expose usage statistics via fdinfo |

Message

Erico Nunes March 12, 2023, 11:30 p.m. UTC
  Expose lima gp and pp usage stats through fdinfo, following
Documentation/gpu/drm-usage-stats.rst.
Borrowed from these previous implementations:

"df622729ddbf drm/scheduler: track GPU active time per entity" added
usage time accounting to drm scheduler, which is where the data used
here comes from.

Then the main implementation is based on these etnaviv commits:
"d306788b6e1b drm/etnaviv: allocate unique ID per drm_file" and
"97804a133c68 drm/etnaviv: export client GPU usage statistics via
fdinfo"

Also "874442541133 drm/amdgpu: Add show_fdinfo() interface" since lima
has a context manager very similar to amdgpu and all contexts created
(and released) at the ctx_mgr level need to be accounted for.

Tested with the generic "gputop" tool currently available as patches to
igt, a sample run with this patchset looks like this:

DRM minor 128
    PID               NAME             gp                        pp
    4322   glmark2-es2-way |█████▊                  ||██████████████████      |
    3561            weston |▎                       ||███▌                    |
    4159          Xwayland |▏                       ||▉                       |
    4154          glxgears |▏                       ||▎                       |
    3661           firefox |▏                       ||▏                       |


Erico Nunes (3):
  drm/lima: add usage counting method to ctx_mgr
  drm/lima: allocate unique id per drm_file
  drm/lima: add show_fdinfo for drm usage stats

 drivers/gpu/drm/lima/lima_ctx.c    | 30 ++++++++++++++++++++-
 drivers/gpu/drm/lima/lima_ctx.h    |  3 +++
 drivers/gpu/drm/lima/lima_device.h |  3 +++
 drivers/gpu/drm/lima/lima_drv.c    | 43 +++++++++++++++++++++++++++++-
 drivers/gpu/drm/lima/lima_drv.h    |  1 +
 5 files changed, 78 insertions(+), 2 deletions(-)
  

Comments

Qiang Yu March 13, 2023, 3:09 a.m. UTC | #1
Patch set is:
Reviewed-by: Qiang Yu <yuq825@gmail.com>

Looks like drm-misc-next does not contain "df622729ddbf drm/scheduler:
track GPU active time per entity" yet.
Will apply later.

Regards,
Qiang

On Mon, Mar 13, 2023 at 7:31 AM Erico Nunes <nunes.erico@gmail.com> wrote:
>
> Expose lima gp and pp usage stats through fdinfo, following
> Documentation/gpu/drm-usage-stats.rst.
> Borrowed from these previous implementations:
>
> "df622729ddbf drm/scheduler: track GPU active time per entity" added
> usage time accounting to drm scheduler, which is where the data used
> here comes from.
>
> Then the main implementation is based on these etnaviv commits:
> "d306788b6e1b drm/etnaviv: allocate unique ID per drm_file" and
> "97804a133c68 drm/etnaviv: export client GPU usage statistics via
> fdinfo"
>
> Also "874442541133 drm/amdgpu: Add show_fdinfo() interface" since lima
> has a context manager very similar to amdgpu and all contexts created
> (and released) at the ctx_mgr level need to be accounted for.
>
> Tested with the generic "gputop" tool currently available as patches to
> igt, a sample run with this patchset looks like this:
>
> DRM minor 128
>     PID               NAME             gp                        pp
>     4322   glmark2-es2-way |█████▊                  ||██████████████████      |
>     3561            weston |▎                       ||███▌                    |
>     4159          Xwayland |▏                       ||▉                       |
>     4154          glxgears |▏                       ||▎                       |
>     3661           firefox |▏                       ||▏                       |
>
>
> Erico Nunes (3):
>   drm/lima: add usage counting method to ctx_mgr
>   drm/lima: allocate unique id per drm_file
>   drm/lima: add show_fdinfo for drm usage stats
>
>  drivers/gpu/drm/lima/lima_ctx.c    | 30 ++++++++++++++++++++-
>  drivers/gpu/drm/lima/lima_ctx.h    |  3 +++
>  drivers/gpu/drm/lima/lima_device.h |  3 +++
>  drivers/gpu/drm/lima/lima_drv.c    | 43 +++++++++++++++++++++++++++++-
>  drivers/gpu/drm/lima/lima_drv.h    |  1 +
>  5 files changed, 78 insertions(+), 2 deletions(-)
>
> --
> 2.39.2
>
  
Qiang Yu April 2, 2023, 10:22 a.m. UTC | #2
Applied to drm-misc-next.

On Mon, Mar 13, 2023 at 11:09 AM Qiang Yu <yuq825@gmail.com> wrote:
>
> Patch set is:
> Reviewed-by: Qiang Yu <yuq825@gmail.com>
>
> Looks like drm-misc-next does not contain "df622729ddbf drm/scheduler:
> track GPU active time per entity" yet.
> Will apply later.
>
> Regards,
> Qiang
>
> On Mon, Mar 13, 2023 at 7:31 AM Erico Nunes <nunes.erico@gmail.com> wrote:
> >
> > Expose lima gp and pp usage stats through fdinfo, following
> > Documentation/gpu/drm-usage-stats.rst.
> > Borrowed from these previous implementations:
> >
> > "df622729ddbf drm/scheduler: track GPU active time per entity" added
> > usage time accounting to drm scheduler, which is where the data used
> > here comes from.
> >
> > Then the main implementation is based on these etnaviv commits:
> > "d306788b6e1b drm/etnaviv: allocate unique ID per drm_file" and
> > "97804a133c68 drm/etnaviv: export client GPU usage statistics via
> > fdinfo"
> >
> > Also "874442541133 drm/amdgpu: Add show_fdinfo() interface" since lima
> > has a context manager very similar to amdgpu and all contexts created
> > (and released) at the ctx_mgr level need to be accounted for.
> >
> > Tested with the generic "gputop" tool currently available as patches to
> > igt, a sample run with this patchset looks like this:
> >
> > DRM minor 128
> >     PID               NAME             gp                        pp
> >     4322   glmark2-es2-way |█████▊                  ||██████████████████      |
> >     3561            weston |▎                       ||███▌                    |
> >     4159          Xwayland |▏                       ||▉                       |
> >     4154          glxgears |▏                       ||▎                       |
> >     3661           firefox |▏                       ||▏                       |
> >
> >
> > Erico Nunes (3):
> >   drm/lima: add usage counting method to ctx_mgr
> >   drm/lima: allocate unique id per drm_file
> >   drm/lima: add show_fdinfo for drm usage stats
> >
> >  drivers/gpu/drm/lima/lima_ctx.c    | 30 ++++++++++++++++++++-
> >  drivers/gpu/drm/lima/lima_ctx.h    |  3 +++
> >  drivers/gpu/drm/lima/lima_device.h |  3 +++
> >  drivers/gpu/drm/lima/lima_drv.c    | 43 +++++++++++++++++++++++++++++-
> >  drivers/gpu/drm/lima/lima_drv.h    |  1 +
> >  5 files changed, 78 insertions(+), 2 deletions(-)
> >
> > --
> > 2.39.2
> >
  
Lucas Stach April 2, 2023, 11:13 a.m. UTC | #3
Am Sonntag, dem 02.04.2023 um 18:22 +0800 schrieb Qiang Yu:
> Applied to drm-misc-next.
> 
"df622729ddbf drm/scheduler: track GPU active time per entity" had to
be reverted due to it introducing a use after free. I guess this
patchset now conflicts with the revert.

Regards,
Lucas

> On Mon, Mar 13, 2023 at 11:09 AM Qiang Yu <yuq825@gmail.com> wrote:
> > 
> > Patch set is:
> > Reviewed-by: Qiang Yu <yuq825@gmail.com>
> > 
> > Looks like drm-misc-next does not contain "df622729ddbf drm/scheduler:
> > track GPU active time per entity" yet.
> > Will apply later.
> > 
> > Regards,
> > Qiang
> > 
> > On Mon, Mar 13, 2023 at 7:31 AM Erico Nunes <nunes.erico@gmail.com> wrote:
> > > 
> > > Expose lima gp and pp usage stats through fdinfo, following
> > > Documentation/gpu/drm-usage-stats.rst.
> > > Borrowed from these previous implementations:
> > > 
> > > "df622729ddbf drm/scheduler: track GPU active time per entity" added
> > > usage time accounting to drm scheduler, which is where the data used
> > > here comes from.
> > > 
> > > Then the main implementation is based on these etnaviv commits:
> > > "d306788b6e1b drm/etnaviv: allocate unique ID per drm_file" and
> > > "97804a133c68 drm/etnaviv: export client GPU usage statistics via
> > > fdinfo"
> > > 
> > > Also "874442541133 drm/amdgpu: Add show_fdinfo() interface" since lima
> > > has a context manager very similar to amdgpu and all contexts created
> > > (and released) at the ctx_mgr level need to be accounted for.
> > > 
> > > Tested with the generic "gputop" tool currently available as patches to
> > > igt, a sample run with this patchset looks like this:
> > > 
> > > DRM minor 128
> > >     PID               NAME             gp                        pp
> > >     4322   glmark2-es2-way |█████▊                  ||██████████████████      |
> > >     3561            weston |▎                       ||███▌                    |
> > >     4159          Xwayland |▏                       ||▉                       |
> > >     4154          glxgears |▏                       ||▎                       |
> > >     3661           firefox |▏                       ||▏                       |
> > > 
> > > 
> > > Erico Nunes (3):
> > >   drm/lima: add usage counting method to ctx_mgr
> > >   drm/lima: allocate unique id per drm_file
> > >   drm/lima: add show_fdinfo for drm usage stats
> > > 
> > >  drivers/gpu/drm/lima/lima_ctx.c    | 30 ++++++++++++++++++++-
> > >  drivers/gpu/drm/lima/lima_ctx.h    |  3 +++
> > >  drivers/gpu/drm/lima/lima_device.h |  3 +++
> > >  drivers/gpu/drm/lima/lima_drv.c    | 43 +++++++++++++++++++++++++++++-
> > >  drivers/gpu/drm/lima/lima_drv.h    |  1 +
> > >  5 files changed, 78 insertions(+), 2 deletions(-)
> > > 
> > > --
> > > 2.39.2
> > >
  
Qiang Yu April 2, 2023, 2:27 p.m. UTC | #4
> "df622729ddbf drm/scheduler: track GPU active time per entity" had to
> be reverted due to it introducing a use after free. I guess this
> patchset now conflicts with the revert.
>
I do get some build fail message on other branch. Do I need to revert this
patchset on drm-misc-next or left to branch maintainer to decide whether
to pick this patchset upstream?

Regards,
Qiang

>
> > On Mon, Mar 13, 2023 at 11:09 AM Qiang Yu <yuq825@gmail.com> wrote:
> > >
> > > Patch set is:
> > > Reviewed-by: Qiang Yu <yuq825@gmail.com>
> > >
> > > Looks like drm-misc-next does not contain "df622729ddbf drm/scheduler:
> > > track GPU active time per entity" yet.
> > > Will apply later.
> > >
> > > Regards,
> > > Qiang
> > >
> > > On Mon, Mar 13, 2023 at 7:31 AM Erico Nunes <nunes.erico@gmail.com> wrote:
> > > >
> > > > Expose lima gp and pp usage stats through fdinfo, following
> > > > Documentation/gpu/drm-usage-stats.rst.
> > > > Borrowed from these previous implementations:
> > > >
> > > > "df622729ddbf drm/scheduler: track GPU active time per entity" added
> > > > usage time accounting to drm scheduler, which is where the data used
> > > > here comes from.
> > > >
> > > > Then the main implementation is based on these etnaviv commits:
> > > > "d306788b6e1b drm/etnaviv: allocate unique ID per drm_file" and
> > > > "97804a133c68 drm/etnaviv: export client GPU usage statistics via
> > > > fdinfo"
> > > >
> > > > Also "874442541133 drm/amdgpu: Add show_fdinfo() interface" since lima
> > > > has a context manager very similar to amdgpu and all contexts created
> > > > (and released) at the ctx_mgr level need to be accounted for.
> > > >
> > > > Tested with the generic "gputop" tool currently available as patches to
> > > > igt, a sample run with this patchset looks like this:
> > > >
> > > > DRM minor 128
> > > >     PID               NAME             gp                        pp
> > > >     4322   glmark2-es2-way |█████▊                  ||██████████████████      |
> > > >     3561            weston |▎                       ||███▌                    |
> > > >     4159          Xwayland |▏                       ||▉                       |
> > > >     4154          glxgears |▏                       ||▎                       |
> > > >     3661           firefox |▏                       ||▏                       |
> > > >
> > > >
> > > > Erico Nunes (3):
> > > >   drm/lima: add usage counting method to ctx_mgr
> > > >   drm/lima: allocate unique id per drm_file
> > > >   drm/lima: add show_fdinfo for drm usage stats
> > > >
> > > >  drivers/gpu/drm/lima/lima_ctx.c    | 30 ++++++++++++++++++++-
> > > >  drivers/gpu/drm/lima/lima_ctx.h    |  3 +++
> > > >  drivers/gpu/drm/lima/lima_device.h |  3 +++
> > > >  drivers/gpu/drm/lima/lima_drv.c    | 43 +++++++++++++++++++++++++++++-
> > > >  drivers/gpu/drm/lima/lima_drv.h    |  1 +
> > > >  5 files changed, 78 insertions(+), 2 deletions(-)
> > > >
> > > > --
> > > > 2.39.2
> > > >
>