--
You received this message because you are subscribed to the Google Groups "scheduler-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scheduler-de...@chromium.org.
To post to this group, send email to schedu...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CAGD3t5GiMaajMuQ5Y7yo8hA%3DeQsi0Z%3DMNK8wX3Ht%2BYiaLtObHg%40mail.gmail.com.
Slightly O/T:The IO scheduler was originally nixed because most of the issues appeared to be due to the network stack, which is moving out of process (very soon now!). Is there new evidence to show that the IO thread is an issue?(FWIW, I believe it will be an issue, and that we'll want a scheduler. We've found some gnarly cases of the IO thread blocking multiple other threads in some recent trace deep dives.)
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CAPuLczuJFQ%3Dx5KWe_dsfRauuFGNcixfJSOJepwDGz1wQEd8PgQ%40mail.gmail.com.
The first 3 are all in net and are moving out of process. Likely we'll still want to schedule those in the net process, but at least they'll be out of the browser startup critical path.Which brings up the question: How much work will it be to make sequence manager work for main threads out of the browser process? We'll likely want to be able to have per-process type main thread schedulers.
pe 15. helmik. 2019 klo 17.00 Chris Hamilton (chr...@google.com) kirjoitti:The first 3 are all in net and are moving out of process. Likely we'll still want to schedule those in the net process, but at least they'll be out of the browser startup critical path.
The first 3 are all in net and are moving out of process. Likely we'll still want to schedule those in the net process, but at least they'll be out of the browser startup critical path.
Which brings up the question: How much work will it be to make sequence manager work for main threads out of the browser process? We'll likely want to be able to have per-process type main thread schedulers.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CAA2pCLdD5qN0HLOu_UbzCCtcM%3DZQcaEOs6yn-DKb57tLHeioOg%40mail.gmail.com.
On Fri, 15 Feb 2019 at 17:00, 'Chris Hamilton' via scheduler-dev <schedu...@chromium.org> wrote:The first 3 are all in net and are moving out of process. Likely we'll still want to schedule those in the net process, but at least they'll be out of the browser startup critical path.I was under the impression the network service was going to be in process on android due to memory overhead. (I could be wrong here!)
Adding an IO scheduler is simple now. E,g. https://chromium-review.googlesource.com/c/chromium/src/+/1463560Which brings up the question: How much work will it be to make sequence manager work for main threads out of the browser process? We'll likely want to be able to have per-process type main thread schedulers.Should be straight forward. I wonder if it will be useful in the net process (seems like it might), what about the GPU process?
Hi François,It would be really amazing if we could move threading code out of //ios/web. Web Layer should be responsible for managing web contents and navigation, and threading support is out of scope for this layer. There are a few constraints however:- //content and //ios/web can not use //components (existing examples are layering violations)- //ios/web can not use //content (which is currently true)//content and //ios/web can use the code from //base. So maybe we could move all shared code to //base?Adding thankis@ for evaluating if //base is the right place for threading code. blundell@ who designed layered components. rohitrao@ who is probably the only engineer on iOS team who understands //ios/web threading code.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CACiDxEFGFajMKgeTJpH-wF8xL577qQ65Djp%3D2J0jR0VGfitsQQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CACiDxEFshLORryY%2BWh4_gBvkUJhn%3DUfhS_ju-%2BisYJw8JXG9tg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CAHZJZiFb4Hka%2B0a_m1oJYWCuB%2BGCpAQ5BR66BtfUKKeG8MTDQg%40mail.gmail.com.
I thought that used to be true long ago but isn't any more: https://cs.chromium.org/search/?q=file:components.*deps+content&sq=package:chromium&type=cs
On Fri, Feb 15, 2019 at 6:14 PM Eugene But <euge...@chromium.org> wrote:By design //components layer sits above //content and //ios/web. Higher layer can use the code from lower layer:chromecomponentscontentnetbaseOn Fri, Feb 15, 2019 at 3:11 PM Gabriel Charette <g...@chromium.org> wrote:On Fri, Feb 15, 2019 at 12:30 PM Eugene But <euge...@chromium.org> wrote:Hi François,It would be really amazing if we could move threading code out of //ios/web. Web Layer should be responsible for managing web contents and navigation, and threading support is out of scope for this layer. There are a few constraints however:- //content and //ios/web can not use //components (existing examples are layering violations)- //ios/web can not use //content (which is currently true)//content and //ios/web can use the code from //base. So maybe we could move all shared code to //base?Adding thankis@ for evaluating if //base is the right place for threading code. blundell@ who designed layered components. rohitrao@ who is probably the only engineer on iOS team who understands //ios/web threading code.No //base isn't the right place for BrowserThreads. Why can't we have a basic component for this? I thought this was the whole point of components but I keep being confused at why components can't be used in various places. Feels against base's principles of not being a dumpground to ban extracting a common component from //content and //ios/web (which are currently out-of-phase copies of each other..).
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/scheduler-dev/CAMGE5NHYE-vtGyCDKP0VTuK_OyOcLbqu7O66tBGaMUBu8LUQ%2Bg%40mail.gmail.com.
FWIW, I just had to dig into history for this. Turns out the biggest discrepancy between //ios/web and //content -- and reason I thought we couldn't simply migrate to a common component and drop the iOS lage -- was https://chromium-review.googlesource.com/c/chromium/src/+/980793 but +Rohit Rao closed that gap in https://chromium-review.googlesource.com/c/chromium/src/+/1383140. So now iOS is only missing https://chromium-review.googlesource.com/973556 and as such it's susceptible to a bug fixed long ago in //content : BrowserThread-lock-contention and priority inversions (i.e. crbug.com/821034 and crbug.com/890978).Fixing that alone (and making sure to share further such improvements -- i.e. BrowserThreadUIScheduler which just landed in //content) is enough to justify //browser_base IMO.
The iOS bug tracking the required catch up is crbug.com/826465 but, again, I think sharing code would be a much better end-state for iOS which keeps missing out on threading improvements. As such I also think that the iOS team should own implementing this (and probably share the design duty with fdoray@?).