Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Issue 980653002: Oilpan: disable conservative GCs during initial GC mixin construction. (Closed)

Created:
5 years, 9 months ago by sof
Modified:
5 years, 8 months ago
Reviewers:
oilpan-reviews, haraken
CC:
blink-reviews, oilpan-reviews, Mads Ager (chromium), mvanouwerkerk+watch_chromium.org, webcomponents-bugzilla_chromium.org, eae+blinkwatch, mlamouri+watch-blink_chromium.org, timvolodine, blink-reviews-dom_chromium.org, dglazkov+blink, Inactive, kouhei+heap_chromium.org, rwlbuis
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Oilpan: disable conservative GCs during initial GC mixin construction. Another, more effective, attempt at disallowing conservative GCs from striking while constructing a GC mixin object and it is not in a well-formed state to allow a GC to strike. GC mixins now override 'operator new', which along with taking care of the allocation request, disables conservative GCs. GCs are kept disabled until the constructors of the mixin's inherited classes have run and the mixin itself is in a well-formed state to re-enable GCs. Arrange for that re-enabling by way of a private field to an empty type with a constructor that takes care of the underlying details. All of this is hidden from direct view to the Blink code, still only requiring that GC mixin instances declare themselves as such by using the USING_GARBAGE_COLLECTED_MIXIN(Type) macro. R=haraken BUG=456823 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=191501

Patch Set 1 #

Total comments: 3

Patch Set 2 : fix msvc compilation #

Patch Set 3 : add notion of nested mixin decls #

Patch Set 4 : non-oilpan compile fix #

Patch Set 5 : track mixin nesting levels #

Patch Set 6 : Switch to a static const for mixinLevels #

Total comments: 3

Patch Set 7 : Add test + comments; rebased #

Patch Set 8 : Add GC mixin test #

Unified diffs Side-by-side diffs Delta from patch set Stats (+306 lines, -90 lines) Patch
M Source/core/css/CSSValue.h View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/dom/Node.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/dom/shadow/ShadowRoot.cpp View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M Source/core/frame/DeviceSingleWindowEventController.h View 2 chunks +2 lines, -3 lines 0 comments Download
M Source/core/html/HTMLObjectElement.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/html/canvas/WebGL2RenderingContextBase.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/core/html/canvas/WebGLRenderingContextBase.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/core/html/shadow/MediaControlElementTypes.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGAElement.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGImageElement.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGSVGElement.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGTextPathElement.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/svg/SVGUseElement.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M Source/core/workers/SharedWorker.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/heap/Heap.h View 1 2 3 4 5 6 3 chunks +2 lines, -64 lines 0 comments Download
M Source/platform/heap/HeapTest.cpp View 1 2 3 4 5 6 7 2 chunks +114 lines, -1 line 0 comments Download
M Source/platform/heap/ThreadState.h View 1 2 3 4 5 6 2 chunks +16 lines, -8 lines 0 comments Download
M Source/platform/heap/Visitor.h View 1 2 3 4 5 6 7 2 chunks +156 lines, -4 lines 0 comments Download

Messages

Total messages: 31 (4 generated)
sof
Please take a look. I reckon this is ready, but I wish there was a ...
5 years, 9 months ago (2015-03-04 22:27:39 UTC) #2
haraken
> Another, more effective, attempt at disallowing conservative GCs from > striking while constructing a ...
5 years, 9 months ago (2015-03-05 02:20:19 UTC) #4
sof
On 2015/03/05 02:20:19, haraken wrote: > > Another, more effective, attempt at disallowing conservative GCs ...
5 years, 9 months ago (2015-03-05 06:28:42 UTC) #5
sof
https://codereview.chromium.org/980653002/diff/1/Source/core/frame/DeviceSingleWindowEventController.h File Source/core/frame/DeviceSingleWindowEventController.h (left): https://codereview.chromium.org/980653002/diff/1/Source/core/frame/DeviceSingleWindowEventController.h#oldcode18 Source/core/frame/DeviceSingleWindowEventController.h:18: WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(DeviceSingleWindowEventController); On 2015/03/05 02:20:19, haraken wrote: > > Why ...
5 years, 9 months ago (2015-03-05 07:14:59 UTC) #6
sof
Nested mixins are now dealt with in a manner I'm reasonably happy with.
5 years, 9 months ago (2015-03-05 15:24:58 UTC) #7
haraken
> > > Another, more effective, attempt at disallowing conservative GCs from > > > ...
5 years, 9 months ago (2015-03-05 15:31:52 UTC) #8
sof
On 2015/03/05 15:31:52, haraken wrote: > > > > Another, more effective, attempt at disallowing ...
5 years, 9 months ago (2015-03-05 15:56:44 UTC) #9
haraken
On 2015/03/05 15:56:44, sof wrote: > On 2015/03/05 15:31:52, haraken wrote: > > > > ...
5 years, 9 months ago (2015-03-05 16:34:29 UTC) #10
sof
On 2015/03/05 16:34:29, haraken wrote: > On 2015/03/05 15:56:44, sof wrote: > > On 2015/03/05 ...
5 years, 9 months ago (2015-03-05 16:46:47 UTC) #11
sof
On 2015/03/05 16:46:47, sof wrote: ... > > > > > > > > > ...
5 years, 9 months ago (2015-03-05 16:55:26 UTC) #12
haraken
On 2015/03/05 16:55:26, sof wrote: > On 2015/03/05 16:46:47, sof wrote: > ... > > ...
5 years, 9 months ago (2015-03-06 04:28:58 UTC) #13
sof
On 2015/03/06 04:28:58, haraken wrote: > On 2015/03/05 16:55:26, sof wrote: > > On 2015/03/05 ...
5 years, 9 months ago (2015-03-06 06:14:59 UTC) #14
haraken
On 2015/03/06 06:14:59, sof wrote: > On 2015/03/06 04:28:58, haraken wrote: > > On 2015/03/05 ...
5 years, 9 months ago (2015-03-06 06:20:37 UTC) #15
sof
On 2015/03/06 06:20:37, haraken wrote: > On 2015/03/06 06:14:59, sof wrote: > > On 2015/03/06 ...
5 years, 9 months ago (2015-03-06 06:25:31 UTC) #16
haraken
> Mixin allocations can be nested, right? Doesn't this work? class A : public GarbageCollected<A>, ...
5 years, 9 months ago (2015-03-06 06:34:31 UTC) #17
sof
On 2015/03/06 06:34:31, haraken wrote: > > Mixin allocations can be nested, right? > > ...
5 years, 9 months ago (2015-03-06 06:43:04 UTC) #18
haraken
On 2015/03/06 06:43:04, sof wrote: > On 2015/03/06 06:34:31, haraken wrote: > > > Mixin ...
5 years, 9 months ago (2015-03-06 06:51:41 UTC) #19
sof
On 2015/03/06 06:51:41, haraken wrote: > On 2015/03/06 06:43:04, sof wrote: > > On 2015/03/06 ...
5 years, 9 months ago (2015-03-06 07:04:08 UTC) #20
haraken
LGTM. Although I want to avoid introducing another Oilpan syntax, let's land this CL since ...
5 years, 9 months ago (2015-03-06 13:01:01 UTC) #21
sof
This CL cannot move forward until the GC plugin change in http://crbug.com/443854 has been rolled ...
5 years, 9 months ago (2015-03-06 15:48:23 UTC) #22
sof
https://codereview.chromium.org/980653002/diff/20002/Source/platform/heap/Visitor.h File Source/platform/heap/Visitor.h (right): https://codereview.chromium.org/980653002/diff/20002/Source/platform/heap/Visitor.h#newcode980 Source/platform/heap/Visitor.h:980: #define DEFINE_GARBAGE_COLLECTED_MIXIN_NESTED(TYPE, SUBTYPE) \ On 2015/03/06 13:01:01, haraken wrote: ...
5 years, 9 months ago (2015-03-06 16:11:06 UTC) #23
sof
On 2015/03/06 04:28:58, haraken wrote: > ... > > It would be great if we ...
5 years, 9 months ago (2015-03-07 08:33:11 UTC) #24
haraken
On 2015/03/07 08:33:11, sof wrote: > On 2015/03/06 04:28:58, haraken wrote: > > > ...
5 years, 9 months ago (2015-03-07 09:19:15 UTC) #25
sof
On 2015/03/07 09:19:15, haraken wrote: > On 2015/03/07 08:33:11, sof wrote: > > On 2015/03/06 ...
5 years, 9 months ago (2015-03-07 21:52:24 UTC) #26
haraken
On 2015/03/07 21:52:24, sof wrote: > On 2015/03/07 09:19:15, haraken wrote: > > On 2015/03/07 ...
5 years, 9 months ago (2015-03-08 02:13:59 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/980653002/130001
5 years, 9 months ago (2015-03-08 22:18:13 UTC) #30
commit-bot: I haz the power
5 years, 9 months ago (2015-03-08 23:33:54 UTC) #31
Message was sent while issue was closed.
Committed patchset #8 (id:130001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=191501

Powered by Google App Engine
This is Rietveld 408576698