--
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/CADjAqN7K11ROuywASJ0Zj-vBTu0UXFa7nXWdiG5-_Kqf1jm78w%40mail.gmail.com.
--
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-dev+unsubscribe@chromium.org.
Yeah I thought about doing this by splitting up work into separate task runners with budgets, but since the tasks are all related (various stages of loading a resource from cache) I didn't think it was a great fit.However, if we did somehow break the tasks into separate task runners that were round-robbin'ed, I think it would be a reasonable solution.
On Tue, Oct 18, 2016 at 5:11 AM, Alex Clarke <alexc...@google.com> wrote:
FYI The blink scheduler is moving towards CPU time budgets for various task runners. E.g. we want to throttle background tabs to 1% of CPU, or while loading we might want to limit main thread composting tasks to 50% of CPU.I'm not sure if that's a good match for you since it's at the task runner level, but I thought I'd mention it.
On 17 October 2016 at 21:52, 'Charles Harrison' via scheduler-dev <schedu...@chromium.org> wrote:
Hi scheduler-dev,crbug.com/655585 shows a problem of task starvation on the IO thread when requesting many resources. When many requests are made at once, we have huge "chunks" of tasks which block requests from making progress. Here is a brief description of what we are seeing when requesting 100 resources over H2:[ 100 OnResourceRequest tasks ] ~ 100ms[ 100 OnStartCompleted tasks interleaved with certificate parsing tasks] ~ 250ms[ 100 OnReadCompleted tasks]The OnResourceRequest tasks starve the OnStartCompleted / cert parsing tasks, which in turn starve the OnReadCompleted tasks. This results in cached responses coming in with a ~350-400ms delay!My proposal in the bug is to assign priority to these tasks so that later tasks in the request lifecycle are given higher priority, so at least one request at any time is making forward progress.I looked briefly for an API in base/task_scheduler and I found TaskPriority which seems to be exactly what I want but is very coarse grained. To solve this we'd probably need more buckets with different semantics :/Can we have some pointers for how best to proceed here? I would like to find a way to solve this without resorting to throttling requests / tasks, as I believe FIFO + priorities will produce optimal results.
--
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/CADjAqN7K11ROuywASJ0Zj-vBTu0UXFa7nXWdiG5-_Kqf1jm78w%40mail.gmail.com.
--
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/CADjAqN72hcD18qfMfL__jbQJPjd-YSj%3Dx5OKx8Ki3dji6-7BqQ%40mail.gmail.com.
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev...@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CANMdWTtwDCgmya1HB4twJSRpODYDawPscqzmTk6fL%2BBZFsV2PQ%40mail.gmail.com.
- Sami
--
To unsubscribe from this group and stop receiving emails from it, send an email to scheduler-dev+unsubscribe@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/CADjAqN7K11ROuywASJ0Zj-vBTu0UXFa7nXWdiG5-_Kqf1jm78w%40mail.gmail.com.
--
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-dev+unsubscribe@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/CADjAqN72hcD18qfMfL__jbQJPjd-YSj%3Dx5OKx8Ki3dji6-7BqQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev+unsubscribe@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CANMdWTtwDCgmya1HB4twJSRpODYDawPscqzmTk6fL%2BBZFsV2PQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev+unsubscribe@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CAPuLczuH9JZwYAuWZeH_NvehaotJ-BjpYeoD0OotPeMHDc58Gg%40mail.gmail.com.
- Sami
--
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/CADjAqN7K11ROuywASJ0Zj-vBTu0UXFa7nXWdiG5-_Kqf1jm78w%40mail.gmail.com.
--
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/CADjAqN72hcD18qfMfL__jbQJPjd-YSj%3Dx5OKx8Ki3dji6-7BqQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev...@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CANMdWTtwDCgmya1HB4twJSRpODYDawPscqzmTk6fL%2BBZFsV2PQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev...@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CAJTZ7LLUh9EO-dF9A-66B1Uquyg%2BXEEhDaHR8duTva5DA4jkYA%40mail.gmail.com.
- Sami
--
To unsubscribe from this group and stop receiving emails from it, send an email to scheduler-dev+unsubscribe@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/CADjAqN7K11ROuywASJ0Zj-vBTu0UXFa7nXWdiG5-_Kqf1jm78w%40mail.gmail.com.
--
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-dev+unsubscribe@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/CADjAqN72hcD18qfMfL__jbQJPjd-YSj%3Dx5OKx8Ki3dji6-7BqQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev+unsubscribe@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CANMdWTtwDCgmya1HB4twJSRpODYDawPscqzmTk6fL%2BBZFsV2PQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev+unsubscribe@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CAPuLczuH9JZwYAuWZeH_NvehaotJ-BjpYeoD0OotPeMHDc58Gg%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev+unsubscribe@chromium.org.
FYI, the TaskScheduler and Blink scheduler teams have discussed the potential to eventually merge the two. In order for this to happen, TaskScheduler needs to be able to manage multiple sequences being funneled to a single thread (instead of sharded across multiple workers). In such a world you would manage ordering (through sequences) and the funnel being single-threaded you wouldn't get races between sequences either. Would that work for you?
FYI, the TaskScheduler and Blink scheduler teams have discussed the potential to eventually merge the two. In order for this to happen, TaskScheduler needs to be able to manage multiple sequences being funneled to a single thread (instead of sharded across multiple workers). In such a world you would manage ordering (through sequences) and the funnel being single-threaded you wouldn't get races between sequences either. Would that work for you?
Things that need to happen in a specific order would need to be on the same sequence and posted to it in that specific order (just like they must be on today's IO thread sequence). If they are independent on all aspects but shutdown order then perhaps independent sequences is possible if something else ensures lifetime order (your specific example sounds like multiple things depending on one thing, i.e. ref-counting?).
--
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/CACvaWvYRnsNAkmVqeLVHDhpfZNjRu52%2BHYeCa4KDOmKsry-Fig%40mail.gmail.com.
Things that need to happen in a specific order would need to be on the same sequence and posted to it in that specific order (just like they must be on today's IO thread sequence). If they are independent on all aspects but shutdown order then perhaps independent sequences is possible if something else ensures lifetime order (your specific example sounds like multiple things depending on one thing, i.e. ref-counting?).
Le mer. 23 nov. 2016 16:07, Ryan Sleevi <rsl...@chromium.org> a écrit :
--On Wed, Nov 23, 2016 at 12:33 PM, Gabriel Charette <g...@chromium.org> wrote:FYI, the TaskScheduler and Blink scheduler teams have discussed the potential to eventually merge the two. In order for this to happen, TaskScheduler needs to be able to manage multiple sequences being funneled to a single thread (instead of sharded across multiple workers). In such a world you would manage ordering (through sequences) and the funnel being single-threaded you wouldn't get races between sequences either. Would that work for you?
Perhaps I'm misunderstanding, but you'd still get races across sequences, right? For example, two URLRequests with independent H/2 streams that share a single H/2 connection on a single low-level transport socket, you'd still need to ensure that shutdown sequencing is properly ordered. So that if the processing for one task on one request (dispatched via PostTask) was preempted by another task that tore down the underlying object hierarchy, you would still end up with the same lifetime concerns, do you not?
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-dev+unsubscribe@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/CACvaWvYRnsNAkmVqeLVHDhpfZNjRu52%2BHYeCa4KDOmKsry-Fig%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev+unsubscribe@chromium.org.
To post to this group, send email to loadi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/loading-dev/CAJTZ7LLDF4DkxN4h2kCwXZ%2Bst6r5TxTjY3voquG8DXbxPuM%2BgA%40mail.gmail.com.
No, it's not refcounting, it's a parent/child relationship.That was a big part of today's discussion - that much of //net is itself strictly sequenced (that is, a single sequence), either implicitly or explicitly, and the reordering introduces all the complexities of lifetime management and correctness. That's not to say it can't be solved, but it's not an easy drop-in, as there is a whole cascade of relationships.Put differently, //net needs a single, sequenced task runner, even for independent requests. This argues for a more explicit management of priorities (avoiding the task queue to manage that), which allows for better management of object lifetimes and guarantees.On Wed, Nov 23, 2016 at 1:56 PM, Gabriel Charette <g...@chromium.org> wrote:
Things that need to happen in a specific order would need to be on the same sequence and posted to it in that specific order (just like they must be on today's IO thread sequence). If they are independent on all aspects but shutdown order then perhaps independent sequences is possible if something else ensures lifetime order (your specific example sounds like multiple things depending on one thing, i.e. ref-counting?).
Le mer. 23 nov. 2016 16:07, Ryan Sleevi <rsl...@chromium.org> a écrit :
--On Wed, Nov 23, 2016 at 12:33 PM, Gabriel Charette <g...@chromium.org> wrote:FYI, the TaskScheduler and Blink scheduler teams have discussed the potential to eventually merge the two. In order for this to happen, TaskScheduler needs to be able to manage multiple sequences being funneled to a single thread (instead of sharded across multiple workers). In such a world you would manage ordering (through sequences) and the funnel being single-threaded you wouldn't get races between sequences either. Would that work for you?
Perhaps I'm misunderstanding, but you'd still get races across sequences, right? For example, two URLRequests with independent H/2 streams that share a single H/2 connection on a single low-level transport socket, you'd still need to ensure that shutdown sequencing is properly ordered. So that if the processing for one task on one request (dispatched via PostTask) was preempted by another task that tore down the underlying object hierarchy, you would still end up with the same lifetime concerns, do you not?
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/CACvaWvYRnsNAkmVqeLVHDhpfZNjRu52%2BHYeCa4KDOmKsry-Fig%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Chromium Loading Performance" group.
To unsubscribe from this group and stop receiving emails from it, send an email to loading-dev...@chromium.org.
To post to this group, send email to loadi...@chromium.org.
I see, maybe something WeakPtr based would work for this relationship (unless both absolutely need to happen but one uses the other's resources)?
Anyways, know that TaskScheduler can support splitting net's work into multiple sequences funneled to a single thread if you can address the lifetime issues (lifetime dependencies being encoded into the sequence itself is unfortunate).
--
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/CACvaWvanY%3DT6atYQgr2DTr_tA8zva52W9tiUOqzjeH4A6WhZcg%40mail.gmail.com.
Chatted offline with Ryan, we both learned a bunch from each other's use cases and paradigms and discussed how a future that would allow Lucky Luke to manage net/ could look like. Just thoughts and knowledge sharing at this point but here are the highlights: https://docs.google.com/document/d/1RbSchPHqXobDuUR2LTZrKTdkn7tiL5ogV4OJJZ9r1AQ/edit