I talked to a room of Gecko platform engineers about Servo today. I drew a diagram of the most recent architecture plans (constellation; multiple pipelines of script (with copy-on-write DOM planned), layout, renderer, and compositer; script tasks with multiple pages per origin; cross-origin frames linked to separate pipelines; resource and image cache tasks) and took any questions that people had to the best of my ability. Here are the questions for which I had no good answers; please discuss them!

* Are there viability criteria? How much better (performance-wise) than other engines does Servo have to be considered worth continued investment?

* What are the expectations of parallel wins relative to Gecko? Where are the wins, and how much?

* What's the timeline for determining viability?

* What is the plan to handle cycles between the DOM and JS?

* Do same-origin pages that can't communicate synchronously need to be on the same script task? (scenario: two tabs pointing at google.com properties)

* What's the status of allocating DOM objects on the JS heap and/or using the JS GC for the DOM task?

* Are we ignoring the major known issue on the web (synchronous layout operations) in favour of fixing the less important ones? (mentioned running GC during sync layout; audience not particularly impressed)

* Could we "freeze" background pages (on a language level?) and unload them in order to conserve memory and avoid extra processing work, with the expectation of resurrecting them later as needed?

* How can we handle individual task failure, such as layout/rendering? Could we recover by spawning a new task, or do we need to create a whole pipeline from scratch?

* Is abortable layout being considered for short-circuiting in-progress operations when new results are needed?

* If compositing ends up happening no sooner than Gecko (ie. we're still a sequential pipeline starting from layout), aren't we wasting effort being parallel (more cores, more work, same amount of time)?

* Do we have data showing how many security bugs we could be avoiding in Servo in comparison to Gecko? Is the security benefit truly as valuable if expected performance benefits don't pan out?

* For cases with lots of synchronous layout, could there be a way to run layout and script sequentially, same-task, such that no async message-passing is necessary?

* Can we have more traffic on dev-servo for people who want to follow what's going on? (one suggestion: posting links to meeting notes every week)

Cheers,
Josh
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to