• Maggie Chen's avatar
    Watchdog V2 - Add the logic in arm, in progress, disarm and timeout functions. · 05430111
    Maggie Chen authored
    A delayed task OnWatchdogTimeout() is posted during watchdog thread init. It will
    continue posting the next delayed timeout task when no GPU hang is detected.
    
    A atomic counter is incremented by one in Arm() or Disarm(), and by two in
    ReportProgress(). When OnWatchdogTimeout() task is running, it checks if the
    counter increases from the last timeout (i.e still running) or if the counter
    is an even number (i.e. disarmed). If not, Watchdog thread will crash deliberately
    in order to recover from gpu hang.
    
    
    
    
    Bug:949839
    
    Change-Id: Ie0e98c9e7621068a5143bf9c3a70cc8a6267955a
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1674786
    Commit-Queue: Maggie Chen <magchen@chromium.org>
    Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#672789}
    05430111
gpu_watchdog_thread_v2.h 2.04 KB