Open Bug 1560579 Opened 5 years ago Updated 2 years ago

Replace rayon with another task scheduling system

Categories

(Core :: Graphics: WebRender, task, P3)

task

Tracking

()

REOPENED

People

(Reporter: nical, Unassigned)

References

(Blocks 1 open bug)

Details

Rayon seems to be optimized for a different kind of workload than ours and isn't working out for us (we usually spend more CPU time in rayon's glue than on the actual submitted work, and get nasty priority inversion issues).

Let's replace it with a simple system probably built on top of simple channels and muteces. What I would like from a new system is:

  • Some notion of priority making sure we don't have to wait for a heavy low priority workload before we process high priority ones (this would hopefully let us remove the low priority scene builder thread).
  • The ability to let the caller thread contribute to the work rather than just sit around and wait.
  • Be easy to replace with something else (there's the possibility that we might want to try out the upcoming browser scheduler by the performance team).
Blocks: wr-perf, wr-intel
Priority: -- → P3
No longer blocks: wr-intel

Rayon has gotten better. It's not fantastic but too low priority to worry about right now, so I'm closing this and perhaps we'll open a new bug if/when this becomes an issue again.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → WONTFIX
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---

There's some renewed motivation around replacing rayon with https://github.com/nical/misc/tree/master/parasol

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.