New issue
Advanced search Search tips

Issue 786820 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 5
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 781585



Sign in to add a comment

Cycles in context wait graphs can cause a context to retain High priority as long as the cycle is unbroken.

Project Member Reported by vmi...@chromium.org, Nov 19 2017

Issue description

 Issue 781585  fixes the issue that Low priority streams could easily take on High priority without having a High priority stream waiting on them.

There is another case where we can still get back to streams inheriting High priority even when there isn't a high priority stream waiting for them.

Here's the case: We currently keep an un-directed graph of waits and releases.  If this leads to a circular dependency between lower priority streams, and one of those streams is bumped to High priority for any reason, the streams in the circular loop will keep High priority until the circle is broken.

For example: If (1) C waits on B, then (2) B waits on A, then only B should inherit C's priority.  Today both A & B inherit C's priority.  Subsequently if A & B form a wait cycle, they retain C's priority until the cycle is broken.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c6beea98845bd10f2cad495de4376eb5de55b88

commit 5c6beea98845bd10f2cad495de4376eb5de55b88
Author: Victor Miura <vmiura@chromium.org>
Date: Tue Nov 21 23:42:59 2017

gpu scheduler: Optimize priorities for circular stream waits.

This changes streams to only propagate inherited prioirities to
already existing wait fences.

New wait fences initially inherit the default priority of the waiter.
If the waiter gets a priority bump, that priority is propagated to
existing wait fences at that time.

BUG= 786820 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iab04f21985e69aba7f3b90b7ffe2545d3c8510e6
Reviewed-on: https://chromium-review.googlesource.com/778422
Commit-Queue: Victor Miura <vmiura@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518453}
[modify] https://crrev.com/5c6beea98845bd10f2cad495de4376eb5de55b88/gpu/command_buffer/service/scheduler.cc
[modify] https://crrev.com/5c6beea98845bd10f2cad495de4376eb5de55b88/gpu/command_buffer/service/scheduler.h
[modify] https://crrev.com/5c6beea98845bd10f2cad495de4376eb5de55b88/gpu/command_buffer/service/scheduler_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment