Commit Graph

50 Commits

Author SHA1 Message Date
Ryan Macnak e3a9d70591 [vm, service] Remove unsafe querying across threads during Isolate::PrintJSON.
Note this would be unsafe even if under a safepoint operation because not all of the queried threads participate in safepoints.

TEST=tsan
Bug: https://github.com/dart-lang/sdk/issues/44304
Bug: https://github.com/dart-lang/sdk/issues/44385
Change-Id: I8156e8c6049165e5c53b66c3391f3e8a496ddaaf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175000
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-12-08 00:36:38 +00:00
Ryan Macnak edf0de533c [observatory] Progress on making heap snapshot analysis a public library.
- Clean up loading flow.
 - Replace manual iterators with generator functions.
 - Produce clearer messages when running out of memory.
 - Make various implementation functions and constants private.

Change-Id: I9e016b37552e3110baf00f3052b131dc0d79b748
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132027
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-01-17 18:40:14 +00:00
Alexander Aprelev 9e636b5ab4 Reland "[vm/service] Introduce IsolateGroup entity to vm service api.""
This reverts commit f020ce5d23 with patchset 1 having original revert, rest - fixes
for calling destructors on unlinked IntrusiveDL elements and for assuming int is int64(which breaks down on simarm, ia32 bots).

Fixes https://github.com/dart-lang/sdk/issues/38926

Issue https://github.com/dart-lang/sdk/issues/36097

Change-Id: I867526c7de3786806670d1f43dbff07228f80028
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121870
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-10-17 03:45:41 +00:00
Alexander Aprelev f020ce5d23 Revert "[vm/service] Introduce IsolateGroup entity to vm service api."
This reverts commit f219e5152d as it breaks few bots.

Change-Id: I8d1d42d1ac662c2dba9ea9270c7a6cdc4f0621bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121886
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-10-16 19:45:23 +00:00
Alexander Aprelev f219e5152d [vm/service] Introduce IsolateGroup entity to vm service api.
This is to enable vm clients to ask how much memory is consumed by isolate group.

Issue https://github.com/dart-lang/sdk/issues/36097

Change-Id: I4f1c499bf02c20b80e9802d8ad60e7ea65cfb375
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119724
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-16 18:05:06 +00:00
Ryan Macnak 6e987b6eb5 [vm, service] Add requestHeapSnapshot.
This replaces _requestHeapSnapshot and _getObjectByAddresses, which relied on the invalid assumption that objects don't move and the heap hasn't mutated since the initial snapshot.

Updates Observatory to the new format. Adds treemap visualization of the dominator tree. Adds the ability to save and load heap snapshots to files. Removes analysis grouping references by source and target class. Removes ability to navigate from a pixel in the fragmentation view to inspector. Removes ability to query the top retaining instance from an ordinary class browser.

Change-Id: Ia7781c05d43bf3ec149f8b4ecab803b37c3ee981
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112181
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-08-19 19:31:42 +00:00
Ryan Macnak 662ff7f112 [vm] Remove TokenStream, TokenValue, CompilerStats.
(CompilerStats timers have been replaced with the timeline events.)

Change-Id: Iddcb752c085de9762eb802371b6d2905fa608a76
Reviewed-on: https://dart-review.googlesource.com/c/79086
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-10-10 21:39:45 +00:00
Carlo Bernaschina 0e32851cfd Add Timeline Dashboard hidden page in Observatory
- Refactoring of the TimelinePage in order to remove the
  dependencies from the Service objects.
- Implemented TimelineRepository to abstract the communication layer
- Structured new TimelineDashboardPage with simplified UI and event
  filtering

The VM returns lists of events which are forwarded to Catapult.
Some events are white-listed for the common user.
Due to limitations in the way the events are generated the only way to
attach the white-list flag to the events is by adding an extra argument.
By setting the hash of timeline.html to #basic we inform JavaScript that
we require the activation of the filter which forwards just the events
white-listed to Captapult, while preserving all the others during
dumping operations.

See https://docs.google.com/document/d/1sDKI3ROYM1ORaKhelt063ayfveF_6WC8aq9MiqHjYBs/edit#

Change-Id: I38435d8d32f37305ce3c366daf55f82e8287959d
Reviewed-on: https://dart-review.googlesource.com/3346
Commit-Queue: Carlo Bernaschina <cbernaschina@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-07 20:38:19 +00:00
Carlo Bernaschina 0cbbeeb288 Restore "Add current rss and embedder name to Observatory"
Made benchmark_test.cc independent from Service by using the
implementation of MaxRSS from bin::Process

Related https://github.com/dart-lang/sdk/commit/ce736d3ef009bf334a92d5b7d354fc0b04805b4f

R=bkonyi@google.com
TBR=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2994223002 .
2017-08-14 17:02:30 -07:00
Carlo Bernaschina 2f5a59e658 Revert "Add current rss and embedder name to Observatory"
This reverts commit ce736d3ef0.

TBR=zra@google.com

Review-Url: https://codereview.chromium.org/2999933002 .
2017-08-14 15:45:13 -07:00
Carlo Bernaschina ce736d3ef0 Add current rss and embedder name to Observatory
Moved the responsibility to provide MaxRSS and CurrentRSS from the VM to
the embedder.

The embedder can opt-it by setting a Dart_GetEmbedderInformation
callback using the public Dart_SetEmbedderInformationCallback API.

The implementation of the Dart_GetEmbedderInformation should mandatory
fill the version field and the ones it is able to fill.
The name field must reference a constant C style string, it will not be
freed by the VM code.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2996803002 .
2017-08-14 15:22:46 -07:00
Carlo Bernaschina df8bf384eb Introduce external services registration
A new RPC is introduced `_registerService` which allow clients to
register new services that are accessible from all the other clients.

Each registered endpoint is identified by 3 strings:

 - `service`
   a non empty string which identifies the provided service
   (e.g. `HotReload`, `OpenFile`)
 - `alias`
   an alias for that particular endpoint used by clients to identify it
   (e.g. `Flutter`, `IntelliJ`)
 - `method` __generated__
   the RPC method that should be invoked from a client to request it

A new _stream_ `_Service` is introduce, and two related events:

 - `ServiceRegistered`
   which is triggered when a new client is registered.
   All the related information (`service`, `alias`, `method`) are sent.

 - `ServiceUnregistered`
   which is triggered when a client, which previously registered a
   service, disconnects.
   Just `service` and `method` are sent.

Related https://github.com/dart-lang/sdk/issues/30023

R=asiva@google.com, bkonyi@google.com

Review-Url: https://codereview.chromium.org/2980733003 .
2017-07-13 18:18:51 -07:00
Carlo Bernaschina 0d86f5f3c5 Added Editor stream and sendObjectToEditor RPC into Service Protocol
Related=https://github.com/dart-lang/sdk/issues/30023

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2962593002 .
2017-06-29 10:08:12 -07:00
Ryan Macnak 8d6aca7085 Add Observatory support for UnlinkedCall, SingleTargetCache and SubtypeTestCache.
Apply dartfmt to the touched files.

R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2742333007 .
2017-03-16 12:34:31 -07:00
Ben Konyi 5bf4fcee29 Added thread.dart and zone.dart to the observatory sources to resolve build issues.
BUG=
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2583313002 .
2016-12-19 12:36:36 -08:00
Ben Konyi f1de9b09d7 Revert "Added ability to request zone memory information for all isolates through the VM service and added tests."
This reverts commit 9622f1a2df.

BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2588083002 .
2016-12-19 10:31:29 -08:00
Ben Konyi 9622f1a2df Added ability to request zone memory information for all isolates through the VM service and added tests.
BUG=
R=johnmccutchan@google.com, zra@google.com

Review-Url: https://codereview.chromium.org/2574643003 .
2016-12-19 10:08:19 -08:00
Carlo Bernaschina cfefe97495 Converted Observatory metrics-page element
Major restyle

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2303173002 .
2016-09-06 09:56:16 -07:00
Carlo Bernaschina 90c50c52f2 Converted Observatory vm-view && isolate-view elements
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2304463002 .
2016-09-01 10:46:36 -07:00
Carlo Bernaschina 1341e94321 Converted Observatory class-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2294073003 .
2016-08-31 17:03:38 -07:00
Carlo Bernaschina bf7d220741 Converted Observatory instance-view element
R=turnidge@google.com

Review URL: https://codereview.chromium.org/2291233002 .
2016-08-30 14:53:24 -07:00
Carlo Bernaschina 19e9627ea0 Converted Observatory library-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2289953003 .
2016-08-30 13:58:15 -07:00
Carlo Bernaschina 0083d2610e Converted Observatory object-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2294473002 .
2016-08-30 13:39:12 -07:00
Carlo Bernaschina b63546ac57 Converted Observatory function-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2291823002 .
2016-08-29 16:39:38 -07:00
Carlo Bernaschina a326a56eb1 Converted Observatory object-pool-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2283863003 .
2016-08-29 11:14:18 -07:00
Carlo Bernaschina 8e7725a8b4 Converted Observatory field-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2287793002 .
2016-08-29 10:47:05 -07:00
Carlo Bernaschina 5e1b224ef8 Converted Observatory megamorphiccache-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2279203003 .
2016-08-26 15:22:51 -07:00
Carlo Bernaschina 12e8f86cf6 Converted Observatory persistent-hangles-page element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2273203004 .
2016-08-26 10:15:34 -07:00
Carlo Bernaschina 4f96ad0440 Converted Observatory objectstore-view element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2274013006 .
2016-08-26 09:44:24 -07:00
Carlo Bernaschina c39868c8a5 Converted script-inset, source-inset and eval-box elements
Testing postponed

R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2277543004 .
2016-08-26 09:27:56 -07:00
Carlo Bernaschina 3d415d5ac0 Converted Observatory icdata-view element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2271083002 .
2016-08-24 09:33:37 -07:00
Carlo Bernaschina fc6954171e Converted Observatory context-view element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2270013002 .
2016-08-23 13:16:23 -07:00
Carlo Bernaschina 547d71add7 Converted Observatory heap-snapshot element
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2266343002 .
2016-08-23 12:55:43 -07:00
Carlo Bernaschina c6fdc01b91 Converted Observatory ports-page element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2267863002 .
2016-08-22 09:47:22 -07:00
Carlo Bernaschina d272f763d8 Converted Observatory object-common element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2265513003 .
2016-08-19 17:07:07 -07:00
Carlo Bernaschina 0b4fe4825f Removed Instructions object from Observatory models
Review URL: https://codereview.chromium.org/2252273002 .
2016-08-17 18:51:18 -07:00
Carlo Bernaschina b0582b3bb7 Converted Observatory heap-profile element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2255613002 .
2016-08-17 15:51:38 -07:00
Carlo Bernaschina a1edad30ea Converted Observatory refs elements
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2244433003 .
2016-08-17 12:31:38 -07:00
Carlo Bernaschina 9ce171ac33 Converted Observatory cpu-profile element
Fixes https://github.com/dart-lang/sdk/issues/26043

R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2204563003 .
2016-08-09 14:34:00 -07:00
Carlo Bernaschina a5443086a0 Converted Observatory isolate-summary element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2217723004 .
2016-08-09 13:15:21 -07:00
Carlo Bernaschina 3c786269cb Converted Observatory class-tree element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2212253002 .
2016-08-05 12:48:07 -07:00
Carlo Bernaschina ba0f803fbe Centralized event streams
R=turnidge@google.com

Review URL: https://codereview.chromium.org/2211603002 .
2016-08-04 17:11:16 -07:00
Carlo Bernaschina 60afd8bddd Converted observatory flag-list element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2213613002 .
2016-08-03 19:53:05 -07:00
Carlo Bernaschina e76ad0353b Converted Observatory code-ref function-ref element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2194383002 .
2016-08-01 17:23:21 -07:00
Carlo Bernaschina 445180ad41 Converted Observatory source-link & script-ref elements
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2180553002 .
2016-08-01 16:29:49 -07:00
Carlo Bernaschina cb468c2c47 Converted Observatory vm-connect element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2180803002 .
2016-07-27 13:43:38 -07:00
Carlo Bernaschina 61e34b244b Converted Observatory nav-notify element
Still writing tests.

R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2167053002 .
2016-07-24 12:54:04 -07:00
Carlo Bernaschina a66cee26bd Converted Observatory class-nav-menu element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2165913004 .
2016-07-22 17:22:50 -07:00
Carlo Bernaschina e71c000ce4 Converted Observatory vm-nav-menu element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2170723002 .
2016-07-22 15:08:05 -07:00
Carlo Bernaschina 3ccc1f337f Converted Observatory isolate-nav-menu element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2168463004 .
2016-07-22 14:27:34 -07:00