lkml.org 
[lkml]   [2022]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7/v3 21/22] gpu: host1x: Use RESTART_W to skip timed out jobs on Tegra186+
    Date
    From: Mikko Perttunen <mperttunen@nvidia.com>

    When MLOCK enforcement is enabled, the 0-word write currently done
    is rejected by the hardware outside of an MLOCK region. As such,
    on these chips, which also have the newer, more convenient RESTART_W
    opcode, use that instead to skip over the timed out job.

    Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
    ---
    drivers/gpu/host1x/cdma.c | 19 +++++++++++++++++--
    1 file changed, 17 insertions(+), 2 deletions(-)

    diff --git a/drivers/gpu/host1x/cdma.c b/drivers/gpu/host1x/cdma.c
    index 765e5aa64eb6..bb1f3c746be4 100644
    --- a/drivers/gpu/host1x/cdma.c
    +++ b/drivers/gpu/host1x/cdma.c
    @@ -457,9 +457,24 @@ void host1x_cdma_update_sync_queue(struct host1x_cdma *cdma,
    * to offset 0xbad. This does nothing but
    * has a easily detected signature in debug
    * traces.
    + *
    + * On systems with MLOCK enforcement enabled,
    + * the above 0 word writes would fall foul of
    + * the enforcement. As such, in the first slot
    + * put a RESTART_W opcode to the beginning
    + * of the next job. We don't use this for older
    + * chips since those only support the RESTART
    + * opcode with inconvenient alignment requirements.
    */
    - mapped[2*slot+0] = 0x1bad0000;
    - mapped[2*slot+1] = 0x1bad0000;
    + if (i == 0 && host1x->info->has_wide_gather) {
    + unsigned int next_job = (job->first_get/8 + job->num_slots)
    + % HOST1X_PUSHBUFFER_SLOTS;
    + mapped[2*slot+0] = (0xd << 28) | (next_job * 2);
    + mapped[2*slot+1] = 0x0;
    + } else {
    + mapped[2*slot+0] = 0x1bad0000;
    + mapped[2*slot+1] = 0x1bad0000;
    + }
    }

    job->cancelled = true;
    --
    2.36.1
    \
     
     \ /
      Last update: 2022-06-27 16:23    [W:4.010 / U:0.620 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site