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

[10.x] deps: V8: backport 4 CPU profiler commits from upstream #22028

Closed

Conversation

psmarshall
Copy link
Contributor

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines

@ofrobots

[cpu-profiler] Add a new profiling mode with a more detailed call tree.
https://chromium.googlesource.com/v8/v8.git/+/ecae80cdb350dde1e654c531b56f5b6c44dc8c77

[cpu-profiler] Reuse free slots in code_entries_
https://chromium.googlesource.com/v8/v8.git/+/3e1126bf15e62c433c4e9cb21316d182f691c63a

[cpu-profiler] Only store deopt inline frames for functions that need it
https://chromium.googlesource.com/v8/v8.git/+/0bfcbdd4726920755e51dab28c18ab93e050819b

[cpu-profiler] Use instruction start as the key for the CodeMap
https://chromium.googlesource.com/v8/v8.git/+/ba752ea4c50713dff1e94f45a79db3ba968a8d66

@nodejs-github-bot nodejs-github-bot added the v8 engine Issues and PRs related to the V8 dependency. label Jul 30, 2018
@psmarshall
Copy link
Contributor Author

I'd like to land this with the V8 update (to 6.8) on 10.x

@ofrobots
Copy link
Contributor

ofrobots commented Aug 1, 2018

@ofrobots
Copy link
Contributor

ofrobots commented Aug 1, 2018

v8_embedder_string in common.gypi should be bumped (by 1).

@psmarshall psmarshall force-pushed the backport-cpu-profiler-to-v10.x branch from c5be937 to 406d2f6 Compare August 3, 2018 11:21
@psmarshall
Copy link
Contributor Author

Thanks, I've bumped v8_embedder_string

@psmarshall psmarshall changed the base branch from master to v10.x-staging August 3, 2018 11:30
@psmarshall psmarshall force-pushed the backport-cpu-profiler-to-v10.x branch from 406d2f6 to 4445b31 Compare August 16, 2018 09:35
@psmarshall
Copy link
Contributor Author

@ofrobots I've rebased now that V8 6.8 has landed on v10.x-staging, so we should be OK to land this so that it can be in the 10.10 release

Copy link
Member

@BridgeAR BridgeAR left a comment

Choose a reason for hiding this comment

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

RSLGTM

Copy link
Member

@bmeurer bmeurer left a comment

Choose a reason for hiding this comment

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

LGTM (rubber-stamped)

@targos
Copy link
Member

targos commented Aug 29, 2018

Any reason not to land this on the master branch?

@psmarshall
Copy link
Contributor Author

@targos I don't see why not. I'll retarget it to master

@psmarshall psmarshall changed the base branch from v10.x-staging to master August 29, 2018 14:14
@psmarshall psmarshall force-pushed the backport-cpu-profiler-to-v10.x branch from fe2ada8 to 95072d7 Compare August 29, 2018 14:15
@targos
Copy link
Member

targos commented Aug 29, 2018

@targos
Copy link
Member

targos commented Sep 3, 2018

Landed in 8ac662e

@targos targos closed this Sep 3, 2018
targos pushed a commit that referenced this pull request Sep 3, 2018
[cpu-profiler] Add a new profiling mode with a more detailed call tree.
https://chromium.googlesource.com/v8/v8.git/+/ecae80cdb350dde1e654c531b56f5b6c44dc8c77

[cpu-profiler] Reuse free slots in code_entries_
https://chromium.googlesource.com/v8/v8.git/+/3e1126bf15e62c433c4e9cb21316d182f691c63a

[cpu-profiler] Only store deopt inline frames for functions that need it
https://chromium.googlesource.com/v8/v8.git/+/0bfcbdd4726920755e51dab28c18ab93e050819b

[cpu-profiler] Use instruction start as the key for the CodeMap
https://chromium.googlesource.com/v8/v8.git/+/ba752ea4c50713dff1e94f45a79db3ba968a8d66

PR-URL: #22028
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com>
@targos
Copy link
Member

targos commented Sep 3, 2018

It turns out this change breaks V8 tests:

https://ci.nodejs.org/view/All/job/node-test-commit-v8-linux/nodes=ubuntu1604-intel-64,v8test=v8test/1651/console

14:15:07 ../../test/cctest/test-log.cc:741:59: error: non-virtual member function marked 'override' hides virtual member function
14:15:07     void CodeMoveEvent(i::AbstractCode* from, Address to) override {}
14:15:07                                                           ^
14:15:07 ../../src/code-events.h:86:16: note: hidden overloaded virtual function 'v8::internal::CodeEventListener::CodeMoveEvent' declared here: type mismatch at 2nd parameter ('v8::internal::AbstractCode *' vs 'v8::internal::Address' (aka 'unsigned long'))
14:15:07   virtual void CodeMoveEvent(AbstractCode* from, AbstractCode* to) = 0;
14:15:07                ^
14:15:07 ../../test/cctest/test-log.cc:750:5: error: variable type 'class (anonymous class at ../../test/cctest/test-log.cc:739:3)' is an abstract class
14:15:07   } code_event_logger;
14:15:07     ^
14:15:07 ../../src/code-events.h:86:16: note: unimplemented pure virtual method 'CodeMoveEvent' in ''
14:15:07   virtual void CodeMoveEvent(AbstractCode* from, AbstractCode* to) = 0;
14:15:07                ^
14:15:07 2 errors generated.

Edit: fix at #22677

targos added a commit to targos/node that referenced this pull request Sep 3, 2018
Fixes a regression introduced in a V8 backport PR.
A small change in cctest/test-log.cc was forgotten.

Refs: nodejs#22028
Refs: v8/v8@ba752ea
addaleax pushed a commit that referenced this pull request Sep 3, 2018
[cpu-profiler] Add a new profiling mode with a more detailed call tree.
https://chromium.googlesource.com/v8/v8.git/+/ecae80cdb350dde1e654c531b56f5b6c44dc8c77

[cpu-profiler] Reuse free slots in code_entries_
https://chromium.googlesource.com/v8/v8.git/+/3e1126bf15e62c433c4e9cb21316d182f691c63a

[cpu-profiler] Only store deopt inline frames for functions that need it
https://chromium.googlesource.com/v8/v8.git/+/0bfcbdd4726920755e51dab28c18ab93e050819b

[cpu-profiler] Use instruction start as the key for the CodeMap
https://chromium.googlesource.com/v8/v8.git/+/ba752ea4c50713dff1e94f45a79db3ba968a8d66

PR-URL: #22028
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com>
targos added a commit to targos/node that referenced this pull request Sep 4, 2018
Fixes a regression introduced in a V8 backport PR.
A small change in cctest/test-log.cc was forgotten.

Refs: nodejs#22028
Refs: v8/v8@ba752ea

PR-URL: nodejs#22677
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
@psmarshall
Copy link
Contributor Author

Thanks for fixing that. I think I somehow missed the changes to test-log.cc when I was fixing conflicts - the fix to the test should have been included in this one:

[cpu-profiler] Use instruction start as the key for the CodeMap
https://chromium.googlesource.com/v8/v8.git/+/ba752ea4c50713dff1e94f45a79db3ba968a8d66

targos pushed a commit that referenced this pull request Sep 5, 2018
[cpu-profiler] Add a new profiling mode with a more detailed call tree.
https://chromium.googlesource.com/v8/v8.git/+/ecae80cdb350dde1e654c531b56f5b6c44dc8c77

[cpu-profiler] Reuse free slots in code_entries_
https://chromium.googlesource.com/v8/v8.git/+/3e1126bf15e62c433c4e9cb21316d182f691c63a

[cpu-profiler] Only store deopt inline frames for functions that need it
https://chromium.googlesource.com/v8/v8.git/+/0bfcbdd4726920755e51dab28c18ab93e050819b

[cpu-profiler] Use instruction start as the key for the CodeMap
https://chromium.googlesource.com/v8/v8.git/+/ba752ea4c50713dff1e94f45a79db3ba968a8d66

PR-URL: #22028
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com>
targos added a commit that referenced this pull request Sep 5, 2018
Fixes a regression introduced in a V8 backport PR.
A small change in cctest/test-log.cc was forgotten.

Refs: #22028
Refs: v8/v8@ba752ea

PR-URL: #22677
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
targos pushed a commit that referenced this pull request Sep 6, 2018
[cpu-profiler] Add a new profiling mode with a more detailed call tree.
https://chromium.googlesource.com/v8/v8.git/+/ecae80cdb350dde1e654c531b56f5b6c44dc8c77

[cpu-profiler] Reuse free slots in code_entries_
https://chromium.googlesource.com/v8/v8.git/+/3e1126bf15e62c433c4e9cb21316d182f691c63a

[cpu-profiler] Only store deopt inline frames for functions that need it
https://chromium.googlesource.com/v8/v8.git/+/0bfcbdd4726920755e51dab28c18ab93e050819b

[cpu-profiler] Use instruction start as the key for the CodeMap
https://chromium.googlesource.com/v8/v8.git/+/ba752ea4c50713dff1e94f45a79db3ba968a8d66

PR-URL: #22028
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com>
targos added a commit that referenced this pull request Sep 6, 2018
Fixes a regression introduced in a V8 backport PR.
A small change in cctest/test-log.cc was forgotten.

Refs: #22028
Refs: v8/v8@ba752ea

PR-URL: #22677
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants