Skip to content

tracing: etw/perf/lttng/etc multi-isolate support #18074

Description

@bnoordhuis

Continuing from nodejs/help#1031: src/node_counters.cc and its ilk need to have their initialization split out into a per-isolate and per-context step for embedding to work with them. Some thoughts:

  1. node.js won't know if initialization already happened if the isolate is created by the embedder, unless extra bookkeeping is added. Could hang off MultiIsolatePlatform::RegisterIsolate() - or could it?

  2. the tracing code itself isn't multi-isolate ready in the slightest, it's all globals that need to move to IsolateData and Environment

  3. some tracing flavors have (possibly inevitable) process-global state that should be protected by a uv_once_t or node::Mutex.

Activity

  1. added
    help wantedIssues that need assistance from volunteers or PRs that need help to proceed.
    trace_eventsIssues and PRs related to trace events from V8, Node.js core, and user code.
    embeddingIssues and PRs related to embedding Node.js in another project.
    on Jan 10, 2018
  2. smeshch commented on Jan 25, 2018

    @smeshch

    I think this line and next one (which set callbacks to isolate) should not depends on Environment (embedder can create one isolate and set it for every Environment, that will be created). IMHO, adding callbacks should be somewhere in NodePlatform class, when it registers isolate.

  3. Trott commented on Aug 2, 2019

    @Trott
    Member

    @bnoordhuis This should remain open, yes? If so, is there someone particularly well-suited to try to move it forward? @nodejs/embedders maybe?

  4. bnoordhuis commented on Aug 3, 2019

    @bnoordhuis
    MemberAuthor

    Yes, it's still an issue. I don't have suggestions for volunteers but they're more than welcome.

  5. bnoordhuis commented on Dec 2, 2022

    @bnoordhuis
    MemberAuthor

    I think this issue has become obsolete after the removal of dtrace and etw in #43652 (and lttng and perfctr back in 2018.) I'll go ahead and close it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    embeddingIssues and PRs related to embedding Node.js in another project.help wantedIssues that need assistance from volunteers or PRs that need help to proceed.trace_eventsIssues and PRs related to trace events from V8, Node.js core, and user code.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions