New issue
Advanced search Search tips

Issue 861708 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner:
Closed: Aug 23
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocking:
issue 835323



Sign in to add a comment

Prioritize tasks on the I/O thread

Project Member Reported by skyos...@chromium.org, Jul 9

Issue description

As outlined in [1], we want to introduce priority-based task scheduling on the I/O thread to reduce high input and rendering latency caused by long I/O thread queuing times.

[1] https://docs.google.com/document/d/1yxjka3kyKieEWP6gRlLyXVy72DJ5Gc22Nqp9vehFj14/edit#bookmark=id.it9kht4qls2k
 
There's a chance this will help with AMP performance -- see bug 858875
Blocking: 835323
Status: Started (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 26

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

commit 34f0ed04998f6c75d6aac20a22db7ca0bb66c341
Author: Eric Seckler <eseckler@chromium.org>
Date: Thu Jul 26 07:55:16 2018

base: Support off-thread initialization of SequenceManager

Adds support for initializing a SequenceManager on one thread before
using it to manage tasks on another one. The SequenceManager's creation
and initialization is interleaved with thread startup and MessageLoop
creation/binding to support overriding the MessageLoop's task runner
as soon as possible.

This is pre-work necessary to support SequenceManager on the IO thread
(see https://crrev.com/c/1140330 for a prototype).

Bug:  861708 
Change-Id: If1f36e6ab24c524b06f5c88d9a056a51123a25ce
Reviewed-on: https://chromium-review.googlesource.com/1146728
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Commit-Queue: Eric Seckler <eseckler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578236}
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/BUILD.gn
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/message_loop/message_loop.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/message_loop/message_loop.h
[add] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/associated_thread_id.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/sequence_manager.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/sequence_manager_impl.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/sequence_manager_impl.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/sequence_manager_impl_unittest.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue_impl.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue_impl.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue_selector.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue_selector.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/task_queue_selector_unittest.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/test/sequence_manager_for_test.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/test/sequence_manager_for_test.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/thread_controller.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/thread_controller_impl.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/thread_controller_impl.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/thread_controller_with_message_pump_impl.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/time_domain.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/task/sequence_manager/time_domain.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/threading/thread.cc
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/base/threading/thread.h
[modify] https://crrev.com/34f0ed04998f6c75d6aac20a22db7ca0bb66c341/third_party/blink/renderer/platform/scheduler/test/renderer_scheduler_test_support.cc

Labels: -Type-Bug -Pri-3 Pri-2 Type-Feature
Status: WontFix (was: Started)
In light of the improvements that the network and viz services will bring to congestion on the browser IO thread, we've decided to pause our efforts to scheduling of tasks on the IO thread.

We intend to add some metrics to better understand the task load on the IO thread in the field, see bug 877085.

Let's close this bug for now, and reopen it if we decide to add scheduling on the IO thread afterall.

Sign in to add a comment