- 24 Oct, 2013 1 commit
-
-
yurys@chromium.org authored
This is initial implementation of allocation profiler. Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack. Format of serialized heap snapshot is extended to include information about recorded allocation stack traces. This patch is r17301 plus a fix for the test crash in debug mode. The test crashed because we were traversing stack trace when just allocated object wasn't completely configured, in particular the map pointer was incorrect. Invalid Map pointer broke heap iteration required to find Code object for a given pc during stack traversal. The solution is to insert free space filler in the newly allocated block just before collecting stack trace. BUG=chromium:277984,v8:2949 R=hpayer@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/34733004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Oct, 2013 1 commit
-
-
bmeurer@chromium.org authored
[Sheriff] Revert "Record allocation stack traces" and "Temporarily disable test-heap-profiler/TrackHeapAllocations". This reverts commit r17301 and r17303 for breaking the nosnap builds. TBR=yurys@chromium.org Review URL: https://codereview.chromium.org/34523002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Oct, 2013 2 commits
-
-
yurys@chromium.org authored
This is initial implementation of allocation profiler. Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack. Format of serialized heap snapshot is extended to include information about recorded allocation stack traces. BUG=chromium:277984 R=hpayer@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/27227005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=dslomov@chromium.org BUG=v8:2938 Review URL: https://codereview.chromium.org/28723002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Oct, 2013 1 commit
-
-
mvstanton@chromium.org authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/24250005 Review URL: https://codereview.chromium.org/27366003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Oct, 2013 2 commits
-
-
mvstanton@chromium.org authored
This reverts commit r17219 due to WebKit failures. R=mstarzinger@chromium.org TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/26539010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mvstanton@chromium.org authored
BUG= R=hpayer@chromium.org Review URL: https://codereview.chromium.org/24250005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Oct, 2013 1 commit
-
-
titzer@chromium.org authored
BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/25254002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Oct, 2013 2 commits
-
-
jkummerow@chromium.org authored
R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/26004003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Explicitly include defaults.cc in the shared_library gyp target, otherwise the whole compilation unit is stripped by the Windows linker, since none of it's symbols are referenced by any other compilation unit in V8. BUG=None R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/25994002 Patch from Ross McIlroy <rmcilroy@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Oct, 2013 1 commit
-
-
danno@chromium.org authored
- Detect unreachable basic blocks of code either following an unconditional deopt or after a provably untaken branch of HBranch or HCompareObjectEqAndBranch instructions. - Emit dummy uses in unreachable blocks during Hydrogen -> Lithium translation. BUG=chromium:258519 R=jkummerow@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/22876009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2013 1 commit
-
-
jochen@chromium.org authored
The framework isn't used, and won't be used in the near future R=hpayer@chromium.org Review URL: https://codereview.chromium.org/25260003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Sep, 2013 2 commits
-
-
hpayer@chromium.org authored
Re-land "Add methods to enable configuration of ResourceConstraints based on limits derived at runtime." Adds ConfigureResourceConstraintsForCurrentPlatform and SetDefaultResourceConstraintsForCurrentPlatform which configure the heap based on the available physical memory, rather than hard-coding by platform as previous. This change also adds OS::TotalPhysicalMemory to platform.h. The re-land fix the performance regression caused by accidental change in default max young space size. BUG=292928 R=hpayer@chromium.org Review URL: https://codereview.chromium.org/24989003 Patch from Ross McIlroy <rmcilroy@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
Revert "Add methods to enable configuration of ResourceConstraints based on limits derived at runtime." and "Fix Windows build of defaults.cc." This reverts commit r16964 and r16968 due to performance regressions in octane. TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/24996003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Sep, 2013 2 commits
-
-
titzer@chromium.org authored
BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23866016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
Adds ConfigureResourceConstraintsForCurrentPlatform and SetDefaultResourceConstraintsForCurrentPlatform which configure the heap based on the available physical memory, rather than hard-coding by platform as previous. This change also adds OS::TotalPhysicalMemory to platform.h. BUG=292928 R=danno@chromium.org, hpayer@chromium.org Review URL: https://codereview.chromium.org/24269003 Patch from Ross McIlroy <rmcilroy@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Add fallback to rand_s() to gather entropy on Windows for seeding the random number generator. This is compatible with what Blink does. BUG=v8:2905 R=machenbach@chromium.org Review URL: https://codereview.chromium.org/24315007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23969011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Sep, 2013 2 commits
-
-
titzer@chromium.org authored
BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/24117004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jochen@chromium.org authored
That way, embedders can put the icu sources whereever they want and aren't forced to put them under third_party/gyp BUG=none R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/23598011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Sep, 2013 2 commits
-
-
jochen@chromium.org authored
The previous attempt used Boolean instead of $Boolean. BUG=v8:2745 R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23622028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
BUG= R=rossberg@chromium.org, verwaest@chromium.org Review URL: https://codereview.chromium.org/23609020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Sep, 2013 3 commits
-
-
mstarzinger@chromium.org authored
Original descriptions were: - "Refactor and cleanup VirtualMemory." - "Fix typo." - "Deuglify V8_INLINE and V8_NOINLINE." - "Don't align size on allocation granularity for unaligned ReserveRegion calls." Reasons for the revert are: - Our mjsunit test suite slower by a factor of 5(!) in release mode. - Flaky cctest/test-alloc/CodeRange on all architectures and platforms. - Tankage of Sunspider by about 6% overall (unverified). TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/23970004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
Implement simplistic local alias analysis, which will be used in both check elimination and load elimination. BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23516010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Remove a lot of platform duplication, and simplify the virtual memory implementation. Also improve readability by avoiding bool parameters for executability (use a dedicated Executability type instead). Get rid of the Isolate::UncheckedCurrent() call in the platform code, as part of the Isolate TLS cleanup. Use a dedicated random number generator for the address randomization, instead of messing with the per-isolate random number generators. TEST=cctest/test-virtual-memory R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23641009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Introduce a RandonNumberGenerator class. Refactor the random/private_random uses in Isolate/Context. The RandomNumberGenerator is a pseudorandom number generator with 48-bit state. It is properly seeded using either (1) the --random-seed if specified, or (2) the entropy_source function if configured, or (3) /dev/urandom if available, or (4) falls back to Time and TimeTicks based seeding. Each Isolate now contains a RandomNumberGenerator, which replaces the previous private_random_seed. Every native context still has its own random_seed. But this random seed is now properly initialized during bootstrapping, instead of on-demand initialization. This will allow us to cleanup and speedup the HRandom implementation quite a lot (this is delayed for a followup CL)! Also stop messing with the system rand()/random(), which should not be done from a library anyway! We probably re-seeded the libc rand()/random() after the application (i.e. Chrome) already seeded it (with better entropy than what we used). Another followup CL will replace the use of the per-isolate random number generator for the address randomization and thereby get rid of the Isolate::UncheckedCurrent() usage in the platform code. TEST=cctest/test-random-number-generator,cctest/test-random R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23548024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Move the Socket class to dedicated platform/socket.{cc,h} files. Cleaned up the implementation to allow for more code sharing. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23484014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Condition variables are synchronization primitives that can be used to block one or more threads while waiting for condition to become true. Right now we have only semaphores, mutexes and atomic operations for synchronization, which results in quite complex solutions where an implementation using condition variables and mutexes would be straight forward. There's also a performance benefit to condition variables and mutexes vs semaphores, especially on Windows, where semaphores are kernel objects, while mutexes are implemented as fast critical sections, it CAN be beneficial performance-wise to use condition variables instead of semaphores. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23548007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Drop the previous Semaphore class from platform files. Add new Semaphore class using the new TimeDelta class for the WaitFor() operation. Consistently assert correct behaviour for the different implementations. Improve test coverage of the Semaphore class. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23748003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/23718004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Aug, 2013 1 commit
-
-
bmeurer@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/23819005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Aug, 2013 2 commits
-
-
bmeurer@chromium.org authored
Drop the previous Mutex and ScopedLock classes from platform files. Add new Mutex, RecursiveMutex and LockGuard classes, which are designed after their C++11 counterparts, so that at some point we can simply drop our custom code and switch to the C++11 classes. We distinguish regular and recursive mutexes, as the latter don't work well with condition variables, which will be introduced by a followup CL. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23625003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). The previous Windows issues have been resolved, and we now use GetTickCount64() on Windows Vista and later, falling back to timeGetTime() with rollover protection for earlier Windows versions. BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/23490015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Aug, 2013 7 commits
-
-
bmeurer@chromium.org authored
Revert "Cross-compiling from Linux to Android requires -lrt for the host toolset.", "Fix Visual Studio debug build after r16398." and "Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."" This reverts commit r16398, r16399 and r16402 for breaking the Windows WebKit tests. Will reland fix which doesn't use High Resolution Timer for ElapsedTimer (we suspect QueryPerformanceCounter overhead is responsible for test breakage). TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23710002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
R=yurys@chromium.org Review URL: https://codereview.chromium.org/23656004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org Review URL: https://codereview.chromium.org/23469013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This reverts commit r16390 for breaking the Windows build. Will reland fixed version, which also uses the platform/ folder instead of time/ folder as per offline discussion. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23690003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=16388 Review URL: https://codereview.chromium.org/23295034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This reverts commit r16388 for breaking build due to merge typo, will reland with typo fixed. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23698002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/23295034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-