DescriptionFix the failure when enabling v8 profiler or vtune profiler in chromium.
When enabling the v8 profiler (Using the following command parameters: --js-flags=--prof)
or vtune profiling in chromium. it will break. This failure is introduced by this CL:
https://codereview.chromium.org/1218863002.
The reason is that V8 will enable the JITted code logging if --prof is set for V8. And under
this condition, the function Logger::LogCodeObjects() will be invoked and it will trigger a
mark-compact GC when deserializing the snapshot. This GC will use MemoryReducer to post a
delay task by invoking V8Platform::CallDelayedOnForegroundThread() function. But at this point
V8 isolation is still under initialization and the PerIsolationData of this isolation has not
been created. (isolation_holder.cc:39~40 line). This leads to V8Platform::CallDelayedOnForegroundThread()
failure because of segment fault.
According to my understanding, I proposed the following fix. If the heap deserialization has not
be completed, it does not post the delay task for next GC.
BUG=v8:4352
Committed: https://crrev.com/8ae236c0c4bcc7218f2f2dcf909c1410b9ce065e
Cr-Commit-Position: refs/heads/master@{#29937}
Patch Set 1 #
Total comments: 1
Patch Set 2 : #Messages
Total messages: 9 (2 generated)
|