• Mikko Perttunen's avatar
    gpu: host1x: Add no-recovery mode · c78f837a
    Mikko Perttunen authored
    Add a new property for jobs to enable or disable recovery i.e.
    CPU increments of syncpoints to max value on job timeout. This
    allows for a more solid model for hanged jobs, where userspace
    doesn't need to guess if a syncpoint increment happened because
    the job completed, or because job timeout was triggered.
    
    On job timeout, we stop the channel, NOP all future jobs on the
    channel using the same syncpoint, mark the syncpoint as locked
    and resume the channel from the next job, if any.
    
    The future jobs are NOPed, since because we don't do the CPU
    increments, the value of the syncpoint is no longer synchronized,
    and any waiters would become confused if a future job incremented
    the syncpoint. The syncpoint is marked locked to ensure that any
    future jobs cannot increment the syncpoint either, until the
    application has recognized the situation and reallocated the
    syncpoint.
    Signed-off-by: default avatarMikko Perttunen <mperttunen@nvidia.com>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    c78f837a
job.c 14.5 KB