Commit Graph

83 Commits

Author SHA1 Message Date
csilvers
e0eaf5981e * PORTING: Support for patching assembly on win x86_64! (scott.fr...)
* PORTING: Work around atexit-execution-order bug on freebsd (csilvers)
	* PORTING: Patch _calloc_crt for windows (roger orr)
	* PORTING: Add C++11 compatibility method for stl allocator (jdennett)
	* PORTING: use MADV_FREE, not MADV_DONTNEED, on freebsd (csilvers)
	* PORTING: Don't use SYS_open when not supported on solaris (csilvers)
	* PORTING: Do not assume uname() returns 0 on success (csilvers)
	* LSS: Improved ARM support in linux-syscall-support (dougkwan)
	* LSS: Get rid of unused syscalls in linux-syscall-support (csilvers)
	* LSS: Fix broken mmap wrapping for ppc (markus)
	* LSS: Emit .cfi_adjust_cfa_offset when appropriate (ppluzhnikov)
	* LSS: Be more accurate in register use in __asm__ (markus)
	* LSS: Fix __asm__ calls to compile under clang (chandlerc)
	* LSS: Fix ARM inline assembly bug around r7 and swi (lcwu)
	* No longer log when an allocator fails (csilvers)
	* void* -> const void* for MallocExtension methods (llib)
	* Improve HEAP_PROFILE_MMAP and fix bugs with it (dmikurube)
	* Replace int-based abs with more correct fabs in a test (pmurin)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@134 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2012-01-28 00:13:43 +00:00
csilvers
4fa02db374 Ready to release perftools 1.9.1 :-/
Added the ARM stacktrace file to the tarball (for 'make dist')


git-svn-id: http://gperftools.googlecode.com/svn/trunk@132 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-12-24 01:00:32 +00:00
csilvers
2a7b3b8837 Thu Dec 22 16:22:45 2011 Google Inc. <opensource@google.com>
* google-perftools: version 1.9 release
	* Lightweight check for double-frees (blount)
	* BUGFIX: Fix pprof to exit properly if run with no args (dagitses)
	* Suggest ASan as a way to diagnose buggy code (ppluzhnikov)
	* Get rid of unused CACHELINE_SIZE (csilvers)
	* Replace atexit() calls with global dtors; helps freebsd (csilvers)
	* Disable heap-checker under AddressSanitizer (kcc)
	* Fix bug in powerpc stacktracing (ppluzhnikov)
	* PERF: Use exponential backoff waiting for spinlocks (m3b)
	* Fix 64-bit nm on 32-bit binaries in pprof (csilvers)
	* Add ProfileHandlerDisallowForever (rsc)
	* BUGFIX: Shell escape when forking in pprof (csilvers)
	* No longer combine overloaded functions in pprof (csilvers)
	* Fix address-normalizing bug in pprof (csilvers)
	* More consistently call abort() instead of exit() on failure (csilvers)
	* Allow NoGlobalLeaks to be safely called more than once (csilvers)
	* PORTING/BUGFIX: Fix ARM cycleclock to use volatile asm (dougkwan)
	* PORTING: 64-bit atomic ops for ARMv7 (dougkwan)
	* PORTING: Implement stacktrace for ARM (dougkwan)
	* PORTING: Fix malloc_hook_mmap_linux for ARM (dougkwan)
	* PORTING: Update linux_syscall_support.h for ARM/etc (evannier, sanek)
	* PORTING: Fix freebsd to work on x86_64 (chapp...@gmail.com)
	* PORTING: Added additional SYS_mmap fixes for FreeBSD (chappedm)
	* PORTING: Allow us to compile on OS X 10.6 and run on 10.5 (raltherr)
	* PORTING: Check for mingw compilers that *do* define timespec
	* PORTING: Add "support" for MIPS cycletimer
	* PORTING: Fix fallback cycle-timer to work with Now (dougkwan)
	* PERF: Move stack trace collecting out of the mutex (taylorc)
	* PERF: Get the deallocation stack trace outside the mutex (sean)
	* Make PageHeap dynamically allocated for leak checks (maxim)
	* BUGFIX: Fix probing of nm -f behavior in pprof (dpeng)
	* BUGFIX: Fix a race with the CentralFreeList lock before main (sanjay)
	* Support /pprof/censusprofile url arguments (rajatjain)
	* Change IgnoreObject to return its argument (nlewycky)
	* Update malloc-hook files to support more CPUs
	* BUGFIX: write our own strstr to avoid libc problems (csilvers)
	* Use simple callgrind compression facility in pprof
	* Print an error message when we can't run pprof to symbolize (csilvers)
	* Die in configure when g++ is't installed (csilvers)
	* DOC: Beef up the documentation a bit about using libunwind (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@130 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-12-23 00:45:49 +00:00
csilvers
75f5a791bc Add the magical incantations to get perftools to compile
cleanly under windows.  The only non-trivial one is the #undef
        of small, which I needed to compile under the latest cygwin --
        I ran g++ with -dD under cygwin and saw the '#define small
        char' with my own eyes.  I wouldn't have thought it...


git-svn-id: http://gperftools.googlecode.com/svn/trunk@129 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-12-23 00:45:14 +00:00
csilvers
76131b04cf In my testing for a new release, I was noticing hangs on
cygwin, that went away when I turned off tls support.  Since I
        didn't use to have such problems, I am being conservative and
        only turning off TLS for the particular version of cygwin I'm
        testing on (as returned by uname()).


git-svn-id: http://gperftools.googlecode.com/svn/trunk@128 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-12-23 00:44:53 +00:00
csilvers
3d30fbcc85 We use mmx instructions now in perftools, so specify -xmms for
gcc on i386, where it's not on by default (it is for
        gcc/x86_64, in my tests).  This could potentially cause an
        error for embedded systems, which can have i386 but no mms,
        but the code wouldn't run properly on them anyway without
        tweaks.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@127 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-12-23 00:44:30 +00:00
csilvers
f622d261e9 * Fix ARM cycleclock to use volatile asm (dougkwan)
* BUGFIX: Define BASE_HAS_ATOMIC64 for ARMv7 (dougkwan)
	* Fix fallback cycle-timer to work with Now (dougkwan)
	* Fix pprof to exit properly if run with no args (dagitses)
	* Suggest ASan as a way to diagnose buggy code (ppluzhnikov)
	* Get rid of unused CACHELINE_SIZE (csilvers)



git-svn-id: http://gperftools.googlecode.com/svn/trunk@126 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-12-20 18:43:38 +00:00
chappedm@gmail.com
7da0200301 Added additional SYS_mmap fixes for FreeBSD due to syscall differences between os versions (pulled from differences between FreeBSD6 and FreeBSD8 mmap implementations)
git-svn-id: http://gperftools.googlecode.com/svn/trunk@125 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-11-30 02:54:35 +00:00
csilvers
8c8329390c * Eliminate some TSAN warnings (wilsonh)
* Better fix for freebsd on x86_64 (chapp...@gmail.com)
	* Lightweight check for double-frees (blount)
	* 64-bit atomic ops for ARMv7 (dougkwan)
	* Remove dynamic annotations in some cases (dvyukov)
	* Update linux_syscall_support.h for ARM, etc (evannier)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@124 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-11-22 01:06:33 +00:00
csilvers
ca23f57679 Fix bad #include paths.
git-svn-id: http://gperftools.googlecode.com/svn/trunk@123 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-11-17 00:11:42 +00:00
csilvers
e580d78881 Some linux_syscall_support.h improvements:
* Fix socketcall functions (mec)
     * Add ARM related defs and syscall asembly code (sanek)
     * Use __arm__ instead of particular ARM arch macro (dougkwan)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@122 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-11-16 21:20:45 +00:00
csilvers
6c3eaabd73 * Check for mingw compilers that *do* define timespec
* Replace atexit() calls with global dtors; helps freebsd (csilvers)
	* Fix malloc_hook_mmap_linux for ARM (dougkwan)
	* Disalbe heap-checker under AddressSanitizer (kcc)
	* Fix bug in powerpc stacktracing (ppluzhnikov)
	* Use exponential backoff waiting for spinlocks (m3b)
	* Fix 64-bit nm on 32-bit binaries in pprof (csilvers)
	* Implement stacktrace for ARM (dougkwan)
	* Add ProfileHandlerDisallowForever (rsc)
	* Shell escape when forking in pprof (csilvers)
	* Fix freebsd to work on x86_64 (chapp...@gmail.com)
	* No longer combine overloaded functions in pprof (csilvers)
	* Fix address-normalizing bug in pprof (csilvers)
	* More consistently call abort() instead of exit() on failure (csilvers)
	* Allow NoGlobalLeaks to be safely called more than once (csilvers)
	* Beef up the documentation a bit about using libunwind (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@121 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-11-16 05:21:54 +00:00
csilvers
a6076edd17 * Get the deallocation stack trace outside the lock (sean)
* Make PageHeap dynamically allocated for leak checks (maxim)
	* BUGFIX: Fix probing of nm -f behavior in pprof (dpeng)
	* PORTING: Add "support" for MIPS cycletimer
	* BUGFIX: Fix a race with the CentralFreeList lock (sanjay)
	* Allow us to compile on OS X 10.6 and run on 10.5 (raltherr)
	* Support /pprof/censusprofile url arguments (rajatjain)
	* Die in configure when g++ is't installed (csilvers)
	* Change IgnoreObject to return its argument (nlewycky)
	* Update malloc-hook files to support more CPUs
	* Move stack trace collecting out of the mutex (taylorc)
	* BUGFIX: write our own strstr to avoid libc problems (csilvers)
	* use simple callgrind compression facility in pprof
	* print an error message when we can't run pprof to symbolize (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@120 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-10-18 20:57:45 +00:00
csilvers
c2eedce2a7 Fri Aug 26 13:29:25 2011 Google Inc. <opensource@google.com>
* google-perftools: version 1.8.3 release
	* Added back the 'pthreads unsafe early' #define, needed for FreeBSD


git-svn-id: http://gperftools.googlecode.com/svn/trunk@117 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-08-26 21:08:59 +00:00
csilvers
f633b40ba5 Thu Aug 11 15:01:47 2011 Google Inc. <opensource@google.com>
* google-perftools: version 1.8.2 release
	* Fixed calculation of patchlevel, 'make check' should all pass again


git-svn-id: http://gperftools.googlecode.com/svn/trunk@115 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-08-11 22:06:22 +00:00
csilvers
ffcdf7bf5a Fix #includes for ARM.
git-svn-id: http://gperftools.googlecode.com/svn/trunk@114 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-08-11 22:05:09 +00:00
csilvers
d2faf4646d Tue Jul 26 20:57:51 2011 Google Inc. <opensource@google.com>
* google-perftools: version 1.8 release
	* Added an #include to fix compile breakage on latest gcc's
	* Removed an extra , in the configure.ac script


git-svn-id: http://gperftools.googlecode.com/svn/trunk@112 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-07-27 04:18:01 +00:00
csilvers
100c38c1a2 Fri Jul 15 16:10:51 2011 Google Inc. <opensource@google.com>
* google-perftools: version 1.8 release
	* PORTING: (Disabled) support for patching mmap on freebsd (chapp...)
	* PORTING: Support volatile __malloc_hook for glibc 2.14 (csilvers)
	* PORTING: Use _asm rdtsc and __rdtsc to get cycleclock in windows (koda)
	* PORTING: Fix fd vs. HANDLE compiler error on cygwin (csilvers)
	* PORTING: Do not test memalign or double-linking on OS X (csilvers)
	* PORTING: Actually enable TLS on windows (jontra)
	* PORTING: Some work to compile under Native Client (krasin)
	* PORTING: deal with pthread_once w/o -pthread on freebsd (csilvers)
	* Rearrange libc-overriding to make it easier to port (csilvers)
	* Display source locations in pprof disassembly (sanjay)
	* BUGFIX: Actually initialize allocator name (mec)
	* BUGFIX: Keep track of 'overhead' bytes in malloc reporting (csilvers)
	* Allow ignoring one object twice in the leak checker (glider)
	* BUGFIX: top10 in pprof should print 10 lines, not 11 (rsc)
	* Refactor vdso source files (tipp)
	* Some documentation cleanups
	* Document MAX_TOTAL_THREAD_CACHE_SIZE <= 1Gb (nsethi)
	* Add MallocExtension::GetOwnership(ptr) (csilvers)
	* BUGFIX: We were leaving out a needed $(top_srcdir) in the Makefile
	* PORTING: Support getting argv0 on OS X
	* Add 'weblist' command to pprof: like 'list' but html (sanjay)
	* Improve source listing in pprof (sanjay)
	* Cap cache sizes to reduce fragmentation (ruemmler)
	* Improve performance by capping or increasing sizes (ruemmler)
	* Add M{,un}mapReplacmenet hooks into MallocHook (ribrdb)
	* Refactored system allocator logic (gangren)
	* Include cleanups (csilvers)
	* Add TCMALLOC_SMALL_BUT_SLOW support (ruemmler)
	* Clarify that tcmalloc stats are MiB (robinson)
	* Remove support for non-tcmalloc debugallocation (blount)
	* Add a new test: malloc_hook_test (csilvers)
	* Change the configure script to be more crosstool-friendly (mcgrathr)
	* PORTING: leading-underscore changes to support win64 (csilvers)
	* Improve debugallocation tc_malloc_size (csilvers)
	* Extend atomicops.h and cyceclock to use ARM V6+ optimized code (sanek)
	* Change malloc-hook to use a list-like structure (llib)
	* Add flag to use MAP_PRIVATE in memfs_malloc (gangren)
	* Windows support for pprof: nul and /usr/bin/file (csilvers)
	* TESTING: add test on strdup to tcmalloc_test (csilvers)
	* Augment heap-checker to deal with no-inode maps (csilvers)
	* Count .dll/.dylib as shared libs in heap-checker (csilvers)
	* Disable sys_futex for arm; it's not always reliable (sanek)
	* PORTING: change lots of windows/port.h macros to functions
	* BUGFIX: Generate correct version# in tcmalloc.h on windows (csilvers)
	* PORTING: Some casting to make solaris happier about types (csilvers)
	* TESTING: Disable debugallocation_test in 'minimal' mode (csilvers)
	* Rewrite debugallocation to be more modular (csilvers)
	* Don't try to run the heap-checker under valgrind (ppluzhnikov)
	* BUGFIX: Make focused stat %'s relative, not absolute (sanjay)
	* BUGFIX: Don't use '//' comments in a C file (csilvers)
	* Quiet new-gcc compiler warnings via -Wno-unused-result, etc (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@110 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-07-16 01:07:10 +00:00
csilvers
8c7d2289d2 * Fix typos in comment in profiler.h (nrhodes)
* #include fixes (jyrki)
        * Add missing stddef.h for ptrdiff_t (mec)
        * Add M{,un}mapReplacement hooks into MallocHook (ribrdb)
        * Force big alloc in frag test (ruemmler)
        * PERF: Increase the size class cache to 64K entries (ruemmler)
        * PERF: Increase the transfer cache by 16x (ruemmler)
        * Use windows intrinsic to get the tsc (csilvers)
        * Rename atomicops-internals-x86-msvc.h->windows.h (csilvers)
        * Remove flaky DEATH test in malloc_hook_test (ppluzhnikov)
        * Expose internal ReadStackTraces()/etc (lantran)
        * Refactored system allocator logic (gangren)
        * Include-what-you-use: cleanup tcmalloc #includes (csilvers)
        * Don't set kAddressBits to 48 on 32-bit systems (csilvers)
        * Add declaration for __rdtsc() for windows (koda)
        * Don't revert to system alloc for expected errors (gangren)
        * Add TCMALLOC_SMALL_BUT_SLOW support (ruemmler)
        * Clarify that tcmalloc stats are MiB (robinson)
        * Avoid setting cpuinfo_cycles_per_second to 0 (koda)
        * Fix frag_unittest memory calculations (ruemmler)
        * Remove support for non-tcmalloc debugallocation (blount)
	* Add malloc_hook_test (llib)
	* Change the objcopy -W test to be cross-friendly (mcgrathr)
	* Export __tcmalloc in addition to _tcmalloc, for 86_64 (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@109 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-05-19 21:37:12 +00:00
csilvers
1d30e525ae * Improve debugallocation tc_malloc_size (csilvers)
* Extend atomicops.h to use ARM V6+ optimized code (sanek)
	* Fix failure in Ranges test (ppluzhnikov)
	* Change malloc-hook to use a list-like structure (llib)
	* Update tcmalloc_regtest to use new malloc hooks (llib)
	* PARTIAL: Keep track of 'overhead' bytes in the page cache (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@108 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-03-21 21:41:55 +00:00
csilvers
6fe07cd2c0 * add a flag to use MAP_PRIVATE in memfs_malloc (gangren)
* pthread_self() is now safe to use early (ppluzhnikov)
        * windows support for pprof: nul and /usr/bin/file (csilvers)
        * fix tc_malloc_size for debugallocation (csilvers)
        * add test on strdup to tcmalloc_test (csilvers)
        * augment heap-checker to deal with no-inode maps (csilvers)
	* Get rid of -Wno-unused-result: not all gcc's support it (csilvers)
	* /bin/true -> ':', which is faster and more portable (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@107 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-03-04 23:52:33 +00:00
csilvers
75584139e4 * Enhance cycleclock on ARM v6 and above (sanek)
* Reduce object copying by using a reference (nherring)
	* Modified lock annotations a bit (lcwu)
	* Make debugallocation test a bit more forgiving (csilvers)
	* Count .dll/.dylib as shared libs in heapchecker (csilvers)
	* Disable sys_futex for arm (sanek)
	* Don't use macros as much in windows/port.h (andrey.s...)
	* Update #includes in case malloc.h is in weird places (csilvers)
	* Turn off some not-so-useful warnings in gcc 4 (csilvers)
	* Do some casting to make solaris happier about types (csilvers)
	* Disable debugallocation_test in 'minimal' mode (csilvers)
	* Rewrite debugallocation to be more modular (csilvers)
        * We can't run the heap-checker under valgrind (ppluzhnikov)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@106 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-03-02 08:10:05 +00:00
csilvers
c1abbfae80 * avoid unused-var warnings with annotalysis (lcwu)
* make focused stats %'s relative, not absolute (sanjay)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@105 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-02-19 00:11:09 +00:00
csilvers
dd3d9d969e * Fix tcmalloc_unittest on MSVC 10 in release mode (csilvers)
* Fix malloc_hook_c.h to compile with -ansi under gcc (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@104 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-02-08 01:03:37 +00:00
csilvers
7375b4f3cb Fri Feb 04 15:54:31 2011 Google Inc. <opensource@google.com>
* google-perftools: version 1.7 release
	* Reduce page map key size under x86_64 by 4.4MB (rus)
	* Remove a flaky malloc-extension test (fdabek)
	* Improve the performance of PageHeap::New (ond..., csilvers)
	* Improve sampling_test with no-inline additions/etc (fdabek)
	* 16-byte align debug allocs (jyasskin)
	* Change FillProcSelfMaps to detect out-of-buffer-space (csilvers)
	* Document the need for sampling to use GetHeapSample (csilvers)
	* Try to read TSC frequency from tsc_freq_khs (adurbin)
	* Do better at figuring out if tests are running under gdb (ppluzhnikov)
	* Improve spinlock contention performance (ruemmler)
	* Better internal-function list for pprof's /contention (ruemmler)
	* Speed up GoogleOnce (m3b)
	* Limit number of incoming/outgoing edges in pprof (sanjay)
	* Add pprof --evince to go along with --gv (csilvers)
	* Document the various ways to get heap-profiling information (csilvers)
	* Separate out synchronization profiling routines (ruemmler)
	* Improve malloc-stats output to be more understandable (csilvers)
	* Add support for census profiler in pporf (nabeelmian)
	* Document how pprof's /symbol must support GET requests (csilvers)
	* Improve acx_pthread.m4 (ssuomi, liujisi)
	* Speed up pprof's ExtractSymbols (csilvers)
	* Ignore some known-leaky (java) libraries in the heap checker (davidyu)
	* Make kHideMask use all 64 bits in tests (ppluzhnikov)
	* Clean up pprof input-file handling (csilvers)
	* BUGFIX: Don't crash if __environ is NULL (csilvers)
	* BUGFIX: Fix totally broken debugallocation tests (csilvers)
	* BUGFIX: Fix up fake_VDSO handling for unittest (ppluzhnikov)
	* BUGFIX: Suppress all large allocs when report threshold is 0 (lexie)
	* BUGFIX: mmap2 on i386 takes an off_t, not off64_t (csilvers)
	* PORTING: Add missing PERFTOOLS_DLL_DECL (csilvers)
	* PORTING: Add stddef.h to make newer gcc's happy (csilvers)
	* PORTING: Document some tricks for working under OS X (csilvers)
	* PORTING: Don't try to check valgrind for windows (csilvers)
	* PORTING: Make array-size a var to compile under clang (chandlerc)
	* PORTING: No longer hook _aligned_malloc and _aligned_free (csilvers)
	* PORTING: Quiet some gcc warnings (csilvers)
	* PORTING: Replace %PRIxPTR with %p to be more portable (csilvers)
	* PORTING: Support systems that capitalize /proc weirdly (sanek)
	* PORTING: Treat arm3 the same as arm5t in cycletimer (csilvers)
	* PORTING: Update windows logging to not allocate memory (csilvers)
	* PORTING: avoid double-patching newer windows DLLs (roger.orr)
	* PORTING: get dynamic_annotations.c to work on windows (csilvers)
	* Add pkg-config .pc files for the 5 libraries we produce (csilvers)
	* Added proper libtool versioning, so this lib will be 0.1.0 (csilvers)
	* Moved from autoconf 2.64 to 2.65


git-svn-id: http://gperftools.googlecode.com/svn/trunk@102 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-02-05 00:19:37 +00:00
csilvers
3d77cbf7d5 * Make kHideMask use all 64 bits (ppluzhnikov)
* Add new IsDebuggerAttached method (ppluzhnikov)
	* Document some tricks for maybe getting perftools to work on OS X
	* Redo file-top pprof commands (csilvers)
	* Clean up pprof input-file handling (csilvers)
	* 16-byte align debug allocs (jyasskin)
	* Ignore JVM memory leakage in the heap checker (davidyu, kkurimoto)
	* Better internal-function list for contentionz (ruemmler)
	* mmap2 on i386 takes an off_t, not an off64_t (csilvers)
	* Fix up fake-VDSO handling for unittest (ppluzhnikov)
	* Don't try to check valgrind for windows (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@101 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2011-01-19 21:37:15 +00:00
csilvers
a0a2ff3b49 * PORTING: Add PERFTOOLS_DLL_DECL to malloc_hook_c.h (csilvers)
* Add new .h files to Makefile (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@100 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-11-24 00:33:20 +00:00
csilvers
3014cf142e * Suppress all large allocs when report threshold==0
* Clarified meaning of various malloc stats
	* Change from ATTRIBUTED_DEPRECATED to comments
	* Make array-size a var to compile under clang
	* Reduce page map key size under x86_64 by 4.4MB
	* Added full qualification to MemoryBarrier
	* Support systems that capitalize /proc weirdly
	* Avoid gcc warning: exporting type in unnamed ns
	* Add some dynamic annotations for gcc attributes
	* Add support for census profiler in pprof
	* Speed up pprof's ExtractSymbols
	* Speed up GoogleOnce
	* Add pkg-config (.pc) files
	* Detect when __environ exists but is NULL
	* Improve spinlock contention performance
	* Add GetFreeListSizes
	* Improve sampling_test, eg by adding no-inline
	* Relax malloc_extension test-check for big pages
	* Add proper library version number information
	* Update from autoconf 2.64 to 2.65
	* Better document how to write a server that works with pprof
	* Change FillProcSelfMaps to better handle out-of-space
	* No longer hook _aligned_malloc/free in windows
	* Handle function-forwarding in DLLs when patching (in windows)
	* Update .vcproj files that had wrong .cc files in them (!)
	* get rid of unnecessary 'size < 0'
	* fix comments a bit in sysinfo.cc
	* another go at improving malloc-stats output
	* fix comment typo in profiler.cc
	* Add a few more thread annotations
	* Try to read TSC frequency from 'tsc_freq_khz'
	* Fix annotalysis/TSAN incompatibility
	* Add pprof --evince to go along with --gv
	* Document need for sampling to use GetHeapSample
	* Fix flakiness in malloc_extension_test
	* Separate out synchronization profiling routines


git-svn-id: http://gperftools.googlecode.com/svn/trunk@99 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-11-18 01:07:25 +00:00
csilvers
682ff7da12 Thu Aug 5 12:48:03 PDT 2010
* google-perftools: version 1.6 release
	* Add tc_malloc_usable_size for compatibility with glibc (csilvers)
	* Override malloc_usable_size with tc_malloc_usable_size (csilvers)
	* Default to no automatic heap sampling in tcmalloc (csilvers)
	* Add -DTCMALLOC_LARGE_PAGES, a possibly faster tcmalloc (rus)
	* Make some functions extern "C" to avoid false ODR warnings (jyasskin)
	* pprof: Add SVG-based output (rsc)
	* pprof: Extend pprof --tools to allow per-tool configs (csilvers)
	* pprof: Improve support of 64-bit and big-endian profiles (csilvers)
	* pprof: Add interactive callgrind suport (weidenri...)
	* pprof: Improve address->function mapping a bit (dpeng)
	* Better detection of when we're running under valgrind (csilvers)
	* Better CPU-speed detection under valgrind (saito)
	* Use, and recommend, -fno-builtin-malloc when compiling (csilvers)
	* Avoid false-sharing of memory between caches (bmaurer)
	* BUGFIX: Fix heap sampling to use correct alloc size (bmauer)
	* BUGFIX: Avoid gcc 4.0.x bug by making hook-clearing atomic (csilvers)
	* BUGFIX: Avoid gcc 4.5.x optimization bug (csilvers)
	* BUGFIX: Work around deps-determining bug in libtool 1.5.26 (csilvers)
	* BUGFIX: Fixed test to use HAVE_PTHREAD, not HAVE_PTHREADS (csilvers)
	* BUGFIX: Fix tls callback behavior on windows when using wpo (wtc)
	* BUGFIX: properly align allocation sizes on Windows (antonm)
	* BUGFIX: Fix prototypes for tcmalloc/debugalloc wrt throw() (csilvers)
	* DOC: Updated heap-checker doc to match reality better (fischman)
	* DOC: Document ProfilerFlush, ProfilerStartWithOptions (csilvers)
	* DOC: Update docs for heap-profiler functions (csilvers)
	* DOC: Clean up documentation around tcmalloc.slack_bytes (fikes)
	* DOC: Renamed README.windows to README_windows.txt (csilvers)
	* DOC: Update the NEWS file to be non-empty (csilvers)
	* PORTING: Fix windows addr2line and nm with proper rc code (csilvers)
	* PORTING: Add CycleClock and atomicops support for arm 5 (sanek)
	* PORTING: Improve PC finding on cygwin and redhat 7 (csilvers)
	* PORTING: speed up function-patching under windows (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@97 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-08-05 20:36:47 +00:00
csilvers
488eee994d Oops, I thought I had done this last time, but maybe not. Submit the
name change.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@96 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-06-23 16:42:31 +00:00
csilvers
cb7393cbe2 * Default to not sampling in tcmalloc (csilvers)
* Add -DTCMALLOC_LARGE_PAGES: better perf for some workloads (rus)
	* Extend pprof --tools to allow per-tool configs (csilvers)
	* Have STL_Allocator pass on # bytes to free (richardfang)
	* Add a header guard to config.h (csilvers)
	* DOC: Clean up documentation around tcmalloc.slack_bytes (fikes)
	* DOC: Document ProfilerFlush, ProfilerStartWithOptions (csilvers)
	* PORTING: Work around a gcc 4.5.0 optimization bug (csilvers)
	* PORTING: Use -fno-builtin-malloc and friends when compiling tcmalloc
	* PORTING: Define _WIN32_WINNT high enough for mingw (csilvers)
	* PORTING: Work around libtool bug getting deps wrong in some cases
	* Update README.windows to emphasize $IncludeDir more (csilvers)
	* Rename README.windows to README_windows.txt (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@95 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-06-21 15:59:56 +00:00
csilvers
d8c0276168 * Update docs for heap-profiler fns (csilvers)
* In pprof, accept URLs without ports but with http:// (rsc)
	* Refactor sizeclass handling in tcmalloc (bmaurer)
	* Always log failed calls to FindAllocDetails (mec)
	* Clarify comments for ProfilerStart* (malcolmr)
	* Add #include guards to stacktrace_win32-inl.h (glider)
	* Add ANNOTATE_ENABLE_RACE_DETECTION(enable) (kcc)
	* Make a contentful NEWS file (csilvers)
	* Fix addr2line --help (which pprof relies on) for windows (csilvers)
	* Fixes a bug in tcmalloc's TLS callback on windows -static (wtc)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@94 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-05-07 21:53:24 +00:00
csilvers
b0fe220d50 * Fix pthread_once extern declarations (willchan)
* Add missing closing brace that resulted in compile failure (willchan)
	* Handle closed stdin/out/err properly when forking (glider)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@93 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-04-22 17:29:02 +00:00
csilvers
21c65ecb03 * Speed up IsSymbolizedProfile by checking for NUL (csilvers)
* Fix heap sampling to use correct alloc size (bmaurer)
	* Make pprof ignore tc_new{,array}_nothrow (csilvers)
        * PORTING: Have IsHeapProfilerRunning return an int, for C (csilvers)
        * Avoid false-sharing of memory between caches (bmaurer)
        * Fix some variable shadowing (rt)
        * SVG-based ouptut in pprof; also, wget->curl (rsc)
        * Allow arbitrary prefix before obvious handler (rsc)
        * Advertise when using libunwind (ppluzhnikov)

Also, the install file seems to have reverted back to the default at
some previous point in time (autotools will do that occasionally).
Change that back to have the perftools-specific text in there.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@92 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-04-12 21:18:48 +00:00
csilvers
92beff8843 * Add new (std::nothrow) to debugallocation (corrado)
* Add a flag to ingore unaligned-ptr leaks (archanakannan)
	* PORTING: Add get-pc capabilities for a new OS (csilvers)
	* Don't register malloc extension under valgrind (csilvers)
	* Fix throw specs for our global operator new (chandlerc)
	* PORTING: link to instructions on windows static overrides (mbelshe)
	* Fix prototype differences in debugalloc (chandlerc, csilvers, wan)
	* Change pprof to handle big-endian input files (csilvers)
	* Properly align allocation sizes on Windows (antonm)
	* Improve IsRunningOnValgrind, using valgrind.h (csilvers, kcc)
	* Improve the accuracy of system_alloc actual_size (csilvers)
	* Add interactive callgrind support to pprof (weidenri...)
	* Fix off-by-one problems when symbolizing in pprof (dpeng)
	* Be more permissive in allowed library names, in pprof (csilvers)
	* PORTING: Fix pc_from_ucontext to handle cygwin and redhat7 (csilvers)
	* Fix stacktrace to avoid inlining (ppluzhnikov)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@91 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-03-23 20:39:55 +00:00
csilvers
23dd124970 * Speed up patching by not patching modules that are already loaded
git-svn-id: http://gperftools.googlecode.com/svn/trunk@88 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-02-11 01:32:42 +00:00
csilvers
8f8a010cab Oops, I submitted the wrong version of patch_functions.cc with the
previous commit.  This is really the one that goes with release 1.5.
.
?\027[D

git-svn-id: http://gperftools.googlecode.com/svn/trunk@86 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-01-20 23:00:51 +00:00
csilvers
fef86cfeba * google-perftools: version 1.5 release
* Add tc_set_new_mode (willchan)
        * Make memalign functions + realloc respect tc_set_new_mode (willchan)
        * Add ReleaseToSystem(num_bytes) (kash)
        * Handle zero-length symbols a bit better in pprof (csilvers)
        * Prefer __environ to /proc/self/environ in cpu profiler (csilvers)
        * Add HEAP_CHECK_MAX_LEAKS flag to control #leaks to report (glider)
        * Add two new numeric pageheap properties to MallocExtension (fikes)
        * Print alloc size when mmap fails (hakon)
        * Add ITIMER_REAL support to cpu profiler (csilvers, nabeelmian)
        * Speed up symbolizer in heap-checker reporting (glider)
        * Speed up futexes with FUTEX_PRIVATE_FLAG (m3b)
        * Speed up tcmalloc but doing better span coalescing (sanjay)
        * Better support for different wget's and addr2maps in pprof (csilvres)
        * Implement a nothrow version of delete and delete[] (csilvers)
        * BUGFIX: fix a race on module_libcs[i] in windows patching (csilvers)
        * BUGFIX: Fix debugallocation to call cpp_alloc for new (willchan)
        * BUGFIX: A simple bugfix for --raw mode (mrabkin)
        * BUGFIX: Fix C shims to actually be valid C (csilvers)
        * BUGFIX: Fix recursively-unmapped-region accounting (ppluzhnikov)
        * BUGFIX: better distinguish real and fake vdso (ppluzhnikov)
        * WINDOWS: replace debugmodule with more reliable psai (andrey)
        * PORTING: Add .bundle as another shared library extension (csilvers)
        * PORTING: Fixed a typo bug in the ocnfigure PRIxx m4 macro (csilvers)
        * PORTING: Augment sysinfo to work on 64-bit OS X (csilvers)
        * PORTING: Use sys/ucontext.h to fix compiing on OS X 10.6 (csilvers)
        * PORTING: Fix sysinfo libname reporting for solaris x86 (jeffrey)
        * PORTING: Use libunwind for i386 when using --omitfp (ppluzhnikov)

NOTE: This release uses an older version of src/windows/patch_functions.cc
because I decided the latest optimizations were not well enough tested
for a release.  I'll aim to get them into next release.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@84 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-01-20 22:47:29 +00:00
csilvers
63b8d63beb * PORTING: Revised patch_functions to avoid deadlock (csilvers, andrey)
* PORTING: Revised patch_functions to speed up .dll loads (csilvers)
	* PORTING: Build and run sampling_test for windows (csilvers)
	* Correctly init tc structs even when libc isn't patched (csilvers)
	* Make low-level allocs async-signal-safe (saito)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@83 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-01-14 16:26:05 +00:00
csilvers
eeeacd5ec4 * PORTING: Fix a race condition in windows patching
* PORTING: Use Psapi instead of debugmodule to get windows module info


git-svn-id: http://gperftools.googlecode.com/svn/trunk@82 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2010-01-06 00:34:23 +00:00
csilvers
6e7479331c * Fix a memory leak with repeated Patch() calls on windows (csilvers)
* Fix a bug when we re-Patch() a previously unpatched lib (csilvers)
	* Add .bundle as another .so extension in pprof (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@81 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-12-15 01:41:30 +00:00
csilvers
1d981b6997 * Make memalign && posix_memalign respect tc_set_new_mode (willchan)
* Fix windows patch functions to respect tc_set_new_mode (willchan)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@80 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-12-02 21:42:10 +00:00
csilvers
a94d5f7974 * Prefer __environ to /proc/self/environ (csilvers)
* Add HEAP_CHECK_MAX_LEAKS envvar (glider)
	* BUGFIX: debugallocation now calls cpp_alloc for new (willchan)
	* BUGFIX: tc_set_new_mode() respected for realloc and calloc (willchan)
	* BUGFIX: fix opt-mode maybe-crash on debugallocation_test (csilvers)
	* Print alloc size when mmap fails (hakon)
	* Add ITIMER_REAL support (csilvers, nabeelmian)
	* BUGFIX: correctly report double-frees (csilvers)
	* Export tc_set_new_mode() from the .h file (willchan)
	* Restructure Symbolize to make it more efficient (glider)
	* PORTING: Augment sysinfo to work on 64-bit OS X (csilvers)
	* Add two numeric pageheap properties to MallocExtension (fikes)
	* PORTING: Use libunwind for i386 when using --omitfp (ppluzhnikov)
	* Add ReleaseToSystem(num_bytes) (kash)
	* Provide correct library filenames under solaris (jeffrey)
	* BUGFIX: simple fix in pprof --raw mode (mrabkin)
	* PORTING: Prefer sys/ucontext.h to fix OS 10.6 builds (csilvers)
	* Improve support for inlined functions in pprof (sanjay)
	* Update wget code to not use keepalive (mrabkin, csilvers)
	* PORTING: correctly handle x86_64 machines that use fp's (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@79 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-12-02 18:15:13 +00:00
csilvers
5b80f01df1 * Replace usleep() and poll() with nanosleep() (glider)
* Document problems with _recalloc (csilvers)
	* Detect when x86_64 doesn't turn off frame pointers (csilvers)
	* Fix sysinfo.cc/etc to work with 64-bit os x (csilvers)
	* BUGFIX: Use __TEXT instead of __DATA to store tcmalloc fns (csilvers)
	* Added two numeric pageheap properties to tcmalloc (fikes)
	* Support for mallocranges stats visualization (sanjay)
	* Use libunwind for i386, not just x86_64 (ppluzhnikov)
	* Add ReleaseToSystem(num_bytes) (kash)
	* Provide corect library filenames under solaris (jeffrey)
	* BUGFIX: a simple bug in pprof --raw mode (mrabkin)
	* Prfer sys/ucontext.h to ucontext.h, to fix OS X 10.6 (csilvers)
	* Improve supprot for inlined functions in pprof (sanjay)
	* Document inaccuracies in profiling mmap calls (csilvers)
	* Update wget code to not use keepalive (mrabkin, csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@78 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-11-10 16:24:57 +00:00
csilvers
25eed16e1b * Fix Symbolize() to call pprof once, rather than once/symbol (glider)
* Fix unsetting of hooks before forking, in debug mode (maxim)
	* Add some documention for pmuprofile (aruns)
	* Speed up futex with FUTEX_PRIVATE_FLAG (m3b)
	* Fix os x 10.6: prefer sys/ucontext.h to ucontext.h (csilvers)
	* Fix C shims to be actually valid C: malloc_extension/etc (csilvers)
	* Fix a longtime memset bug (csilvers)
	* Implement nothrow versions of delete (csilvers)
	* Fix recursively-unmapped-region accounting (ppluzhnikov)
	* Better distinguish between real and fake VDSO (ppluzhnikov)
	* Modify span coalescing to improve performance (sanjay)
	* WINDOWS: Remove unnecessary lock around VirtualAlloc (mbelshe)
	* Remove performance tests for ptmalloc2 (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@77 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-10-27 17:30:52 +00:00
csilvers
19dfa9e373 Thu Sep 10 13:51:15 2009 Google Inc. <opensource@google.com>
* google-perftools: version 1.4 release
	* Add debugallocation library, to catch memory leaks, stomping, etc
	* Add --raw mode to allow for delayed processing of pprof files
	* Use less memory when reading CPU profiles
	* New environment variables to control kernel-allocs (sbrk, memfs, etc)
	* Add MarkThreadBusy(): performance improvement
	* Remove static thread-cache-size code; all is dynamic now
	* Add new HiddenPointer class to heap checker
	* BUGFIX: pvalloc(0) allocates now (found by new debugalloc library)
	* BUGFIX: valloc test (not implementation) no longer overruns memory
	* BUGFIX: GetHeapProfile no longer deadlocks
	* BUGFIX: Support unmapping memory regions before main
	* BUGFIX: Fix some malloc-stats formatting
	* BUGFIX: Don't crash as often when freeing libc-allocated memory
	* BUGFIX: Deal better with incorrect PPROF_PATH when symbolizing
	* BUGFIX: weaken new/delete/etc in addition to malloc/free/etc
	* BUGFIX: Fix return value of GetAllocatedSize
	* PORTING: Fix mmap-#define problem on some 64-bit systems
	* PORTING: Call ranlib again (some OS X versions need it)
	* PORTING: Fix a leak when building with LLVM
	* PORTING: Remove some unneeded bash-ishs from testing scripts
	* WINDOWS: Support library unloading as well as loading
	* WINDOWS/BUGFIX: Set page to 'xrw' instead of 'rw' when patching


git-svn-id: http://gperftools.googlecode.com/svn/trunk@76 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-09-11 18:42:32 +00:00
csilvers
2197cc6702 Tue Jun 9 18:19:06 2009 Google Inc. <opensource@google.com>
* google-perftools: version 1.3 release
	* Provide our own name for memory functions: tc_malloc, etc (csilvers)
	* Weaken memory-alloc functions so user can override them (csilvers)
	* Remove meaningless delete(nothrow) and delete[](nothrow) (csilvers)
	* BUILD: replace clever libtcmalloc/profiler.a with a new .a (csilvers)
	* PORTING: improve windows port  by using google spinlocks (csilvers)
	* PORTING: Fix RedHat 9 memory allocation in heapchecker (csilvers)
	* PORTING: Rename OS_WINDOWS macro to PLATFORM_WINDOWS (mbelshe)
	* PORTING/BUGFIX: Make sure we don't clobber GetLastError (mbelshe)
	* BUGFIX: get rid of useless data for callgrind (weidenrinde)
	* BUGFIX: Modify windows patching to deadlock sometimes (csilvers)
	* BUGFIX: an improved fix for hook handling during fork (csilvers)
	* BUGFIX: revamp profiler_unittest.sh, which was very broken (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@74 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-06-10 02:04:26 +00:00
csilvers
104bf697fb Use the google spinlock code instead of the built-in windows code.
The main benefit for perftools is that google spinlocks allow for
link-time (static) initialization, which we had to simulate before,
yielding bugs and worse performance.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@73 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-05-18 22:50:20 +00:00
csilvers
ad03b009ef In the case of windows with HAS_EXCEPTIONS turned off we weren't able
to use the std::set_new_handler correctly.  Rework the #ifdefs to
allow use of the std_new_handler, but ignore the exceptions.

Patch submitted by mbelshe.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@72 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-04-25 01:01:23 +00:00
csilvers
1894763f57 Make sure we don't clobber GetLastError() (for windows).
git-svn-id: http://gperftools.googlecode.com/svn/trunk@71 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-04-22 22:53:41 +00:00