- 05 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Instead of globally tracking allocated space limits, which was not implemented properly anyway (i.e. lack of synchronization on the reading side), track it per MemoryAllocator (that is per heap/isolate). In particular, avoid to call IsBadWritePtr() on Windows, it is obsolete and Microsoft strongly discourages its usage. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23903008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16542 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
-
- 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
-
- 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 9 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
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
The name NumberOfCores is misleading, as it does not return the actual number of cores. While NumberOfProcessorsOnline is also not a great name, it's at least consistent with the operating system terminology. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23655004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16392 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
-
bmeurer@chromium.org authored
Also remove the obsolte __GNUC_VERSION__ #define. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/23522003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Don't check for WIN32 define. Use V8_OS_* macros whenever possible, and if not use _WIN32. BUG=v8:2300 R=yangguo@chromium.org Review URL: https://codereview.chromium.org/23687003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2013 1 commit
-
-
bmeurer@chromium.org authored
Move all of the CPU detection logic to the CPU class, and make all other code use the CPU class for feature detection. This also fixes the ARM CPU feature detection logic, which was based on fragile string search in /proc/cpuinfo. Now we use ELF hwcaps if available, falling back to sane(!!) parsing of /proc/cpuinfo for CPU features. The ia32 and x64 code was also cleaned up to make it usable outside the assembler. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/23401002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Jul, 2013 1 commit
-
-
bmeurer@chromium.org authored
Revert "Fix NaCl build." Revert "Revert target arch detection." Revert "Fix typo." Revert "Simplify implementation of Mutex." Revert "Fix for older clang releases that lack __has_extension." Revert "Reland initial bits of "Implement correct OS and CC detection."" TBR=danno@chromium.org,svenpanne@chromium.org Review URL: https://codereview.chromium.org/21095008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2013 1 commit
-
-
bmeurer@chromium.org authored
Also moves Mutex to its own file mutex.{cc,h}. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/21087012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jul, 2013 2 commits
-
-
bmeurer@chromium.org authored
Revert "Attempt to fix leftover test breakage on Mac." Revert "Fix d8 build error when V8_SHARED is unset on Linux." Revert "Fix V8_GNUC_PREREQ macro." Revert "Fix typo." Revert "Implement correct OS and CC detection." TBR=svenpanne@chromium.org,danno@chromium.org Review URL: https://codereview.chromium.org/21022003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/20734002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jul, 2013 1 commit
-
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/20684002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jul, 2013 1 commit
-
-
rodolph.perfetta@gmail.com authored
Add support for a few NEON and ARM SIMD instructions and use them for various memcpy operations. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/17858002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jun, 2013 1 commit
-
-
yurys@chromium.org authored
The operation is already implemented in atomicops.h No need to duplicate the code. BUG=None R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/17222004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Apr, 2013 1 commit
-
-
danno@chromium.org authored
This will make it easier to use other STL headers in the future Review URL: https://codereview.chromium.org/14362023 Patch from Jochen Eisinger <jochen@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Apr, 2013 3 commits
-
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/13760003 Patch from Haitao Feng <haitao.feng@intel.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/13932006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
Also OS::Sleep(interval_) is used to pause sampling thread on all platforms. It makes no sense to send signal once 900mks to compensate 100mks delay on signal delivery as the signals would be delivered once 900mks. BUG=None Review URL: https://codereview.chromium.org/14238007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Apr, 2013 1 commit
-
-
yurys@chromium.org authored
This is a first step to having profiler sampler implementation in one file with platform capabilities guarded with #ifdef. Otherwise we have very similar implementations scattered over platform-*.cc files which makes it hard to see differences and make changes. The next steps will be to merge win32, Mac OS X and Cygwin implementations into sampler.cc They suspend profiled thread instead of sending a signal but apart from that the logic is pretty much the same. Then I'm going to move sampler-related code from log.* into sampler.* BUG=None Review URL: https://codereview.chromium.org/13852005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Apr, 2013 1 commit
-
-
yurys@chromium.org authored
Assuming that the value on top of stack is return address for a frameless invocation is error-prone. Corresponding logic was removed from profile-generator.cc in r14205 (see https://code.google.com/p/v8/source/diff?spec=svn14205&r=14205&format=side&path=/branches/bleeding_edge/src/profile-generator.cc) and now it is time to remove it from the tick processor. Since the tos is not used anymore by profiler it is also removed from TickSample. BUG=None Review URL: https://codereview.chromium.org/13873009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Apr, 2013 1 commit
-
-
yurys@chromium.org authored
The new test checks full CPU profiling cycle: using public V8 API it starts profiling, executes a script, stops profiling and analyzes collected profile to check that its top-down tree has expected strutcture. The script that is being profiled is guaranteed to run > 200ms to make sure enough samples are collected. To avoid possible flakiness due to non-deterministic time required to start new thread on varios OSs when Sampler and ProfilerEventsProcessor threads are being started the main thread is blocked until the threads are running. Also I removed the heuristic in profile-generator.cc where we try to figure out if the value on top of the sampled stack is return address of some frameless stub invocation. The code periodically gives false positive with the new test ending up in an extra node in the collected cpu profile. After discussion with jkummerow@ we concluded that the logic is too fragile and that we can address frameless stub invocations in a more reliable way later should they have a noticeable effect on cpu profiling. BUG=None Review URL: https://codereview.chromium.org/13627002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2013 1 commit
-
-
mstarzinger@chromium.org authored
R=jkummerow@chromium.org BUG=chromium:196330 Review URL: https://codereview.chromium.org/12790012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Mar, 2013 1 commit
-
-
yurys@chromium.org authored
This reverts commit r13735 as CPU profiler data is inaccurate after that change. BUG=v8:2571 Review URL: https://codereview.chromium.org/12592002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Feb, 2013 1 commit
-
-
yurys@chromium.org authored
The patch is based on the previous one that was rolled out: https://code.google.com/p/v8/source/detail?r=12985 On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow. CPU profiler continues to use SamplingCircularQueue, we will replave it with a single sample buffer when Mac and Win ports support profiling on the event processing thread. When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to if no CPU profiles are being collected. ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point. BUG=v8:2364 Review URL: https://codereview.chromium.org/12321046 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Feb, 2013 1 commit
-
-
hpayer@chromium.org authored
BUG= Review URL: https://codereview.chromium.org/12089107 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
Currently only supported on Linux. When compiled with GCC, also demangles C++ identifier names. Should make debugging those flaky crashes on buildbots easier... :) R=mstarzinger@chromium.org,ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/11577019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Nov, 2012 1 commit
-
-
jkummerow@chromium.org authored
This reverts r12985. Review URL: https://codereview.chromium.org/11428103 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Nov, 2012 1 commit
-
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/11418149 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Nov, 2012 1 commit
-
-
jkummerow@chromium.org authored
- perform CPU profiler sampling in the sampler thread as we used to; - skip sampling in the sampling thread if processing thread is running; - only install SIGPROF handler when CPU profiling is enabled. BUG=v8:2364 Review URL: https://codereview.chromium.org/11231002 Patch from Sergey Rogulenko <rogulenko@google.com> and Andrey Kosyakov <caseq@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Oct, 2012 1 commit
-
-
mstarzinger@chromium.org authored
The patch introduces CommittedPhysicalMemory function to the Heap class that reports committed *physical* memory acquired for the heap from the OS. It is important because some OSes may defer actual committment on e.g. first access to the region. So reporting just plain committed size led to various weird artifacts like showing V8 allocated memory higher than the whole process private size. BUG=v8:2191 Review URL: https://codereview.chromium.org/11066118 Patch from Alexei Filippov <alph@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Oct, 2012 1 commit
-
-
danno@chromium.org authored
Some ARM architectures load 32-bit immediate constants more efficiently using movw/movt pairs rather than constant pool loads. This patch allows the assembler to generate one or the other load form at runtime depending on what is faster. R=ulan@chromium.org Review URL: https://codereview.chromium.org/11037023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Oct, 2012 1 commit
-
-
jkummerow@chromium.org authored
This reverts r12649 and r12650. BUG=v8:2364 Review URL: https://codereview.chromium.org/11193020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-