• Tvrtko Ursulin's avatar
    drm/i915: Improve user experience and driver robustness under SIGINT or similar · 45c64ecf
    Tvrtko Ursulin authored
    We have long standing customer complaints that pressing Ctrl-C (or to the
    effect of) causes engine resets with otherwise well behaving programs.
    
    Not only is logging engine resets during normal operation not desirable
    since it creates support incidents, but more fundamentally we should avoid
    going the engine reset path when we can since any engine reset introduces
    a chance of harming an innocent context.
    
    Reason for this undesirable behaviour is that the driver currently does
    not distinguish between banned contexts and non-persistent contexts which
    have been closed.
    
    To fix this we add the distinction between the two reasons for revoking
    contexts, which then allows the strict timeout only be applied to banned,
    while innocent contexts (well behaving) can preempt cleanly and exit
    without triggering the engine reset path.
    
    Note that the added context exiting category applies both to closed non-
    persistent context, and any exiting context when hangcheck has been
    disabled by the user.
    
    At the same time we rename the backend operation from 'ban' to 'revoke'
    which more accurately describes the actual semantics. (There is no ban at
    the backend level since banning is a concept driven by the scheduling
    frontend. Backends are simply able to revoke a running context so that
    is the more appropriate name chosen.)
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220527072452.2225610-1-tvrtko.ursulin@linux.intel.com
    45c64ecf
intel_context.c 14.1 KB