• Corentin Pescheloche's avatar
    Reland "[profiler] Surface VM & Embedder State" · e155881f
    Corentin Pescheloche authored
    This is a reland of 2d087f23
    
    The changes are :
    * Fix redundant reinterpret_cast in test file for MSVC failure
    https://crbug.com/v8/12476
    * Fix flaky test
    https://crbug.com/v8/12475
    If a sample is captured during a GC, no embedder context is obtained
    defaulting to EMPTY. This is the expected behavior, made it in clear
    in implementation and in test.
    * Synchronized the embedder context filter behavior with existing
    native context filter.
    
    Original change's description:
    
    > Add APIs to surface VMState and new EmbedderState to CpuProfile samples.
    >
    > EmbedderState:
    > * An EmbedderState is defined as a value uint8_t and a v8::context used
    > for filtering.
    > * EmbedderStates are stack allocated by the embedder, construction and
    > destruction set/unset the state to the isolate thread local top.
    > * A v8::context is used to filter states that are added to a CpuProfile,
    > if the CpuProfile do not have a ContextFilter set or if contexts do not
    > match, state defaults to Empty.
    >
    > * v8:StateTag is already propagated all the way to a Sample, simply add
    > an API to surface it.
    >
    > VMState:
    > Change-Id: I7eed08907360b99b0ad20ddcff59c95c7076c85e
    > Bug: chromium:1263871
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3188072
    > Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
    > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
    > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#78250}
    
    Bug: chromium:1263871
    Change-Id: Ief891b05da99c695e9fb70f94ed7ebdecc6c3b7b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3320037
    Auto-Submit: Corentin Pescheloche <cpescheloche@fb.com>
    Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#78281}
    e155881f
api.cc 411 KB