• Benedikt Meurer's avatar
    [tracing] Properly trace stack guards and interrupts. · b8490293
    Benedikt Meurer authored
    Add tracing support for the %StackGuard() and %Interrupt() runtime calls
    and the individual actions performed in StackGuard::HandleInterrupts().
    This includes:
    
     - "V8.GCHandleGCRequest" (in "disabled-by-default-v8.gc") when the
       GC_REQUEST bit is set.
     - "V8.WasmGrowSharedMemory" (in "disabled-by-default-v8.wasm") when
       the GROW_SHARED_MEMORY bit is set.
     - "V8.TerminateExecution" (in "v8.execute") when the
       TERMINATE_EXECUTION bit is set.
     - "V8.GCDeoptMarkedAllocationSites" (in "disabled-by-default-v8.gc")
       when the DEOPT_MARKED_ALLOCATION_SITES bit is set.
     - "V8.InstallOptimizedFunctions" (in "disabled-by-default-v8.compile")
       when the INSTALL_CODE bit is set.
     - "V8.InvokeApiInterruptCallbacks" (in "v8.execute") when the
       API_INTERRUPT bit is set.
    
    Now we also emit a trace event "V8.MarkCandidatesForOptimization" (in
    "disabled-by-default-v8.compile") in addition to the above from the
    RuntimeProfiler when we mark candidates for optimization at the end
    of each stack check.
    
    An example of the "V8.InstallOptimizedFunctions" in action (in the
    trace viewer) can be seen here:
    
      https://i.paste.pics/094a04af035eedc0690cd4079afa28f1.png
    
    This supersedes the previously introduced --trace-interrupts CLI flag,
    which is thus removed as part of this change.
    
    Bug: v8:8598
    Change-Id: I3c3375d00b07cbe700b6912097d7264031ace802
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538116
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#60428}
    b8490293
execution.cc 23.5 KB