summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix getpc_test for PPC64v2 LEat7_0-releaseAdhemerval Zanella2014-02-021-2/+4
| | | | | | This patch fix the PPC64 guard to get the function address for PPC64v2. It removes the use of an indirection (to get the ODP text address), since the PPCv2 does not have function descriptors.
* Add support for PPC64LE in configureAdhemerval Zanella2014-02-021-0/+6
|
* issue-491: Fix lost wakeups in spinlockAdhemerval Zanella2014-02-021-8/+2
| | | | | | | | | | | | | In uncontended cases, SpinLock::{Lock,Unlock} have an overhead of 13ns. In cases where the lock is contended, SpinLock::Unlock has a bug where it can fail to wakeup waiters, causing the overhead of SpinLock::{Lock,Unlock} to blow up from 13ns to as high as 256ms. In cases of heavy lock contention, this can cause applications to sleep for minutes at a time without doing anything, appearing to hang. The following fix slows down SpinLock::Unlock by 2ns in the uncontended case, but speeds up SpinLock::Lock by up to almost 256ms in the contended case where a wakeup ix mixed.
* issue-490: Add support to {Acquire,Release}_AtomicExchangeAdhemerval Zanella2014-02-028-50/+281
|
* Fix compiler warningsAdhemerval Zanella2014-02-024-4/+5
|
* issue-496: Fix possible deadlock in thread+forkAdhemerval Zanella2014-02-025-0/+58
| | | | | This patch adds a pthread_atfork handler to set the internal locks in consistent state.
* Update README with PowerPC specifics notesAdhemerval Zanella2014-02-021-0/+20
|
* issue-443: Tune object number transfered between listsAdhemerval Zanella2014-02-025-64/+163
| | | | | | | | This patch increases the number of object transfered from central list to thread list from 32 to 32678. This increases performance in most cases, especially on multiple allocations of the same size. It also adds the environment variable TCMALLOC_TRANSFER_NUM_OBJ to tune its value.
* Fix page_heap testcase for 64K pagesAdhemerval Zanella2014-02-021-3/+3
| | | | | This patch fixes the page_heap testcase 32-bit build when TCMALLOC_LARGE_PAGES64K is defined.
* RSS usage tuning for 64K pagesAdhemerval Zanella2014-02-021-0/+10
| | | | | This patch lowers TCMalloc RSS usage when TCMALLOC_LARGE_PAGES64K is defined by tuning page scavenge values.
* issue-461: Fix to malloc_extension.h so that it builds with -std=gnu++98chappedm@gmail.com2012-12-221-1/+1
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@190 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-465: Adding automagic support for __builtin_expectchappedm@gmail.com2012-12-226-28/+57
| | | | | | | | | | Previously __builtin_ expect was based on a macro check against gcc version. Now we perform the check via AM which is a cleaner approach. There are also a number of code changes here to utilize LIKELY/UNLIKELY macros based on __builtin_expect to improve performance. git-svn-id: http://gperftools.googlecode.com/svn/trunk@189 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-466: Clarified stats output and comments for ExtractStats() and ↵chappedm@gmail.com2012-12-222-7/+16
| | | | | | GetThreadStats() git-svn-id: http://gperftools.googlecode.com/svn/trunk@188 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-467: Fixed issue with allocation size being narrowed to 32-bitchappedm@gmail.com2012-12-221-2/+2
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@187 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-470: Allows the default system allocator to be overiddenchappedm@gmail.com2012-12-221-1/+8
| | | | | | | | This is useful when you run into cases where you need an allocator before tcmalloc has been fully initialized. git-svn-id: http://gperftools.googlecode.com/svn/trunk@186 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-482: Adds support for CACHELINE_ALIGNED value for arm based deviceschappedm@gmail.com2012-12-221-0/+2
| | | | | | | | | Hardcoded the cacheline size to 32 because this value is supported by several arm devices, however a better logic needs to be implemented at some point to handle more arm devices. git-svn-id: http://gperftools.googlecode.com/svn/trunk@185 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-488: Performance improvement for initialization checkschappedm@gmail.com2012-12-224-57/+160
| | | | | | | | | | These came in from the Google-internal version of tcmalloc. They saw some decent speed improvements, both on microbenchmarks and big programs. The idea is to improve the speed of the "Is everything initialized?" type of code, that's at the start of all allocations and deallocations. git-svn-id: http://gperftools.googlecode.com/svn/trunk@184 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-483: Speed up accesses to ClassIndex()chappedm@gmail.com2012-12-222-12/+32
| | | | | | | | | | Making its return type unsigned can save a conversion from signed to unsigned, and getting rid of the ternary operators seems to help a little bit as well. Various gcc versions weren't generating conditional moves for them as one would expect. git-svn-id: http://gperftools.googlecode.com/svn/trunk@183 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-452: Adds a control mechanism to the cpu profiler to be switched on ↵chappedm@gmail.com2012-11-052-11/+101
| | | | | | | | | | | | | and off using a user defined signal. CPUPROFILESIGNAL - Takes a signal number between the value of 1 and 64 inclusive which represents a signal number as defined by signal.h. The signal must not be in use by the program. Sending this signal to the program turns profiling on and off like a switch. By default the switch is off when the program starts. Successive profiles are suffixed with a monotonically increasing number. git-svn-id: http://gperftools.googlecode.com/svn/trunk@182 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-451: Fixed incorrect assembly for 64-bit barrier load and store on ↵chappedm@gmail.com2012-11-041-14/+18
| | | | | | windows platforms. git-svn-id: http://gperftools.googlecode.com/svn/trunk@181 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-450: Move includes for struct mallinfo from tcmalloc.cc to tcmalloc.h ↵chappedm@gmail.com2012-11-042-13/+11
| | | | | | to fix compiler warnings from clang. git-svn-id: http://gperftools.googlecode.com/svn/trunk@180 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-449: Disables mmap check when cross compiling since it is meaningless ↵chappedm@gmail.com2012-11-042-2/+15
| | | | | | anyways git-svn-id: http://gperftools.googlecode.com/svn/trunk@179 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-448: New environment setting that allows you to set an explicit heap limitchappedm@gmail.com2012-11-047-39/+244
| | | | | | | | TCMALLOC_HEAP_LIMIT_MB - The maximum amount of heap memory that tcmalloc can use. TCMALLOC_DISABLE_MEMORY_RELEASE - emulate platform with no MADV_DONTNEED support (generally for testing purposes). git-svn-id: http://gperftools.googlecode.com/svn/trunk@178 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-445: Fix for wrong cmpx instruction in OSAtomicCompareAndSwap64 for ppc64chappedm@gmail.com2012-11-041-1/+1
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@177 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-444: Fix for invalid conversion build error in signal handler codechappedm@gmail.com2012-11-041-4/+3
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@176 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-430: Introduces 8-byte alignment support for tcmallocchappedm@gmail.com2012-11-043-7/+19
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@175 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-473: Fix for make install error regarding src/windows/google/tcmalloc.hchappedm@gmail.com2012-11-042-108/+106
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@174 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-475: Re-applying changes made originally for r150 and r151chappedm@gmail.com2012-11-046-291/+549
| | | | | | | | | | - Used aclocal, autoupdate, autoconf, and automake to correctly apply changes made to Makefile.am. Detailed instructions on this procedure can be found here http://inti.sourceforge.net/tutorial/libinti/autotoolsproject.html. - Fixed a number of error/warning messages due to use of newer aclocal, autoconf, and automake utilities. - Directly and indirectly related to issue-385 and issue-480. git-svn-id: http://gperftools.googlecode.com/svn/trunk@173 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-475: Amend of r151 and r150chappedm@gmail.com2012-11-0417-7772/+6022
| | | | | | | In revisions 151 and 150 an attempt was made to enable frame pointers by default for i386. However, in the process of doing so a number of files were inadvertently touched as a result of running autogen.sh. As a result, I have needed to roll back these revisions so that I can reattempt the change. git-svn-id: http://gperftools.googlecode.com/svn/trunk@172 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-476: Amendment to r152:issue-437 to fix a build error due to ↵chappedm@gmail.com2012-11-031-5/+9
| | | | | | PR_SET_TRACER not being defined in older glibc releases. git-svn-id: http://gperftools.googlecode.com/svn/trunk@171 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-477: Fix clang compilation errors regarding format specifierschappedm@gmail.com2012-11-0312-66/+66
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@170 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-478: Added the heap profiler tunnable setting ↵chappedm@gmail.com2012-11-032-1/+24
| | | | | | HEAP_PROFILER_TIME_INTERVAL used to dump heap profiles on a specified time interval. git-svn-id: http://gperftools.googlecode.com/svn/trunk@169 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-479: Replaced sscanf usage while iterating proc maps entries to fix a ↵chappedm@gmail.com2012-11-031-7/+148
| | | | | | deadlock introduced by glibc-2.15. git-svn-id: http://gperftools.googlecode.com/svn/trunk@168 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-481: Replaced test mechanism for distinct address spaces with a more ↵chappedm@gmail.com2012-11-031-20/+20
| | | | | | | | | reliable mechanism Rather than using sys_ptrace+PTRACE_PEEK_DATA to determine whether address spaces are distinct, we now use sys_waitpid+__WCLONE. See issue-481 for a more detailed rationale. git-svn-id: http://gperftools.googlecode.com/svn/trunk@167 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* amend-r165: forgot to regenrate configure and Makefile.inchappedm@gmail.com2012-11-032-6/+4
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@166 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-480: duplicate of issue-385 fixed in r150 however some of the comments ↵chappedm@gmail.com2012-11-032-7/+4
| | | | | | | | | in the code regarding frame pointers needed to be clarified. git-svn-id: http://gperftools.googlecode.com/svn/trunk@165 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-424: Updated heap profiler documentation that had mispelling for the ↵chappedm@gmail.com2012-10-281-1/+1
| | | | | | heap profiler mmap only environment setting (HEAP_PROFILE_ONLY_MMAP) git-svn-id: http://gperftools.googlecode.com/svn/trunk@164 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-417: This commit removed the fatal error message printed along with ↵chappedm@gmail.com2012-10-281-1/+0
| | | | | | the pprof usage information when pprof is run with no arguments. git-svn-id: http://gperftools.googlecode.com/svn/trunk@163 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-411: This commit adds additional logging to the cpu profiler to warn ↵chappedm@gmail.com2012-10-282-6/+27
| | | | | | when the profiler is run and no CPUPROFILE environment setting can be found. It also adds a new environment variable PERFTOOLS_UNITTEST to allow certain modules to take action when running under the umbrella of a unit test. git-svn-id: http://gperftools.googlecode.com/svn/trunk@162 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-405: backed out original commit made in revision 147 due to the fact ↵chappedm@gmail.com2012-10-281-6/+1
| | | | | | that it didn't work as intended git-svn-id: http://gperftools.googlecode.com/svn/trunk@161 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-442: Fixes an issue encountered on PPC with undefined conversions from ↵chappedm@gmail.com2012-09-181-0/+19
| | | | | | 'base::subtle::Atomic64*' to 'const volatile Atomic32*' git-svn-id: http://gperftools.googlecode.com/svn/trunk@160 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* Adding support for CPU frequencies for Linux on PowerPCchappedm@gmail.com2012-09-181-0/+17
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@159 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-446: Fixes compatability issues in malloc_hook_test for PPC64chappedm@gmail.com2012-09-181-11/+11
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@158 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-458: Optimizes malloc hooks for weakly consistent memory architectureschappedm@gmail.com2012-09-181-2/+2
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@157 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-456: Adds support for CACHELINE_ALIGNED values for PPCchappedm@gmail.com2012-09-181-2/+6
| | | | git-svn-id: http://gperftools.googlecode.com/svn/trunk@156 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-455: Adds another size for large pages in tcmalloc through the new ↵chappedm@gmail.com2012-09-181-0/+3
| | | | | | define TCMALLOC_LARGE_PAGES64K git-svn-id: http://gperftools.googlecode.com/svn/trunk@155 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-457: Fixed an issue where the 'getpc' testcase was using the wrong ↵chappedm@gmail.com2012-09-181-1/+1
| | | | | | PPC64 preprocessor directive git-svn-id: http://gperftools.googlecode.com/svn/trunk@154 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-453 Added support to get the timebase register value using just one ↵chappedm@gmail.com2012-09-181-7/+16
| | | | | | instruction and also adjusts the PPC32 code to the recent GLIBC one that implements the same functionality git-svn-id: http://gperftools.googlecode.com/svn/trunk@153 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-437 Fixed issues related to new glibc shipped with Ubuntu 10.10chappedm@gmail.com2012-09-182-31/+60
| | | | | | | | | | | | | | | 1. ptrace permissions were modifed to be a bit more strict which required us to programatically set the permissions while syncing up to the profiling thread. 2. Order of destructors registered with atexit changed which was casuing us to miss generating the backtrace when heap checker was finished. Seems that we initially fixed this for FreeBSD and now linux has changed their behaviour to be the same. We are now a bit stricter on the rules here accross all platforms. git-svn-id: http://gperftools.googlecode.com/svn/trunk@152 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
* issue-385: updates to automake to pick up the explicit setting of the ↵chappedm@gmail.com2012-05-1617-6396/+8191
| | | | | | -fno-omit-frame-pointer for i386 git-svn-id: http://gperftools.googlecode.com/svn/trunk@151 6b5cf1ce-ec42-a296-1ba9-69fdba395a50