Fix 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= Review URL: https://codereview.chromium.org/1270493002 Cr-Commit-Position: refs/heads/master@{#29937}
Showing
Please
register
or
sign in
to comment