New issue
Advanced search Search tips

Issue 760898 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

gpu::Scheduler can starve low priority sequences

Reported by land...@opera.com, Aug 31 2017

Issue description

Chrome Version: master
OS: Linux

The gpu::Scheduler doesn't have any aging mechanism to bump long waiting low priority tasks.

We have seen starvation in certain scenarios involving a test setup which includes using the software GL renderer (--override-use-software-gl-for-tests) in combination with running chromevox in a separate renderer process.

Essentially the chromevox render get stuck in startup waiting for response from the GpuCommandBufferMsg_WaitForGetOffsetInRange IPC message. The related command stream has priority kGpuStreamPriorityWorker.
There is a stream with priority kGpuStreamPriorityUI that get most of the scheduled time.

Not knowing this code very well (at all) I have two possible suggestions for a solution:
1) Implement aging in the scheduler. Seems generally good to make sure total starvation does not happen but could maybe be tricky to get a mechanism working well for all possible scenarios.
2) Temporary bump sequences that receive sync WaitForGetOffsetInRange (possibly others) messages to make sure we don't lock up clients. This would solve our particular problem scenario but may not catch all problems that could comes from this.




 

Comment 1 by land...@opera.com, Aug 31 2017

I created a tentative CL for option 1: https://chromium-review.googlesource.com/645353

It's very basic and the "bump factor" is a bit random so I am not sure it will do.

Comment 2 by enne@chromium.org, Sep 5 2017

Labels: -Pri-3 Pri-2
Owner: land...@opera.com
Status: Assigned (was: Untriaged)

Comment 3 by land...@vewd.com, Oct 19 2017

Cc: piman@chromium.org
Owner: ----
Unassigned myself since I can't really do anything until this has been discussed internally by @piman and @sunnyps.

Comment 4 by piman@chromium.org, Oct 19 2017

Actually, Sunny just landed a change that should help there: https://chromium-review.googlesource.com/706129
Basically it's option 2 combined with lowering the UI priority. Let me know if that helps your original issue.

Comment 5 by land...@vewd.com, Apr 19 2018

Seems to work fine, so this could be closed.

Sign in to add a comment