koda@google.com
02240f100e
Move CHA state keeping from Isolate to Thread.
...
This prepares for the Isolate/Thread split, and also enables us to remove the GrowableArray(Isolate*) interface.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1016973002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44549 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 00:29:26 +00:00
iposva@google.com
5ce27dc200
- Remove stale code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//992003002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44342 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-09 20:29:14 +00:00
iposva@google.com
91e105d8c6
- Implement some more missing pieces of the Isolate API.
...
Added:
* addOnExitListener, removeOnExitListener
* setErrorsFatal
* addOnErrorListener, removeOnErrorListener
R=asiva@google.com
Review URL: https://codereview.chromium.org//881373002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44307 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-07 01:04:19 +00:00
johnmccutchan@google.com
f2333f63a5
Add Function based profile tree
...
Profiler improvements:
- Track Functions in profile and build Function based trie
- Associate code objects with functions
- Created cpu_profile.dart library
- Major speed improvements for disassembly view
- Fix truncation of disassembly comments
- Ability to get code object ticks from disassembly view
- Inlining mini-map in disassembly view.
- Remove a bunch of unused data from profile service response
- In some cases a caller PC that is better than the PC marker is inserted into the stack trace
- Inlined functions are expanded
- Ability to clear profile
- New flag '--keep_code' which keeps deoptimized code around for use by the profiler.
General fixes:
- Fix caching in service library
- Remove pubspec.yaml before running pub get
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//928833003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44067 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-26 18:48:55 +00:00
koda@google.com
4c74036e9b
To satisfy ASAN, use stub instead of & operator to get C++ stack pointer.
...
Because of initialization order, this requires slightly different paths for VM isolate and others.
R=zra@google.com
Review URL: https://codereview.chromium.org//932983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43865 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-19 04:58:08 +00:00
johnmccutchan@google.com
1761e8eb5f
Refactor service code and service method parameters
...
- Move service isolate code into service_isolate.cc
- Reorganize service isolate code
- Unify isolate and root message handlers
- Add MethodParameter classes
- Add parameter list to service method table
- Use parameter list for getCpuProfile RPC
- Update service_test.cc to work with required isolateId parameter.
R=turnidge@google.com
Review URL: https://codereview.chromium.org//920813003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43735 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 19:10:55 +00:00
johnmccutchan@google.com
a6483aefd1
Per isolate Log with block support
...
BUG=
R=srdjan@google.com
Review URL: https://codereview.chromium.org//913503004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43604 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-09 18:54:20 +00:00
zra@google.com
1299ad1485
Allows turning on checked mode on a per-isolate basis
...
using the embedding API.
R=regis@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//883263004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43481 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 18:32:48 +00:00
johnmccutchan@google.com
172baa03ff
Service isolate rework take 2
...
Review URL: https://codereview.chromium.org//889443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
johnmccutchan@google.com
db271b0477
Revert r43217, r43215, r43208, r43207, and r43202.
...
Reverting because of some isolate spawn issues (on Windows, and pub bots).
Review URL: https://codereview.chromium.org//867113003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com
66aa470fc6
* Create vm-service isolate at Dart_Initialize time.
...
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.
performance changes:
no service isolate:
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | - 0]
always start service isolate (as a thread pool task):
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | - 0]
service does I/O (calls to Dart_LoadScript block until service is running):
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | - 0]
R=asiva@google.com
Review URL: https://codereview.chromium.org//584023004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
johnmccutchan@google.com
47664bbfd2
Move StartIsolateScope into MessageHandler::HandleMessages
...
R=iposva@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org//861813003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43021 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-20 19:13:06 +00:00
koda@google.com
c7e9e048ed
Rename Thread -> OSThread.
...
It's a collection of static utility methods for primitive operations on OS threads.
Make room in the namespace for upcoming class that will represent all the complex state of a VM thread.
Review URL: https://codereview.chromium.org//796063006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42895 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-15 02:30:07 +00:00
koda@google.com
044fc59fb6
Temporarily move vm_tag_ from BaseIsolate to Isolate.
...
This field is used by performance sensitive generated code.
Moving it out of BaseIsolate will simplify the first step towards replacing BaseIsolate with an actual thread state abstraction. It will later be migrated to that thread class (along with many other fields of Isolate).
Also remove an unused accessor from Isolate.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//798873007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42884 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-14 21:18:49 +00:00
asiva@google.com
ca1c3241c4
Fix for issue 21398.
...
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.
R=iposva@google.com
Review URL: https://codereview.chromium.org//834233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
iposva@google.com
57b4eef0d4
- Remove entirely disconnected unhandled exception handler.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//796003006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42759 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-09 22:39:42 +00:00
iposva@google.com
fd69128004
- Allow an isolate to be started in paused state.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//822803003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42576 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-30 23:52:37 +00:00
iposva@google.com
577242dbd4
- Implement Isolate.kill.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//800713002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42355 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-13 00:39:16 +00:00
fschneider@google.com
876193b31a
Make CTX allocatable by the register allocator.
...
This change makes CTX available by not caching the current
context while in Dart code. Instead the current context
is held in a local variable (:saved_current_context_var) and
is passed as argument in CTX at calls.
This also simplifies a lot of code in the debugger: As a result,
Isolate::top_context is not needed anymore since the current context
can always be extracted from a Dart frame.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//678763004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41422 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-30 15:42:38 +00:00
iposva@google.com
cc13627fc8
- Remove Isolate::CurrentAddress().
...
- Remove use of INFINITY and -INFINITY.
R=rmacnak@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//609593002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40700 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-25 23:39:30 +00:00
ajohnsen@google.com
0491f4e887
Per isolate package root.
...
BUG=
R=iposva@google.com , ricow@google.com , sgjesse@google.com , turnidge@google.com
Committed: https://code.google.com/p/dart/source/detail?r=40534
Review URL: https://codereview.chromium.org//545483002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40581 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-23 05:46:14 +00:00
ajohnsen@google.com
38619425c2
Revert "Per isolate package root."
...
Revert "Fix test in checked mode."
The Dartium branch is locked atm, making it impossible to land this and have green Dartium bots.
BUG=
Review URL: https://codereview.chromium.org//590123002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40540 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-22 11:13:28 +00:00
ajohnsen@google.com
a058d07806
Per isolate package root.
...
BUG=
R=iposva@google.com , sgjesse@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org//545483002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40534 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-22 08:07:06 +00:00
asiva@google.com
302c93b050
1. Add user tag to the pointers traversed in the object store
...
2. Added support for UserTag objects in a full snapshot.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//583583007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40508 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-19 18:00:13 +00:00
fschneider@google.com
95d33c36d4
VM: Use current isolate as immediate operand in per-isolate stub code.
...
There is no need to load it from the context, if the stub
is per-isolate. This makes those stubs not rely on having a context in CTX,
and avoids loading the isolate pointer from memory.
This CL is part of the effort to free up CTX for general
allocation. Stubs that don't depend on a context in CTX
won't require storing the current context before calling
them.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//581703003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40428 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-18 10:13:56 +00:00
ricow@google.com
69bed3d030
Revert revision 39617 "Create isolates in a separate thread."
...
This is breaking dartium with:
BrowserOutput.stderr:
../../dart/runtime/vm/dart_api_impl.cc:1614: error: Dart_EnterScope expects there to be a current isolate. Did you forget to call Dart_CreateIsolate or Dart_EnterIsolate?
R=vsm@google.com
Review URL: https://codereview.chromium.org//516863002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39638 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-28 09:52:59 +00:00
turnidge@google.com
3cd24f8ebf
Create isolates in a separate thread.
...
Previously the parent isolate waited for the child isolate to fully
load, which was not ideal. This change fixes that.
If you run on mac, you may need to raise your open file limit to make mandel_isolate_test pass:
ulimit -n 1024
Default open file limit on the mac is low.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//507913003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39617 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 19:47:06 +00:00
johnmccutchan@google.com
3c6822fde3
- Keep track of stack base whenever Dart code is invoked.
...
- Update stack limit based on stack base.
R=asiva@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org//506933002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39613 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 18:28:47 +00:00
iposva@google.com
2ee3263277
- Add and enable concurrent sweeper.
...
- Keep separate lists for normal sized executable and data pages.
R=koda@google.com
Review URL: https://codereview.chromium.org//503363005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39593 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 13:37:55 +00:00
turnidge@google.com
c48496b873
Refactor isolate startup code in preparation for making isolate spawning more truly non-blocking.
...
Instead of passing a startup message to the new isolate, pass all
necessary information in to _startIsolate directly. The new isolate
sends its control port and capabilities back to the parent.
R=iposva@google.com
Review URL: https://codereview.chromium.org//456983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39423 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-20 19:57:09 +00:00
johnmccutchan@google.com
3299ed4a81
- Add VMMetric and some sample metrics
...
- Per isolate:
* heap.old.used
* heap.old.capacity
* heap.old.external
* heap.new.used
* heap.new.capacity
* heap.new.external
- VM:
* vm.isolate.count
- New metrics service namespace: /metrics/vm/...
R=koda@google.com
Review URL: https://codereview.chromium.org//464953002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39305 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 17:35:00 +00:00
fschneider@google.com
54a7410866
Fix bug with CHA dependencies by recording a set of classes for registering code.
...
CHA is not only used with the receiver class, but also with other classes
when doing type propagation. The optimized code has to be registered with
all classes that are affected by CHA so that deoptimization occurs whenever
the set of subclasses changes for these classes.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//463103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39194 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-13 12:43:03 +00:00
iposva@google.com
14ecdbd66a
- Separate the thread implementation used in bin/ and vm/
...
to allow us to make VM specific changes.
R=asiva@google.com
Review URL: https://codereview.chromium.org//463993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39172 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-12 23:19:53 +00:00
iposva@google.com
5686b6a793
- Implement Isolate.pause and Isolate.resume.
...
- Implement a minimum Capability functionality.
R=asiva@google.com
Review URL: https://codereview.chromium.org//354763004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37982 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-03 12:56:02 +00:00
hausner@google.com
4090b57cd8
Defer marking libraries as ‘loaded’
...
Now that loading of libraries and library parts are loaded asynchronously and calls to Dart_LoadLibrary are serialized instead of nested, we must wait until the last load request is satisfied before marking libraries as ‘loaded’.
R=iposva@google.com
Review URL: https://codereview.chromium.org//350923005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37824 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 17:11:09 +00:00
johnmccutchan@google.com
452545ddcd
Visual refresh of allocation profile page
...
- Redo layout of page.
- Show human readable strings for used, free, and external memory for each space.
- Track time of last forced GC/accumulator reset in isolate and display them in allocation profile page.
- Track allocation statistics on Class object itself.
- Make isolate's heap reporting use heap's PrintToJSON.
- Manually insert allocation profile table rows into dom (removes usage of template repeat).
- Add some timing information to allocation profile page update (to help diagnose slow downs).
Other changes:
- Upgrade to Polymer 0.11-dev (finally ends erroneous console spam).
- Replace enteredView/leftView with attached/detached (polymer change).
- Add <link> tag to polymer.html for each element (polymer change).
- Move <script> tag outside of element (uniformity, clarity).
- Remove unused collapsible-content element.
R=koda@google.com
Review URL: https://codereview.chromium.org//342513004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37456 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 17:39:37 +00:00
rmacnak@google.com
7ce5c53f0b
Pass around the current isolate in exception handling code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//326183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37409 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-17 18:17:03 +00:00
koda@google.com
5886e8ec95
Light-weight stats counters for temporary experiments/debugging.
...
A single statement is enough to add a counter:
...
Isolate::Current()->counters()->Increment("allocated", size_in_bytes);
...
I've been using these myself for a while now, but figured others might
find them useful too. They are not intended for production use, just temporary local experiments/investigation.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//336683003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37367 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-16 17:13:20 +00:00
regis@google.com
7e065cb7f0
Provide the isolate with a trace buffer, but do not allocate one by default.
...
This will be used to report warnings to the observatory.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//327803003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37184 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 17:06:02 +00:00
zra@google.com
436a06a381
Fixes to run "Hello, world!" on arm64 hardware.
...
Primarily, in Dart code, instead of using R31 as our
stack pointer, on entry we copy it into a second
register (R18) and use that as our stack pointer after
moving R31 to the Dart stack limit. On calling back
into C++ from Dart code, R31 is restored, and R18 is
cached in the callee-saved register R26.
R=regis@google.com
Review URL: https://codereview.chromium.org//311903004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36930 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-03 18:38:28 +00:00
johnmccutchan@google.com
b3f2fb14d0
Reduce CPU usage when no isolates need to be profiled (e.g. when an isolate calls readLineSync or sleep the isolate owns the thread but is blocked).
...
This CL does the following:
- Introduces two new API entry points: Dart_IsolateBlocked and Dart_IsolateUnblocked.
- The thread interrupter thread goes into a deep sleep if no isolates need to be profiled (not scheduled on a thread or are in a blocking call).
- When an isolate unblocks, the thread interrupter thread resumes regular interrupts.
- dart:io readLineSync and sleep mark that they are making a blocking call.
This fixes https://code.google.com/p/dart/issues/detail?id=18126 reducing CPU usage to 0% when waiting for stdin or sleeping.
R=ajohnsen@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//297183003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36632 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-26 11:53:49 +00:00
turnidge@google.com
78f3f14635
Add pause/resume for isolates in vmservice/observatory.
...
Improve the isolate view and isolate summary.
Details:
- Rig DbgMsgQueueList so it can run even when the debugger hasn't started.
- Add <action-link> element for pause/resume actions.
- Introduce new flex-percentile css classes.
- Add <isolate-run-state>, <isolate-location>, <isolate-shared-summary>, and <isolate-counter-chart> elements. Counters are now displayed as a pie chart instead of as text.
- Reorg <isolate-view> and <isolate-summary> substantially.
- Add shared style sheet to <script-view>.
- Combine pause-on-start/pause-on-exit with other debugger pause events and present a consistent representation for these in the vm service. Reorg how pause events are shown in <isolate-run-state>.
- Give the user a nicer message when an isolate is still loading.
- Move the /resume command to /debug/resume. Implement this with a bool in the Isolate class which is used to smuggle resume requests from the vm service to the dart embedding api.
- Add the /debug/pause command to the vm service
- Break the DebuggerEvent struct out into its own top-level class. Add JSON printing.
etc.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//271153002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36366 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-20 17:09:08 +00:00
johnmccutchan@google.com
9ced01eec2
Fix library snapshotting breakage with native entry symbol resolver.
...
- Write out a NULL for the libraries Dart_NativeEntrySymbol.
- Read in the NULL for the libraries Dart_NativeEntrySymbol.
- Set the libraries Dart_NativeEntrySymbol to NULL.
- Use reusable handles.
R=turnidge@google.com
Review URL: https://codereview.chromium.org//268853003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35812 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-06 18:09:49 +00:00
johnmccutchan@google.com
850074a704
Refactor 'dart:profiler' UserTag API
...
- Each isolate starts off with a 'Default' UserTag set.
- A null tag cannot be set.
- Calls to clearCurrentTag() should be replaced with a call to UserTag.defaultTag.makeCurrent().
- makeCurrent returns the previously current tag.
This allows for the following pattern to work:
callee() {
var old = calleeTag.makeCurrent();
...
old.makeCurrent();
}
caller() {
var old = callerTag.makeCurrent();
...
callee();
assert(getCurrentTag() == callerTag);
...
old.makeCurrent();
}
R=iposva@google.com , zra@google.com
Review URL: https://codereview.chromium.org//266913010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35810 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-06 17:07:26 +00:00
johnmccutchan@google.com
6858b4d4af
Fix edge case where profiler would miss the caller of the top frame.
...
Some stubs (and intrinsics) do not push a frame onto the stack leaving
the frame pointer in the caller.
PC -> STUB
FP -> DART3 <-+
DART2 <-| <- TOP FRAME RETURN ADDRESS.
DART1 <-|
.....
In this case, traversing the linked stack frames will not collect a PC
inside DART3. The stack will incorrectly be: STUB, DART2, DART1.
In Dart code, after pushing the FP onto the stack, an IP in the current
function is pushed onto the stack as well. This stack slot is called
the PC marker. We can use the PC marker to insert DART3 into the stack
so that it will correctly be: STUB, DART3, DART2, DART1. Note the
inserted PC may not accurately reflect the true return address from STUB.
R=asiva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//264933006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35762 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 20:04:16 +00:00
turnidge@google.com
9243ffc4ff
Always use the same json for null in the vm service.
...
PrintToJSONStream -> PrintJSON.
ALSO:
Fix <em> tags in the Observatory.
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//257053003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35532 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-29 18:10:02 +00:00
johnmccutchan@google.com
c92b2c387b
Intrinsify UserTag operations on all architectures
...
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//237063004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35175 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-18 18:56:07 +00:00
asiva@google.com
a561e2bd17
1. Provide a framework to traverse persistent prolog weak handles.
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//231053003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35066 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-15 16:32:55 +00:00
johnmccutchan@google.com
8f0056371d
Initial UserTag and dart:profiler library
...
R=asiva@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//230863005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34949 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-10 22:32:45 +00:00
turnidge@google.com
1eba6be2b2
Implement new stacktrace and deoptimization stress testing flags:
...
--deoptimize-every=N
--deoptimize-filter=FunctionName
--stacktrace-every=N
--stacktrace-filter=FunctionName
Add a word of stack_overflow_flags to the Isolate. Use a bit in this
word to indicate whether or not a function is being compiler for OSR.
This allows us to distinguish an OSR overflow from a stress-testing
overflow.
BUG=
R=johnmccutchan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//226543007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34887 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-09 18:27:37 +00:00