This is excellent. Thank you very much for taking the time to answer On Wed, Sep 6, 2017 at 3:56 PM, Toon Verwaest <verwa...@chromium.org> wrote:
> The article is a bit confused about multiple things within V8, so I > wouldn't rely on it as a source to correctly understand how V8 works in > detail. E.g., also the first sentence explaining what "stable maps" are is > plainly wrong. Stable maps are maps from which we've never seen an instance > transition away. > > I don't remember if it's correct but it makes think that the bug was about > an optimization allowing us not to recheck the map of an object since it > was marked stable, by instead adding a "stability dependency" on the map. > If any object ever transitions away from the stable map the code should be > deoptimized. I believe this was broken for elements transitions since we > find those transitions in special way; and we had forgotten to mark the > source map of the transition unstable when the transition target map > already existed. Since optimized code wasn't notified when the object shape > changed (and its map was swapped), it kept on assuming that the elements > kind was the previous one. > > On Wed, Sep 6, 2017 at 3:41 AM Jakob Kummerow <jkumme...@chromium.org> > wrote: > >> Well, as you said, that article is talking about a bug, so the answer to >> the question "why did that happen?" is "because there was a bug". >> >> Elements kind transitions are regular map transitions (the article seems >> to be a bit confused about that), and do cause inline cache misses (and >> other map check failures) just like every other map transition. The bug (as >> far as I understand) had to do with compiler optimizations, not inline >> cache misses. >> >> On Tue, Sep 5, 2017 at 4:30 PM, cyril <hit.liushenr...@gmail.com> wrote: >> >>> I have read an article about V8's bug , the author wrote >>> >>>> What happens is this: First, a function is reduced in a way that makes >>>> it change the elements kind of a stable map. Next, a second function is >>>> reduced in a way that simply stores / loads a property in the same stable >>>> map. Now, an object of that map is created. The first function is called >>>> with that object as the argument, and the elements kind is changed. >>>> The second function is called, and the inline cache does not miss >>>> (since, remember, an elements kind transition is not a regular transition >>>> into a different map type that would cause the cache to miss). >>> >>> So How to understand this sentence?* (since, remember, an elements kind >>> transition is not a regular transition into a different map type that would >>> cause the cache to miss).* >>> >>> the link : https://blogs.securiteam.com/index.php/archives/3379 >>> >>> Jakob Kummerow wrote: >>>> >>>> What cache are you talking about? >>>> >>>> Different elements kinds do cause inline cache misses. >>>> >>>> On Tue, Sep 5, 2017 at 3:08 AM, cyril <hit.liu...@gmail.com> wrote: >>>> >>>>> Hi all, >>>>> >>>>> Why element kind transition can't cause the cache to miss? >>>>> >>>>> >>>>> -- >>>>> -- >>>>> v8-users mailing list >>>>> v8-u...@googlegroups.com >>>>> http://groups.google.com/group/v8-users >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "v8-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to v8-users+u...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> -- >>> v8-users mailing list >>> v8-users@googlegroups.com >>> http://groups.google.com/group/v8-users >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to v8-users+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> -- >> v8-users mailing list >> v8-users@googlegroups.com >> http://groups.google.com/group/v8-users >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to v8-users+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- > > Toon Verwaest | Software Engineer, V8 | Google Germany GmbH | Erika-Mann > Str. 33, 80636 München > > Registergericht und -nummer: Hamburg, HRB 86891 | Sitz der Gesellschaft: > Hamburg | Geschäftsführer: Paul Manicle, Halimah DeLaine Prado > > -- > -- > v8-users mailing list > v8-users@googlegroups.com > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to a topic in the > Google Groups "v8-users" group. > To unsubscribe from this topic, visit https://groups.google.com/d/to > pic/v8-users/WmtFHKB7-rg/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > v8-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.