Paul Kocialkowski paul.kocialkowski@bootlin.com writes:
Since the OOM interrupt directly deals with the binner bo, it doesn't make sense to try and handle it without a binner buffer registered. The interrupt will kick again in due time, so we can safely ignore it without a binner bo allocated.
Signed-off-by: Paul Kocialkowski paul.kocialkowski@bootlin.com
drivers/gpu/drm/vc4/vc4_irq.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c index ffd0a4388752..723dc86b4511 100644 --- a/drivers/gpu/drm/vc4/vc4_irq.c +++ b/drivers/gpu/drm/vc4/vc4_irq.c @@ -64,6 +64,9 @@ vc4_overflow_mem_work(struct work_struct *work) struct vc4_exec_info *exec; unsigned long irqflags;
Since OOM handling is tricky, could we add a comment to help the next person try to understand it:
/* The OOM IRQ is level-triggered, so we'll see one at power-on before * any jobs are submitted. The OOM IRQ is masked when this work is * scheduled, so we can safely return if there's no binner memory * (because no client is currently using 3D). When a bin job is * later submitted, its tile memory allocation will end up bringing us * back to a non-OOM state so the OOM can be triggered again. */
But, actually, I don't see how the OOM IRQ will ever get re-enabled.