mbox series

[0/5] drm/etnaviv: Ignore MC bit when checking for runtime suspend

Message ID cover.1583176306.git.agx@sigxcpu.org (mailing list archive)
Headers show
Series drm/etnaviv: Ignore MC bit when checking for runtime suspend | expand

Message

Guido Günther March 2, 2020, 7:13 p.m. UTC
At least GC7000 fails to enter runtime suspend for long periods of time since
the MC becomes busy again even when the FE is idle. The rest of the series
makes detecting similar issues easier to debug in the future by checking
all known bits in debugfs and also warning in the EBUSY case.

Tested on GC7000 with a reduced runtime delay of 50ms. Patches are
against next-20200226.

Thanks to Lucas Stach for pointing me in the right direction.

Guido Günther (5):
  drm/etnaviv: Fix typo in comment
  drm/etnaviv: Update idle bits
  drm/etnaviv: Consider all kwnown idle bits in debugfs
  drm/etnaviv: Ignore MC when checking runtime suspend idleness
  drm/etnaviv: Warn when GPU doesn't idle fast enough

 drivers/gpu/drm/etnaviv/etnaviv_gpu.c  | 26 ++++++++++++++++++++++----
 drivers/gpu/drm/etnaviv/state_hi.xml.h |  7 +++++++
 2 files changed, 29 insertions(+), 4 deletions(-)

Comments

Lucas Stach March 3, 2020, 11:55 a.m. UTC | #1
On Mo, 2020-03-02 at 20:13 +0100, Guido Günther wrote:
> At least GC7000 fails to enter runtime suspend for long periods of time since
> the MC becomes busy again even when the FE is idle. The rest of the series
> makes detecting similar issues easier to debug in the future by checking
> all known bits in debugfs and also warning in the EBUSY case.

Thanks, series applied to etnaviv/next.

> Tested on GC7000 with a reduced runtime delay of 50ms. Patches are
> against next-20200226.

I've already wondered if 200ms is too long, 50ms sounds more
reasonable. Do you have any numbers on the power draw on the i.MX8M
with idle GPU, vs. being fully power gated? 

Regards,
Lucas

> Thanks to Lucas Stach for pointing me in the right direction.
> 
> Guido Günther (5):
>   drm/etnaviv: Fix typo in comment
>   drm/etnaviv: Update idle bits
>   drm/etnaviv: Consider all kwnown idle bits in debugfs
>   drm/etnaviv: Ignore MC when checking runtime suspend idleness
>   drm/etnaviv: Warn when GPU doesn't idle fast enough
> 
>  drivers/gpu/drm/etnaviv/etnaviv_gpu.c  | 26 ++++++++++++++++++++++----
>  drivers/gpu/drm/etnaviv/state_hi.xml.h |  7 +++++++
>  2 files changed, 29 insertions(+), 4 deletions(-)
>
Guido Günther March 3, 2020, 3:49 p.m. UTC | #2
Hi Lucas,
On Tue, Mar 03, 2020 at 12:55:04PM +0100, Lucas Stach wrote:
> On Mo, 2020-03-02 at 20:13 +0100, Guido Günther wrote:
> > At least GC7000 fails to enter runtime suspend for long periods of time since
> > the MC becomes busy again even when the FE is idle. The rest of the series
> > makes detecting similar issues easier to debug in the future by checking
> > all known bits in debugfs and also warning in the EBUSY case.
> 
> Thanks, series applied to etnaviv/next.

Thanks!

> 
> > Tested on GC7000 with a reduced runtime delay of 50ms. Patches are
> > against next-20200226.
> 
> I've already wondered if 200ms is too long, 50ms sounds more
> reasonable. Do you have any numbers on the power draw on the i.MX8M
> with idle GPU, vs. being fully power gated?

I don't have good numbers yet but i'll post here once i do.
Cheers,
 -- Guido

> 
> Regards,
> Lucas
> 
> > Thanks to Lucas Stach for pointing me in the right direction.
> > 
> > Guido Günther (5):
> >   drm/etnaviv: Fix typo in comment
> >   drm/etnaviv: Update idle bits
> >   drm/etnaviv: Consider all kwnown idle bits in debugfs
> >   drm/etnaviv: Ignore MC when checking runtime suspend idleness
> >   drm/etnaviv: Warn when GPU doesn't idle fast enough
> > 
> >  drivers/gpu/drm/etnaviv/etnaviv_gpu.c  | 26 ++++++++++++++++++++++----
> >  drivers/gpu/drm/etnaviv/state_hi.xml.h |  7 +++++++
> >  2 files changed, 29 insertions(+), 4 deletions(-)
> > 
>
Guido Günther June 25, 2020, 2:55 p.m. UTC | #3
Hi,
On Tue, Mar 03, 2020 at 12:55:04PM +0100, Lucas Stach wrote:
> On Mo, 2020-03-02 at 20:13 +0100, Guido Günther wrote:
> > At least GC7000 fails to enter runtime suspend for long periods of time since
> > the MC becomes busy again even when the FE is idle. The rest of the series
> > makes detecting similar issues easier to debug in the future by checking
> > all known bits in debugfs and also warning in the EBUSY case.
> 
> Thanks, series applied to etnaviv/next.
> 
> > Tested on GC7000 with a reduced runtime delay of 50ms. Patches are
> > against next-20200226.
> 
> I've already wondered if 200ms is too long, 50ms sounds more
> reasonable. Do you have any numbers on the power draw on the i.MX8M
> with idle GPU, vs. being fully power gated?

The difference is at least 250mW. It makes a huge difference over here.
We hit
https://lore.kernel.org/dri-devel/20200614064601.7872-1-navid.emamdoost@gmail.com/
recently and you notice instantly when that happens when looking at the
SoC temperature.

Cheers,
 -- Guido
> 
> Regards,
> Lucas
> 
> > Thanks to Lucas Stach for pointing me in the right direction.
> > 
> > Guido Günther (5):
> >   drm/etnaviv: Fix typo in comment
> >   drm/etnaviv: Update idle bits
> >   drm/etnaviv: Consider all kwnown idle bits in debugfs
> >   drm/etnaviv: Ignore MC when checking runtime suspend idleness
> >   drm/etnaviv: Warn when GPU doesn't idle fast enough
> > 
> >  drivers/gpu/drm/etnaviv/etnaviv_gpu.c  | 26 ++++++++++++++++++++++----
> >  drivers/gpu/drm/etnaviv/state_hi.xml.h |  7 +++++++
> >  2 files changed, 29 insertions(+), 4 deletions(-)
> > 
>
Chris Healy June 25, 2020, 3:37 p.m. UTC | #4
Would this power difference with the GPU also apply with the GC3000 in the
i.MX6qp or the GC2000 in the i.MX6q?

On Thu, Jun 25, 2020 at 8:04 AM Guido Günther <agx@sigxcpu.org> wrote:

> Hi,
> On Tue, Mar 03, 2020 at 12:55:04PM +0100, Lucas Stach wrote:
> > On Mo, 2020-03-02 at 20:13 +0100, Guido Günther wrote:
> > > At least GC7000 fails to enter runtime suspend for long periods of
> time since
> > > the MC becomes busy again even when the FE is idle. The rest of the
> series
> > > makes detecting similar issues easier to debug in the future by
> checking
> > > all known bits in debugfs and also warning in the EBUSY case.
> >
> > Thanks, series applied to etnaviv/next.
> >
> > > Tested on GC7000 with a reduced runtime delay of 50ms. Patches are
> > > against next-20200226.
> >
> > I've already wondered if 200ms is too long, 50ms sounds more
> > reasonable. Do you have any numbers on the power draw on the i.MX8M
> > with idle GPU, vs. being fully power gated?
>
> The difference is at least 250mW. It makes a huge difference over here.
> We hit
>
> https://lore.kernel.org/dri-devel/20200614064601.7872-1-navid.emamdoost@gmail.com/
> recently and you notice instantly when that happens when looking at the
> SoC temperature.
>
> Cheers,
>  -- Guido
> >
> > Regards,
> > Lucas
> >
> > > Thanks to Lucas Stach for pointing me in the right direction.
> > >
> > > Guido Günther (5):
> > >   drm/etnaviv: Fix typo in comment
> > >   drm/etnaviv: Update idle bits
> > >   drm/etnaviv: Consider all kwnown idle bits in debugfs
> > >   drm/etnaviv: Ignore MC when checking runtime suspend idleness
> > >   drm/etnaviv: Warn when GPU doesn't idle fast enough
> > >
> > >  drivers/gpu/drm/etnaviv/etnaviv_gpu.c  | 26 ++++++++++++++++++++++----
> > >  drivers/gpu/drm/etnaviv/state_hi.xml.h |  7 +++++++
> > >  2 files changed, 29 insertions(+), 4 deletions(-)
> > >
> >
> _______________________________________________
> etnaviv mailing list
> etnaviv@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/etnaviv
>