Hello everyone,we're back. :)In the past month three things happened bringing us closer to no-perf-regressions state:1. I have landed a few changes to LLVM that allow us to see which virtual call sites / methods have been devirtualized and why. Please, find this wonderful list of 51491 devirtualized site calls pointing to 23149 virtual methods:Many of the call sites have been devirtualized due to a single implementation of a virtual method. Usually, such methods are virtual, only because there's a real and a test implementation, where Chrome binary only has the real one, and LinkTimeOptimization can see that removing the virtual call. Others have been eliminated by virtual const propagation. All in all, the list looks good, and we know how to devirtualize even more methods, which is a matter of an additional engineering effort.2. After profiling the observed slowdown, I have identified ~130 methods which are either too hot, or have too many CFI checks, so they affect the overall performance, see https://crbug.com/634139I plan to add an attribute on top of each such method to disable CFI on them, and that bring us to an overhead that I could not measure. See https://storage.googleapis.com/cfi-stats/2016-08-15/results.htmlWhile 130 seems a lot, that's only ~0.1% of all the methods in Chrome => we'll have it enabled on 99.9%, which is pretty good already.For the methods which have too many CFI checks, there're ideas how to significantly reduce their number, see, for example: https://crbug.com/638056. That optimization alone should cover 6 out of 8 methods in V8 which we'll need to disable CFI on. That will take time to implement, though, and does not seem like a launch blocker.3. I have created a launch bug as suggested by Brett: https://crbug.com/638779krasinOn Sat, Jul 16, 2016 at 3:35 PM, Ivan Krasin <kra...@google.com> wrote:Sure!And thank you for your rigor review from the perf side: I was impressed seeing that you went through our open bugs to see what's there.krasinOn Sat, Jul 16, 2016 at 3:32 PM, Elliott Sprehn <esp...@chromium.org> wrote:Thanks so much for staying on top of this! Let me know if you need help.
- E
On Jul 16, 2016 11:02 AM, "Ivan Krasin" <kra...@google.com> wrote:The CL is reverted: https://codereview.chromium.org/2154993002/Thank you everyone for the input and help. I hope to come back to this thread, if we find a way to speed this up.
+platform-architecture-dev(Context: Ivan is planning to launch CFI for virtual function calls. See here for the full context.)Is there any update about the performance regression you'd been observing in blink_perf.layout?
From the Blink perspective, I support this change assuming that the following benchmarks don't regress:- blink_perf.*
- dromaeo.dom*
- speedometer- animometer
Hi Kentaro,On Wed, Aug 17, 2016 at 7:35 PM, Kentaro Hara <har...@chromium.org> wrote:+platform-architecture-dev(Context: Ivan is planning to launch CFI for virtual function calls. See here for the full context.)Is there any update about the performance regression you'd been observing in blink_perf.layout?This is literally the point #2 in my update (see above). Sorry if that was not clear. :)From the Blink perspective, I support this change assuming that the following benchmarks don't regress:- blink_perf.*- dromaeo.dom*Will collect stats for that tomorrow.
- speedometer- animometerFor these two benchmarks (speedometer and animometer) there was no slowdown even in our previous try.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/platform-architecture-dev/CAOei5RezWnUZQ1oDgMZDdrbGG4J9CQoahXsw6EYxx7G17M7cxw%40mail.gmail.com.--
You received this message because you are subscribed to the Google Groups "platform-architecture-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to platform-architecture-dev+unsub...@chromium.org.
To post to this group, send email to platform-architecture-dev@chromium.org.
Just curious, if you apply the optmization without any CFI checks, how much perf gain will you get?
To unsubscribe from this group and stop receiving emails from it, send an email to platform-architecture-dev+unsubsc...@chromium.org.
To post to this group, send email to platform-architecture-dev@chromium.org.
You received this message because you are subscribed to the Google Groups "Project TRIM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to project-trim+unsubscribe@chromium.org.
To post to this group, send email to projec...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/project-trim/CAOei5RdJiM4RbHPmLi3QkB7zNJJ_7WT09G8ZN%3DA5K88zDyVXow%40mail.gmail.com.