Ben Konyi
07852532e3
[ VM ] Additional cleanup in Dart_Initialize and Dart_Cleanup
...
Change-Id: I6dc02b3d9de16cc176eb97613bc0c7f0bb9b16eb
Reviewed-on: https://dart-review.googlesource.com/77013
Commit-Queue: Ben Konyi <bkonyi@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Auto-Submit: Ben Konyi <bkonyi@google.com >
2018-09-28 23:18:59 +00:00
Ryan Macnak
9b5a931b06
[vm] Replace most runtime/vm uses of OS::Print with OS::PrintErr.
...
Leave --print-snapshot-sizes on stdout because it is parsed by Flutter benchmarks.
Replace all runtime/bin uses of OS::Print with Log::Print.
Bug: https://github.com/dart-lang/sdk/issues/32134
Change-Id: I74aacfb410cdfa9270d06e7f6ab0534520c7c7ba
Reviewed-on: https://dart-review.googlesource.com/60021
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-06-13 19:51:40 +00:00
Ryan Macnak
7e54844fe7
[vm] Fix build for gcc 7.3.0.
...
Change-Id: I02ead73679c3a6e1e5c9313f78c5f02ad6ca79b0
Reviewed-on: https://dart-review.googlesource.com/53521
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-05-03 17:59:44 +00:00
Ryan Macnak
558a931409
[vm] Move some string utils from runtime/vm to runtime/platform.
...
Change-Id: I552086445a7e07792f9da85afa5edf23b6c450d5
Reviewed-on: https://dart-review.googlesource.com/44402
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2018-03-01 02:07:46 +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
Martin Kustermann
ac8d2056a3
Fix asserts in StackFrameIterator which were effectively disabled
...
The assertions which tried to assert that we only use
StackFrameIterator to walk frames of the current thread was incorrect.
We already have cases where other threads will walk the stack of the
mutator thread, see below for an example where this can happen.
Thread::VisitObjectPointers was incorrectly passing Thread::Current() to
the StackFrameIterator instead of 'this'. (Code in thread_registry.cc will
loop over a number of threads and calls VisitObjectPointers on them)
Mutator thread:
0 pthread_cond_wait@@GLIBC_2.3.2
1 dart::Monitor::WaitMicros
2 dart::Monitor::Wait
3 dart::MonitorLocker::Wait
4 dart::ThreadBarrier::Sync
5 dart::GCMarker::MarkObjects
6 dart::PageSpace::MarkSweep
7 dart::Heap::CollectOldSpaceGarbage
8 dart::Heap::CollectNewSpaceGarbage
9 dart::Heap::CollectGarbage
10 dart::DN_HelperObject_<native>
11 dart::BootstrapNatives::<native>
<dart frames>
MarkTask thread:
1 dart::EntryFrame::VisitObjectPointers
2 dart::Thread::VisitObjectPointers <---- Walks mutator thread stack
3 dart::ThreadRegistry::VisitObjectPointers <---- Iterates over a number of threads
4 dart::Isolate::VisitStackPointers
5 dart::Isolate::VisitObjectPointers
6 dart::GCMarker::IterateRoots
7 dart::MarkTask::Run
8 dart::ThreadPool::Worker::Loop
9 dart::ThreadPool::Worker::Main
10 dart::ThreadStart
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2845053003 .
2017-05-03 10:27:01 +02:00
Ben Konyi
68a102cab2
Fixed tests not having MallocHooks initialized for tests in release mode.
...
Revert "Revert "Fixed issue in MallocHooks where a MallocHookScope was accidentally removed during a merge, causing a deadlock in the hooks. Also turned off stack trace collection in a test that was timing out as a result of the stack trace collection.""
This reverts commit 1a5b555aa9 .
BUG=
R=zra@google.com
Review-Url: https://codereview.chromium.org/2711353003 .
2017-02-24 13:56:06 -08:00
Ben Konyi
1a5b555aa9
Revert "Fixed issue in MallocHooks where a MallocHookScope was accidentally removed during a merge, causing a deadlock in the hooks. Also turned off stack trace collection in a test that was timing out as a result of the stack trace collection."
...
This reverts commit 44a9a4ede3 .
BUG=
Review-Url: https://codereview.chromium.org/2714083002 .
2017-02-23 19:21:00 -08:00
Ben Konyi
44a9a4ede3
Fixed issue in MallocHooks where a MallocHookScope was accidentally removed during a merge, causing a deadlock in the hooks. Also turned off stack trace collection in a test that was timing out as a result of the stack trace collection.
...
Updated MallocHooks to collect stack traces when memory is allocated.
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2718523003 .
2017-02-23 18:58:50 -08:00
Ben Konyi
d4f026c2e0
Revert "Updated MallocHooks to collect stack traces when memory is allocated."
...
This reverts commit a486a8a26b51dce728373183ab02aeda70e6f2d0.
R=johnmccutchan@google.com
TBR=johnmccutchan@google.com
BUG=
Review-Url: https://codereview.chromium.org/2713803003 .
2017-02-23 13:13:44 -08:00
Ben Konyi
47f0da9cd7
Updated MallocHooks to collect stack traces when memory is allocated.
...
BUG=
R=johnmccutchan@google.com , zra@google.com
Review-Url: https://codereview.chromium.org/2680213002 .
2017-02-23 12:42:18 -08:00
Zachary Anderson
a1bcf051d8
clang-format runtime/vm
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
Zachary Anderson
103881d01c
Make header include guards great again
...
i.e. #ifndef VM_WHATEVER -> #ifndef RUNTIME_VM_WHATEVER
This lets us remove a hack from the PRESUBMIT.py script that existed
for reasons that are no longer valid, and sets us up to add some
presubmit checks for the GN build.
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/2450713004 .
2016-10-26 00:26:03 -07:00
Ryan Macnak
5c06127e2d
Remove unused external typed data factories.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2276803002 .
2016-08-25 10:29:17 -07:00
Ryan Macnak
80e4763a21
Observatory: Report peak process memory usage.
...
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2250793004 .
2016-08-17 13:38:52 -07:00
Zach Anderson
22e449ba09
Fix Windows time zone name extraction. Update API docs
...
On Windows, the OS provides a full name for the time zone
rather than an abbreviation. Further the string may
contain non-ASCII characters, so a conversion is
necessary. This CL updates the API docs to match the
actual behavior, and fixes the string conversion problem.
fixes #17085
R=asiva@google.com
Review URL: https://codereview.chromium.org/2069783002 .
2016-06-14 13:51:19 -07:00
Ryan Macnak
061b601f68
strnlen is not always available.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org/1989513002 .
2016-05-17 12:24:53 -07:00
John McCutchan
f6b570aa2a
Include thread CPU time in Timeline.
...
- [x] Refactor old OSThread interface for querying thread CPU time into OS::GetCurrentThreadCPUMicros.
- [x] Add data to TimelineEvent to track thread CPU time.
- [x] Include "tts" and "tdur" properties when converting the timeline to JSON
Fixes #26396
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1960483002 .
2016-05-05 16:34:09 -07:00
John McCutchan
dd4ef29098
Refactor monotonic clock interface and use raw tick values in stopwatch
...
- Split interface to provide direct access to raw clock value and clock frequency.
- Update Stopwatch to use raw clock value and clock frequency instead of microseconds.
- Fix possible initialization race on OSX
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1563473002 .
2016-01-05 11:22:20 -08:00
Ryan Macnak
c99df050b1
Use a monotonic clock in the implementation of Stopwatch.
...
Rename OS::GetCurrentTraceMicros() to OS::GetCurrentMonotonicMicros().
BUG=http://dartbug.com/477
BUG=http://dartbug.com/12383
R=iposva@google.com
Review URL: https://codereview.chromium.org/1504523002 .
2015-12-08 10:12:05 -08:00
John McCutchan
3d0c4bf586
Make timeline use the same clock source as mojo's tracing infrastructure
...
- This ensures that we have consistent timestamps across processes.
- This is necessary to properly support mojo.
- Add new public API to query timeline clock.
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1367973004 .
2015-09-25 10:04:23 -07:00
Zachary Anderson
16393ee9c6
Uses SNPRINT macro where possible. Otherwise uses #define for format.
...
I was able to convert 49 SNPrint(NULL, 0, ...) patterns to use the
macro. I had to use a #define for the format string 5 times due to
uses that didn't fit the macro.
2 occurences of SNPrint(NULL, 0, ...) had >=2 possibilities for the
format string based on runtime values, and I didn't try to convert
them.
Fixed ~10 format strings.
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1331623002 .
2015-09-11 00:18:14 -07:00
iposva@google.com
28c8553cb6
- Fix a lot of warnings generated by -Wshorten-64-to-32
...
when compiling for ia32 on Mac.
R=vegorov@google.com
Review URL: https://codereview.chromium.org//415513002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38499 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 14:10:13 +00:00
johnmccutchan@google.com
ef2adfc5c6
Allow StackFrameIterator to be used on a different thread than the isolate whose stack frames are being iterated over.
...
This is necessary to be able to use this in the profiler.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//354063004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37886 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-01 17:38:13 +00:00
johnmccutchan@google.com
919dc2d6eb
* Introduce ThreadInterrupter which calls a TLS set callback when thread is interrupted.
...
* Threads can only register and unregister themselves with ThreadInterrupter.
* Profiler is no longer involved in interrupting threads. It's just a callback and the buffer.
* Profiler operates lock free using an atomic operation to reserve sample in sample buffer.
* Linux, Mac, and Windows done.
R=asiva@google.com
Review URL: https://codereview.chromium.org//109803002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31170 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 18:52:15 +00:00
iposva@google.com
d0b681f354
- Write the coverage data to a file instead of printing to stdout.
...
- Explicitly include lines with zero hits.
R=asiva@google.com , mlippautz@google.com
Review URL: https://codereview.chromium.org//24255013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27726 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 21:37:48 +00:00
fschneider@google.com
cfab482b84
Follow-up fix to my change to IsPowerOfTwo: Alignment of one means no alignment, not zero.
...
We assert that the alignment is a power of two. Therefore, platforms that do not need
alignment should return alignment of one instead of zero.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//23745008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27037 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 10:56:43 +00:00
iposva@google.com
c3c942407b
Fix dartbug.com/10415:
...
- Append 'on "$os_$arch"' to the version string on the VM.
Review URL: https://codereview.chromium.org//14593004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22452 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 07:59:03 +00:00
iposva@google.com
0d8ff3ef16
- Add OS::StrNDup instead of redefining it when needed.
...
Review URL: https://codereview.chromium.org//13994008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21368 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 16:19:10 +00:00
regis@google.com
cd746c8172
Initial revision of ARM simulator and (empty) MIPS simulator.
...
Review URL: https://codereview.chromium.org//12041056
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17623 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-25 01:16:35 +00:00
srdjan@google.com
06cd4ed7b2
Fix native lookup. Fix external byte arrays.
...
Review URL: https://codereview.chromium.org//12033036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17478 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-23 17:43:58 +00:00
tball@google.com
3ca9ed33bc
Fixed warnings reported by clang compiler.
...
Review URL: https://codereview.chromium.org//11823067
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16982 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-11 19:17:28 +00:00
meh@google.com
432978367e
Clean up CodeObservers
...
Move CodeObserver registration to the OS abstraction.
Move Pprof logic to the OS abstraction.
Remove pprof from VM tests because now pprof logic is in the VM itself.
Add DISALLOW and AllStatic to Code Observers where appropriate.
Previous review: https://codereview.chromium.org/11572032/
BUG=7321
Review URL: https://codereview.chromium.org//11660011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16462 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 00:23:25 +00:00
meh@google.com
ef737f105d
Revert "Clean up CodeObservers"
...
This reverts commit 43e5ada2fba69c7d5c009b5bf70a234f12941617.
BUG=
Review URL: https://codereview.chromium.org//11644074
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16446 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 17:45:36 +00:00
meh@google.com
6fbf9f1c2e
Clean up CodeObservers
...
Move CodeObserver registration to the OS abstraction
Move Pprof logic to the OS abstraction
Add DISALLOW and AllStatic to Code Observers where appropriate
BUG=7321
Committed: https://code.google.com/p/dart/source/detail?r=16273
Review URL: https://codereview.chromium.org//11572032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16445 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 17:37:59 +00:00
meh@google.com
b406d5cb4e
Revert "Cleanup CodeObservers (and update build file)"
...
This reverts commit b528d673e762b0db88b902ec2e45f917e21d8a67.
BUG=
Review URL: https://codereview.chromium.org//11638002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16285 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 19:59:30 +00:00
meh@google.com
cc626035f1
Cleanup CodeObservers (and update build file)
...
- Move CodeObserver registration to the OS abstraction
- Add DISALLOW and AllStatic to Code Observers where appropriate
The builds for Mac and Windows broke when I submitted the earlier CL (11572032). This CL removes obselete files from the .gypi build file.
BUG=7321
Review URL: https://codereview.chromium.org//11630007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16284 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 19:54:12 +00:00
meh@google.com
4264ab7907
Revert "Cleanup CodeObservers"
...
This reverts commit 16a9677a8a8f0fb8f91c9e6348e188aa167b36c7.
BUG=
Review URL: https://codereview.chromium.org//11607022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16277 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 19:11:09 +00:00
meh@google.com
6adb8b3e6d
Cleanup CodeObservers
...
Move CodeObserver registration to the OS abstraction
Add DISALLOW and AllStatic to Code Observers where appropriate
BUG=7321
Review URL: https://codereview.chromium.org//11572032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16273 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-18 18:54:30 +00:00
johnmccutchan@google.com
5642ee09f1
Expose transferable constructor to Int8List
...
Review URL: https://codereview.chromium.org//11414211
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15598 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-30 20:35:22 +00:00
cshapiro@google.com
da14bf70a7
Add attributions so printf like functions can have their arguments checked.
...
This change also corrects some misuses of format strings and format
arguments that discovered by the compiler checks.
Review URL: https://chromiumcodereview.appspot.com//10869063
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11912 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-06 00:58:25 +00:00
turnidge@google.com
8b68d343c7
Enforce length/size limits for variable size heap object in order to
...
avoid overflow.
For each variable size heap object, compute the maximum number of
elements and use that in the ::New functions to avoid overflow. If a
bad length/size reaches a ::New function, that is a FATAL error -- the
problem should have been caught earlier by the dart api or by the
library code.
Add "border guards" in the dart api and in library calls which cause
new variable size heap objects to be allocated. We check for invalid
length/size and throw explanatory error messages.
Review URL: https://chromiumcodereview.appspot.com//10782016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10130 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-01 18:22:30 +00:00
asiva@google.com
f4e3396989
Address some leftover review comments from previous CL.
...
Review URL: https://chromiumcodereview.appspot.com//10792019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9721 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-17 21:16:08 +00:00
asiva@google.com
ac914d3b8a
Don't create a Bigint object first for every integer while parsing the sources, instead first check to see if it can be represented as a Smi or Mint. This avoids unnecessary creation of Bigint objects.
...
Review URL: https://chromiumcodereview.appspot.com//10703150
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9607 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-12 19:22:33 +00:00
turnidge@google.com
9cbae35238
Don't allow OS::SNPrint or OS::VSNPrint to return negative values.
...
If we encounter conditions that would have caused vsnprintf to return
a negative value, then something pretty wild is going on. We choose
to terminate the vm when this occurs.
This fixes security bug 1745.
Review URL: https://chromiumcodereview.appspot.com//10696165
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9558 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-11 17:54:24 +00:00
asiva@google.com
f05e3736d8
Fix issue 1968, replace usage of inline 'asm' constructs in 'stack alignment', 'jump to exception handler' and 'jump to error handler' code with calls to appropriate stubs.
...
Review URL: https://chromiumcodereview.appspot.com//10664004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9071 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-25 17:35:20 +00:00
floitsch@google.com
dd61a23829
Reapply "Refactor Date implementation in VM."
...
This reapplies fixed versions of commit 7542 and commit 8544.
Original review URLs:
https://chromiumcodereview.appspot.com//10533068
https://chromiumcodereview.appspot.com//10544109
Review URL: https://chromiumcodereview.appspot.com//10534114
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8655 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 13:05:22 +00:00
floitsch@google.com
eb92af4080
Revert "Refactor Date implementation in VM."
...
Also revert "Round days-computation to get rid of daylight-savings differences."
This reverts commit 7542 and commit 8544.
Review URL: https://chromiumcodereview.appspot.com//10534111
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8547 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 13:44:45 +00:00