Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the correct user-space marker for SystemTap node_gc_stop probe #20152

Closed
wants to merge 1 commit into from

Conversation

wcohen
Copy link
Contributor

@wcohen wcohen commented Apr 19, 2018

The process("node").mark("gc__stop") is actually
process("node").mark("gc__done"). Use the proper name so that a
developer can use SystemTap to determine the duration of garbage
collection.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines

The process("node").mark("gc__stop") is actually
process("node").mark("gc__done").  Use the proper name so that a
developer can use SystemTap to determine the duration of garbage
collection.
@nodejs-github-bot nodejs-github-bot added the c++ Issues and PRs that require attention from people who are familiar with C++. label Apr 19, 2018
@addaleax
Copy link
Member

Not being familiar with SystemTap itself -- Is there some kind of reference that determines what the "proper" names are, or is this just convention? Is this a breaking change?

Also, just a tiny thing: It would be great if you could alignt the commit message with our guidelines for that, but if you prefer not to or don't know how to do that, we can also do that when merging the PR.

Copy link
Member

@bnoordhuis bnoordhuis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not being familiar with SystemTap itself -- Is there some kind of reference that determines what the "proper" names are, or is this just convention? Is this a breaking change?

The event name comes from Node.js; node.stp was simply using the wrong one.

That also says something about how much that file is used... it's never been 'not broken' in the five years since it was introduced.

@BridgeAR BridgeAR added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Apr 23, 2018
@BridgeAR
Copy link
Member

Can we test for this in any way?

@bnoordhuis
Copy link
Member

Not easily, I think. Requires that systemtap is installed on the CI machines and that configure is told where to look for header files.

@richardlau
Copy link
Member

Can we test for this in any way?

Perhaps a name consistency check between src/node_provider.d and src/node.stp?

@wcohen
Copy link
Contributor Author

wcohen commented Apr 23, 2018

The check between src/node_provider.d and src/node.stp wouldn't catch the case of both dtrace and systemtap probes being broken or missing if existing probe points are changed or new probe points are added to the code. For example this consistency test wouldn't catch probe systemtap/dtrace points not being in the code like commit d75fecf

@richardlau
Copy link
Member

Fair enough, but it would have caught the issue being addressed by this PR where they are inconsistent.

@mmarchini
Copy link
Contributor

In the Diagnostics WG we're talking about adding tests for external profilers (like eBPF, DTrace and Linux perf). The requirements to test system probes are very similar, and we might be able to add some tests for this as well. I plan to start looking into that in the next couple of weeks.

@BridgeAR
Copy link
Member

So the question right now is: shall we wait for a test or land this PR as it is? I guess it is fine to land it as is?

@bnoordhuis
Copy link
Member

Yep, it's good to go.

@richardlau
Copy link
Member

I'm assuming there's no meaningful CI to run on this?

@mmarchini
Copy link
Contributor

@richardlau Don't think so, there are no tests or linters reaching this file. I was actually about to land this.

@mmarchini
Copy link
Contributor

mmarchini commented Apr 25, 2018

Landed in 94e0e2c, thanks for the contribution! 🎉🎉🎉

@mmarchini mmarchini closed this Apr 25, 2018
mmarchini pushed a commit that referenced this pull request Apr 25, 2018
The process("node").mark("gc__stop") is actually
process("node").mark("gc__done"). Use the proper name so that a
developer can use SystemTap to determine the duration of garbage
collection.

PR-URL: #20152
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Matheus Marchini <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
MylesBorins pushed a commit that referenced this pull request May 4, 2018
The process("node").mark("gc__stop") is actually
process("node").mark("gc__done"). Use the proper name so that a
developer can use SystemTap to determine the duration of garbage
collection.

PR-URL: #20152
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Matheus Marchini <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
@MylesBorins MylesBorins mentioned this pull request May 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. c++ Issues and PRs that require attention from people who are familiar with C++.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants