Re: [PATCH 3/3] drm/vc4: Don't liberate the binner BO at runtime suspend

From: Paul Kocialkowski
Date: Wed Mar 20 2019 - 11:17:39 EST


Hi,

Le samedi 16 mars 2019 Ã 11:58 -0700, Eric Anholt a Ãcrit :
> Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx> writes:
>
> > The binner BO is a pre-requisite to GPU operations, so we must ensure
> > that it is always allocated when the GPU is in use.
> >
> > Because the buffer is allocated from the same pool as other GPU buffers,
> > we might run into a situation where we are out of memory at runtime
> > resume. This causes the binner BO allocation to fail and results in all
> > subsequent operations to fail, resulting in a major hang in userspace.
> >
> > Now that we allocate the buffer at firstopen and liberate it at
> > lastclose, we can just keep it alive during runtime suspend.
>
> I think this needs to be squashed into the previous patch, as otherwise
> coming from suspended, a firstopen -> resume -> render will leak a copy
> of the bin BO.

Woops, you're definitely right: vc4_allocate_bin_bo won't check whether
we already have allocated it or not. I'll send a new version with both
patches squashed.

Cheers,

Paul

--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com