DescriptionOilpan: handle thread-local weak tracing slightly better.
The implementation of marking is marking-thread centric, recording a
thread stack limit that the tracing through the object graph cannot
exceed. If it does, the implementation will use the explicit mark
stack instead of trying to eagerly trace the object, if unmarked.
Tracing will in the general case also happen on a per-thread basis,
when handling the weak pointer callbacks after the initial marking
phase has completed. Using the marking thread's stack limit to determine
eagerness or not of a trace call when that weak tracing runs doesn't
make much sense.
To address, eager tracing is not enabled whilst processing the
per-thread weak pointer callbacks. As the amount of tracing is rather
moderate for this stage, there are no performance concerns with
disabling this optimization.
R=haraken
BUG=420515
TEST=HeapTest.ThreadedStrongification
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=194970
Patch Set 1 #Patch Set 2 : record marking thread owner over StackFrameDepth #Patch Set 3 : disable eager tracing for weak callback tracing #Patch Set 4 : compile fix #
Total comments: 4
Patch Set 5 : rename some methods #
Messages
Total messages: 15 (4 generated)
|