Message ID | 20190313235211.28995-1-eric@anholt.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/4] drm/v3d: Add a note about OOM vs FRDONE, which may be racing on v3.3. | expand |
On Wed, 13 Mar 2019 at 23:52, Eric Anholt <eric@anholt.net> wrote: > > We deref v3d->bin_job in the work handler, but v3d->bin_job doesn't > actually hold a ref on the job. > > Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Dave Emett <david.emett@broadcom.com> > --- > drivers/gpu/drm/v3d/v3d_irq.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/v3d/v3d_irq.c b/drivers/gpu/drm/v3d/v3d_irq.c > index b4d6ae81186d..a09442ec7297 100644 > --- a/drivers/gpu/drm/v3d/v3d_irq.c > +++ b/drivers/gpu/drm/v3d/v3d_irq.c > @@ -87,7 +87,8 @@ v3d_irq(int irq, void *arg) > if (intsts & V3D_INT_OUTOMEM) { > /* Note that the OOM status is edge signaled, so the > * interrupt won't happen again until the we actually > - * add more memory. > + * add more memory. Also, as of V3D 4.1, FRDONE won't > + * be reported until any OOM state has been cleared. Strictly speaking it's FLDONE for bins. > */ > schedule_work(&v3d->overflow_mem_work); > status = IRQ_HANDLED; > -- > 2.20.1 >
Dave Emett <david.emett@broadcom.com> writes: > On Wed, 13 Mar 2019 at 23:52, Eric Anholt <eric@anholt.net> wrote: >> >> We deref v3d->bin_job in the work handler, but v3d->bin_job doesn't >> actually hold a ref on the job. >> >> Signed-off-by: Eric Anholt <eric@anholt.net> > Reviewed-by: Dave Emett <david.emett@broadcom.com> > >> --- >> drivers/gpu/drm/v3d/v3d_irq.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/v3d/v3d_irq.c b/drivers/gpu/drm/v3d/v3d_irq.c >> index b4d6ae81186d..a09442ec7297 100644 >> --- a/drivers/gpu/drm/v3d/v3d_irq.c >> +++ b/drivers/gpu/drm/v3d/v3d_irq.c >> @@ -87,7 +87,8 @@ v3d_irq(int irq, void *arg) >> if (intsts & V3D_INT_OUTOMEM) { >> /* Note that the OOM status is edge signaled, so the >> * interrupt won't happen again until the we actually >> - * add more memory. >> + * add more memory. Also, as of V3D 4.1, FRDONE won't >> + * be reported until any OOM state has been cleared. > Strictly speaking it's FLDONE for bins. Fixed, thanks. I'm applying the first 2 of the series for now.
diff --git a/drivers/gpu/drm/v3d/v3d_irq.c b/drivers/gpu/drm/v3d/v3d_irq.c index b4d6ae81186d..a09442ec7297 100644 --- a/drivers/gpu/drm/v3d/v3d_irq.c +++ b/drivers/gpu/drm/v3d/v3d_irq.c @@ -87,7 +87,8 @@ v3d_irq(int irq, void *arg) if (intsts & V3D_INT_OUTOMEM) { /* Note that the OOM status is edge signaled, so the * interrupt won't happen again until the we actually - * add more memory. + * add more memory. Also, as of V3D 4.1, FRDONE won't + * be reported until any OOM state has been cleared. */ schedule_work(&v3d->overflow_mem_work); status = IRQ_HANDLED;
We deref v3d->bin_job in the work handler, but v3d->bin_job doesn't actually hold a ref on the job. Signed-off-by: Eric Anholt <eric@anholt.net> --- drivers/gpu/drm/v3d/v3d_irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)