[PATCH v5 0/3] drm/vc4: Add a load tracker

From: Paul Kocialkowski
Date: Wed Feb 20 2019 - 10:52:06 EST


Hi,

Here is a fourth iteration of the VC4 load tracking series, which was
initially developed by Boris Brezillon and that I have now taken over.

This new iteration takes in account comments from v3 and comes with a
new approach for avoiding underrun reports when reconfiguring the
pipeline. It is now based on detection instead of delaying the underrun
interrupt unmasking.

It can be tested with a dedicated IGT GPU Tools series:
VC4 load tracker testing

Changes since v4:
* Unmasked underrun in vc4_crtc_handle_page_flip instead of the previous
workaround for detecting out-of-sync display lists causing underruns;
* Added comments where it felt relevant;
* Made underrun masking/unmasking per-channel to avoid race conditions
resulting in unwanted masking/unmasking;
* Added a check for unmasked interrupt before acting upon it;
* Disabled shortline/underrun interrupts at initial config time;
* Added collected Reviewed-by tags.

Changes since v3:
* Returned IRQ_NONE for short line interrupt to avoid storm;
* Made register definitions with per-channel offsets more direct;
* cleaned all IRQ fields instead of writing back the status bit as
advised by docs;
* Reworked first commit's message;
* Removed in-commit changelogs with inconsistent revision numbers;
* Removed explicit wait for sync before unmasking underrun interrupt;
* Checked that the display lists are synced before reporting underrun;

Cheers,

Paul

Boris Brezillon (2):
drm/vc4: Report HVS underrun errors
drm/vc4: Add a load tracker to prevent HVS underflow errors

Paul Kocialkowski (1):
drm/vc4: Add a debugfs entry to disable/enable the load tracker

drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++
drivers/gpu/drm/vc4/vc4_debugfs.c | 10 +++
drivers/gpu/drm/vc4/vc4_drv.c | 1 +
drivers/gpu/drm/vc4/vc4_drv.h | 24 ++++++
drivers/gpu/drm/vc4/vc4_hvs.c | 95 +++++++++++++++++++++++
drivers/gpu/drm/vc4/vc4_kms.c | 122 +++++++++++++++++++++++++++++-
drivers/gpu/drm/vc4/vc4_plane.c | 57 ++++++++++++++
drivers/gpu/drm/vc4/vc4_regs.h | 51 ++++---------
8 files changed, 332 insertions(+), 36 deletions(-)

--
2.20.1