Watchdog V2 - Add the logic in arm, in progress, disarm and timeout functions.
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:Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#672789}
Showing
Please register or sign in to comment