Summary: | First step toward incremental Weak<T> finalization | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Geoffrey Garen <ggaren> | ||||||||||||||||||||
Component: | New Bugs | Assignee: | Geoffrey Garen <ggaren> | ||||||||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||||||||
Severity: | Normal | CC: | fpizlo, gustavo, mhahnenberg, pnormand, rakuco, sam, webkit.review.bot, xan.lopez | ||||||||||||||||||||
Priority: | P2 | ||||||||||||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||||
Bug Depends on: | 83139 | ||||||||||||||||||||||
Bug Blocks: | |||||||||||||||||||||||
Attachments: |
|
Description
Geoffrey Garen
2012-03-29 15:25:52 PDT
Created attachment 134688 [details]
Patch
Comment on attachment 134688 [details] Patch Attachment 134688 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12240002 Comment on attachment 134688 [details] Patch Attachment 134688 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/12248004 Comment on attachment 134688 [details] Patch Attachment 134688 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12248001 Comment on attachment 134688 [details] Patch Attachment 134688 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/12249003 Comment on attachment 134688 [details] Patch Attachment 134688 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/12255002 Comment on attachment 134688 [details] Patch Attachment 134688 [details] did not pass efl-ews (efl): Output: http://queues.webkit.org/results/12267005 Created attachment 134716 [details]
Patch
Comment on attachment 134716 [details] Patch Attachment 134716 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12266035 Comment on attachment 134716 [details] Patch Attachment 134716 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/12291006 Comment on attachment 134716 [details] Patch Attachment 134716 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/12266040 Comment on attachment 134716 [details] Patch Attachment 134716 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/12265025 Comment on attachment 134716 [details] Patch Attachment 134716 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12266034 Comment on attachment 134716 [details] Patch Attachment 134716 [details] did not pass efl-ews (efl): Output: http://queues.webkit.org/results/12265049 Created attachment 134838 [details]
Patch
Comment on attachment 134838 [details] Patch Attachment 134838 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/12266406 Comment on attachment 134838 [details] Patch Attachment 134838 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/12265352 Comment on attachment 134838 [details] Patch Attachment 134838 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12265351 Comment on attachment 134838 [details] Patch Attachment 134838 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/12267337 Created attachment 134848 [details]
Patch
Comment on attachment 134848 [details] Patch Attachment 134848 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12288352 Comment on attachment 134848 [details] Patch Attachment 134848 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/12253385 Comment on attachment 134848 [details] Patch Attachment 134848 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12253378 Comment on attachment 134848 [details] Patch Attachment 134848 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/12288357 Created attachment 134896 [details]
Patch
Comment on attachment 134896 [details] Patch Attachment 134896 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12288470 Comment on attachment 134896 [details] Patch Attachment 134896 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12253490 Comment on attachment 134896 [details] Patch Attachment 134896 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/12291472 Created attachment 134982 [details]
Patch
Comment on attachment 134982 [details] Patch Attachment 134982 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12291937 Comment on attachment 134982 [details] Patch Attachment 134982 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12308021 Comment on attachment 134982 [details] Patch Attachment 134982 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12288940 Comment on attachment 134982 [details] Patch Attachment 134982 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12253990 Created attachment 135114 [details]
Patch
Comment on attachment 135114 [details] Patch Attachment 135114 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12308642 Comment on attachment 135114 [details] Patch Attachment 135114 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/12312645 Created attachment 135199 [details]
Patch
Comment on attachment 135199 [details] Patch Attachment 135199 [details] did not pass gtk-ews (gtk): Output: http://queues.webkit.org/results/12306917 Created attachment 135219 [details]
Patch
Attachment 135219 [details] did not pass style-queue:
Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/API/JSCallbackObject..." exit_code: 1
Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp:32: Alphabetical sorting problem. [build/include_order] [4]
Total errors found: 1 in 39 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 135219 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=135219&action=review R=me except for the one comment about possibly not having to do a round of tracing after handling dead weak handles. > Source/JavaScriptCore/heap/Heap.cpp:716 > + { > + ParallelModeEnabler enabler(visitor); > + visitor.donateAndDrain(); > +#if ENABLE(PARALLEL_GC) > + visitor.drainFromShared(SlotVisitor::MasterDrain); > +#endif > + } Why do we have to retrace? I don't see marking in visitDeadWeakImpls. > Source/JavaScriptCore/heap/Heap.h:138 > + WeakHeap* weakHeap() { return &m_weakHeap; } Random nit: whenever I look at this code I get confused by the terms "WeakHeap" and "HandleHeap". Those aren't really heaps. I mean, they do some of their own memory management, but so do many things in our code, and yet we don't call them "heaps" for that reason. I feel like in the future - not in this patch - it might be good to rename "HandleHeap" and "WeakHeap" to "HandleSet" and "WeakSet". Thoughts? > Source/JavaScriptCore/heap/WeakHeap.h:73 > + if (!allocator) UNLIKELY() ? Comment on attachment 135219 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=135219&action=review > Source/JavaScriptCore/Configurations/Base.xcconfig:-27 > -COMPILER_SPECIFIC_WARNING_CFLAGS_LLVM_COMPILER = -Wglobal-constructors -Wexit-time-destructors; Why have you removed this? > > -COMPILER_SPECIFIC_WARNING_CFLAGS_LLVM_COMPILER = -Wglobal-constructors -Wexit-time-destructors;
>
> Why have you removed this?
Accident. I was testing with GCC to try to figure out the build failures. Will fix before landing.
> Why do we have to retrace? I don't see marking in visitDeadWeakImpls. True, we don't yet. I'll remove this, and add it back once it makes sense. > > Source/JavaScriptCore/heap/Heap.h:138 > > + WeakHeap* weakHeap() { return &m_weakHeap; } > > Random nit: whenever I look at this code I get confused by the terms "WeakHeap" and "HandleHeap". Those aren't really heaps. I mean, they do some of their own memory management, but so do many things in our code, and yet we don't call them "heaps" for that reason. > > I feel like in the future - not in this patch - it might be good to rename "HandleHeap" and "WeakHeap" to "HandleSet" and "WeakSet". Thoughts? Sounds OK. If we go with "WeakSet", I might want to change "allocate" and "deallocate" to "add" and "remove". I'm a little worried that "*Set" implies uniqueness, which is not true in this case. Maybe "WeakList"? > > Source/JavaScriptCore/heap/WeakHeap.h:73 > > + if (!allocator) > > UNLIKELY() ? Fixed. Committed r113141: <http://trac.webkit.org/changeset/113141> Follow-up fix for WebKit2: <http://trac.webkit.org/changeset/113146>. Follow-up fix for Qt / 32-bit: <http://trac.webkit.org/changeset/113209>. |