On Oct 11, 2013, at 2:55 PM, Brian Anderson <bander...@mozilla.com> wrote: > On 10/11/2013 06:38 AM, Lars Bergstrom wrote: > Unless there is a serious bug in the runtime (always possible), it's true > that only the compositor task should be executing on the main thread, and > every other task will be executing on other threads. There are message > passing patterns that can cause the scheduler to not utilize available > threads correctly, so you could simply be hitting a bad case for the > scheduler. I'd love to have those test cases. > > I'm curious if servo is exhibiting actual parallelism at all right now, or if > this is a preexisting problem.
We certainly have parallelism, at least between separate pipelines. I tried two examples: - Script. Rendering a page with four of the matrix multiplication tasks uses well over 500% of CPU on my machine, with four pegged doing multiplications and another CPU's worth of what appears to be message coordination and the compositor waking up occasionally. - Layout. I took Patrick's cruel layout test (https://gist.github.com/pcwalton/6695691 ) and put a couple of them into iframes on a page. That one runs up over 220% of CPU as well. That said, while we have explicit communication between the tasks and design for lots of places to add parallelism there isn't a ton of work that I'm aware of that is yet done in parallel within a given pipeline. So I'm looking forward to seeing the example as well to see if there's some place where we're blocking in a recv() or if there's something strange going on with scheduling. - Lars _______________________________________________ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo