Commit Graph

162 Commits

Author SHA1 Message Date
Tulio Magno Quites Machado Filho
7822b5b0b9 Stop using glibc malloc hooks
glibc deprecated malloc hooks in 2011 and will be removing them soon.
These hooks aren't safe and aren't necessary when the malloc API is
fully exported.
2016-08-24 22:36:04 -07:00
Bryan Chan
bf8eacce69 Add support for 31-bit s390; merge linux_syscall_support.h changes from upstream. 2016-06-25 17:12:09 -07:00
Aliaksey Kandratsenka
db8d483609 Autogenerate ChangeLog from git on make dist
This fixes build breakage introduced in preceding commit for issue #796.
2016-06-25 16:31:29 -07:00
Aliaksey Kandratsenka
632de2975e bumped version up to 2.5 2016-03-12 11:59:05 -08:00
Aliaksey Kandratsenka
6ff86ff6a7 bumped version to 2.4.91 for 2.5rc2 2016-03-05 17:12:04 -08:00
Aliaksey Kandratsenka
782165fa7f build sized delete aliases even when sized-delete is disabled
In this case we alias to regular delete. This is helpful because if we
don't override sized delete, then apps will call version in libstdc++
which delegates calls to regular delete, which is slower than calling
regular delete directly.
2016-03-05 17:12:04 -08:00
Aliaksey Kandratsenka
06811b3ae4 disable dynamic sized delete support by default
IFUNC relocations don't support our advanced use case (calling
application function or looking up environment variable).

Particularly, it doesn't work on PPC and arm when tcmalloc is linked
with -Wl,-z,now. See RedHat's bugzilla ticket
https://bugzilla.redhat.com/show_bug.cgi?id=1312462 for more details.
2016-03-05 17:11:39 -08:00
Aliaksey Kandratsenka
2804b7cfee bumped version to 2.5rc 2016-02-21 23:09:15 -08:00
Aliaksey Kandratsenka
4f3410e759 enable emergency malloc by default on arm when using libunwind
Because by default libunwind on arm does fopen which mallocs which will
deadlock unless we enable emergency malloc.
2016-02-21 13:57:27 -08:00
Aliaksey Kandratsenka
7f12051dbe implemented emergency malloc
Emergency malloc is enabled for cases when backtrace capturing needs to
call malloc. In this case, we enable emergency malloc just prior to
calling such code and disable it after it is done.
2016-02-21 10:53:45 -08:00
Aliaksey Kandratsenka
19903e6f15 drop detection of sys/malloc.h and malloc/malloc.h
Which we don't really need.
2016-02-20 22:07:48 -08:00
Aliaksey Kandratsenka
9095ed0840 implemented stacktrace capturing via libgcc's C++ ABI function
Particularly _Unwind_Backtrace which seems to be gcc extension.

This is what glibc's backtrace is commonly is using.

Using _Unwind_Backtrace directly is better than glibc's backtrace, since
it doesn't call into dlopen. While glibc does dlopen when it is built as
shared library apparently to avoid link-time dependency on libgcc_s.so
2016-02-20 20:34:50 -08:00
Aliaksey Kandratsenka
08e034ad59 Detect working ifunc before enabling dynamic sized delete support
Particularly, on arm-linux and x86-64-debian-kfreebsd compilation fails
due to lack of support for ifunc. So it is necessary to test at
configure time whether ifunc is supported.
2016-02-06 16:21:53 -08:00
Bryan Chan
644a6bdbdb Add support for Linux s390x
This resolves gperftools/gperftools#761.
2016-02-04 20:15:26 -05:00
Aliaksey Kandratsenka
6b3e6ef5e0 don't retain compatibility with old docdir behavior
Since it is not really needed. And since we don't care about too ancient
autoconfs.
2016-01-24 19:45:16 -08:00
Chris Mayo
ccffcbd9e9 support use of configure --docdir argument
Value of docdir was being overridden in Makefile.

Retain compatibility with old Autoconf versions that do not provide
docdir.
2015-12-27 18:55:05 +00:00
Aliaksey Kandratsenka
6fdfc5a7f4 implemented enabling sized-delete support at runtime
Under gcc 4.5 or greater we're using ifunc function attribute to resolve
sized delete operator to either plain delete implementation (default) or
to sized delete (if enabled via environment variable
TCMALLOC_ENABLE_SIZED_DELETE).
2015-11-21 19:03:03 -08:00
Aliaksey Kandratsenka
a9db0ae516 implemented (disabled by default) sized delete support
gcc 5 and clang++-3.7 support sized deallocation from C++14. We are
taking advantage of that by defining sized versions of operator delete.

This is off by default so that if some existing programs that define own
global operator delete without sized variant are not broken by
tcmalloc's sized delete operator.

There is also risk of breaking exiting code that deletes objects using
wrong class (i.e. base class) without having virtual destructors.
2015-11-21 17:43:42 -08:00
Aliaksey Kandratsenka
88686972b9 pass -fsized-deallocation to gcc 5
Otherwise it gives warning for declaration of sized delete operator.
2015-11-21 17:43:42 -08:00
Aliaksey Kandratsenka
8cc75acd1f correctly test for -Wno-unused-result support
gcc is only giving warning for unknown -Wno-XXX flags so test never
fails on gcc even if -Wno-XXX is not supported. By using
-Wunused-result we're able to test if gcc actually supports it.

This fixes issue #703.
2015-11-21 17:43:42 -08:00
Aliaksey Kandratsenka
689e4a5bb4 bumped version to 2.4 2015-01-10 12:26:51 -08:00
Aliaksey Kandratsenka
3f5f1bba0c bumped version to 2.4rc 2014-12-28 18:28:18 -08:00
Raphael Moreira Zinsly
b8b027d09a Make PPC64 use 64K of internal page size for tcmalloc by default
This patch set the default tcmalloc internal page size to 64K when
built on PPC.
2014-12-23 10:51:54 -08:00
Raphael Moreira Zinsly
3f55d874be New configure flags to set the alignment and page size of tcmalloc
Added two new configure flags, --with-tcmalloc-pagesize and
--with-tcmalloc-alignment, in order to set the tcmalloc internal page
size and tcmalloc allocation alignment without the need of a compiler
directive and to make the choice of the page size independent of the
allocation alignment.
2014-12-23 10:51:51 -08:00
Aliaksey Kandratsenka
463a619408 bumped version to 2.3 2014-12-07 12:53:35 -08:00
Raphael Moreira Zinsly
8eb4ed785a Added option to disable libunwind linking
This patch adds a configure option to enable or disable libunwind linking.
The patch also disables libunwind on ppc by default.
2014-11-27 12:51:33 -08:00
Aliaksey Kandratsenka
e7d5e512b0 bumped version to 2.3rc 2014-11-02 20:13:33 -08:00
Aliaksey Kandratsenka
1108d83cf4 implemented cpu-profiling mode that profiles threads separately
Default mode of operation of cpu profiler uses itimer and
SIGPROF. This timer is by definition per-process and no spec defines
which thread is going to receive SIGPROF. And it provides correct
profiles only if we assume that probability of picking threads will be
proportional to cpu time spent by threads.

It is easy to see, that recent Linux (at least on common SMP hardware)
doesn't satisfy that assumption. Quite big skews of SIGPROF ticks
between threads is visible. I.e. I could see as big as 70%/20%
division instead of 50%/50% for pair of cpu-hog threads. (And I do see
it become 50/50 with new mode)

Fortunately POSIX provides mechanism to track per-thread cpu time via
posix timers facility. And even more fortunately, Linux also provides
mechanism to deliver timer ticks to specific threads.

Interestingly, it looks like FreeBSD also has very similar facility
and seems to suffer from same skew.  But due to difference in a way
how threads are identified, I haven't bothered to try to support this
mode on FreeBSD.

This commit implements new profiling mode where every thread creates
posix timer which tracks thread's cpu time. Threads also also set up
signal delivery to itself on overflows of that timer.

This new mode requires every thread to be registered in cpu
profiler. Existing ProfilerRegisterThread function is used for that.

Because registering threads requires application support (or suitable
LD_PRELOAD-able wrapper for thread creation API), new mode is off by
default. And it has to be manually activated by setting environment
variable CPUPROFILE_PER_THREAD_TIMERS.

New mode also requires librt symbols to be available. Which we do not
link to due to librt's dependency on libpthread.  Which we avoid due
to perf impact of bringing in libpthread to otherwise single-threaded
programs. So it has to be either already loaded by profiling program
or LD_PRELOAD-ed.
2014-11-02 18:29:55 -08:00
Aliaksey Kandratsenka
714bd93e42 drop workaround for too old redhat 7
Note that this is _not_ RHEL7 but original redhat 7 from early 2000s.
2014-11-02 18:29:55 -08:00
Aliaksey Kandratsenka
2e90b6fd72 bumped version to 2.2.1 2014-06-21 15:52:34 -07:00
Aliaksey Kandratsenka
846b775dfa bumped version to 2.2 2014-05-03 18:01:12 -07:00
Aliaksey Kandratsenka
facd7e83b3 bumped version to 2.1.90 2014-04-19 13:16:20 -07:00
Aliaksey Kandratsenka
125e5ed58b don't enable backtrace() for stacktrace capturing by default
Because we don't yet have a treatment for deadlocks that are caused by
(recursive) use of malloc from within that facility.
2014-04-12 18:05:37 -07:00
Aliaksey Kandratsenka
8b2e5ee831 issue-614: use tc_memalign in ReallocAfterMemalloc test
Because some OSes lack plain memalign. And we really need to test our
implementation which is always available via tc_malloc.
2014-04-07 12:29:35 -07:00
Aliaksey Kandratsenka
fe56631426 unbreak building with libunwind
Caused by premature merging of previous patch.

When we're searching for backtrace in libexecinfo and don't find it,
we should not reset UNWIND_LIBS to empty value.

Correct fix is to first search for backtrace in libunwind and then to
search for it in libexecinfo.
2014-03-01 12:45:03 -08:00
Thomas Klausner
9117996149 Look for backtrace() in libexecinfo as well.
Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
2014-03-01 11:34:04 -08:00
Thomas Klausner
fd3379a213 Fix unportable test(1) construct.
Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
2014-03-01 11:29:22 -08:00
Thomas Klausner
a7223c2a14 Test for memalign in configure.ac. Disable a test that uses memalign if it is not found.
Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
2014-03-01 11:26:27 -08:00
Aliaksey Kandratsenka
7be2edfe7f issue-525: only warn if --enable-frame-pointers are not given
This fixes issue when frame pointers warning is given even if frame
pointers are enabled
2014-02-22 12:14:11 -08:00
Aliaksey Kandratsenka
b5e584dfdc issue-525: warn user on lack of libunwind but don't fail
Because we now have access to other backtrace capturing method(s) at
runtime.
2014-02-16 19:41:37 -08:00
Aliaksey Kandratsenka
90ba15d1f2 issue-604: implement runtime-selectable stacktrace capturing
We're now building all supported stacktrace capturing methods. And
there's now a way to select at runtime which method is used.
2014-02-16 19:22:06 -08:00
Aliaksey Kandratsenka
6de1f38b68 chmod -x configure.ac
Because configure.ac is not really executable. And because it
interferes with tab completion of configure.
2014-02-08 14:09:44 -08:00
Aliaksey Kandratsenka
e98371540d eliminated gcc warning on __thread configure snippet
gcc complained about lack of matching ' in code that force-fails
__thread detection on mingw
2014-01-11 16:28:15 -08:00
xiaoyur347
60b12171bc fix GCC version detect for platforms other than X86/X64
[alk@tut.by: commented why we're disabling __thread not just for x86]

Signed-off-by: Aliaksey Kandratsenka <alk@tut.by>
2014-01-11 16:24:59 -08:00
Aliaksey Kandratsenka
4c274b9e20 issue-592: handle recent mingw with C++11 threads
Somehow it's c++ headers (like string) define pthread symbols without
even us asking for. That breaks old assumption that pthread symbols
are not available on windows.

In order to fix that we detect this condition in configure.ac and
avoid defining windows versions of pthread symbols.
2014-01-04 18:28:36 -08:00
Aliaksey Kandratsenka
f8a2163b51 Added AM_MAINTAINER_MODE to disable Makefile rebuild rules
Some people might want to check-in unpacked result on make dist into
git. But because git doesn't preserve timestamps it would cause those
automatic "auto-retool" rules to trigger. Sometimes even causing build
breakage if system's autotools version don't match autotools version
used for make dist.

Easiest way around this problem is to simply disable those unnecessary
"maintainer" rebuild rules. Especially given that source is always
freely available via git and therefore there should be no reason to
regenerate any of autotools products in 'make dist'-produced sources.
2013-12-06 12:29:14 -08:00
Aliaksey Kandratsenka
f216317a87 use AC_PROG_LIBTOOL to summon libtool
So that older autotools of rhel 5 can be used
2013-11-16 15:44:52 -08:00
Aliaksey Kandratsenka
819a2b051f issue-413: disable __thread usage on OSX
Because it was found that __thread variables access is compiled into
calls to tlv_get_addr which was found to call malloc. Because we
actually use thread-local storage from inside malloc it leads to stack
overflow. So we'll continue using pthreads API for that which is known
to work on OSX.
2013-08-29 19:41:25 +03:00
Aliaksey Kandratsenka
4380908093 lowered autoconf requirement
Autoconf 2.59 works. And most notably it will not affect our releases
which are all prepared with newer autoconf.
2013-08-29 19:40:51 +03:00
alkondratenko@gmail.com
674fcd94a8 bump version to 2.1
git-svn-id: http://gperftools.googlecode.com/svn/trunk@236 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-07-30 09:14:20 +00:00
alkondratenko@gmail.com
60ab178aeb bump version number for 2.1rc
git-svn-id: http://gperftools.googlecode.com/svn/trunk@225 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-07-20 21:37:01 +00:00
alkondratenko@gmail.com
d8e12e94ea issue-549: handle most recent mingw that has sleep and nanosleep
I.e. we have to check their presence in configure and in case of their
presence we have to avoid re-defining then in window's port.h



git-svn-id: http://gperftools.googlecode.com/svn/trunk@223 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-07-20 21:35:14 +00:00
alkondratenko@gmail.com
7896dcb9db issue-504: disable tls on mingw
Which is known to fail.



git-svn-id: http://gperftools.googlecode.com/svn/trunk@207 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-03-11 19:16:47 +00:00
alkondratenko@gmail.com
8bf4522aa5 issue-504: do not define HAVE_MMAP on mingw
Because, clearly, windows doesn't have one



git-svn-id: http://gperftools.googlecode.com/svn/trunk@206 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-03-11 19:15:46 +00:00
alkondratenko@gmail.com
05b100d9d4 issue-503: removed checked in configure and other auto* products
So that it's easier to contribute and review contributions.

People wishing to build gperftools from svn checkout should run
autogen.sh first which will create those files and then ./configure &&
make as usual

INSTALL file has updated instructions too.



git-svn-id: http://gperftools.googlecode.com/svn/trunk@200 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-03-11 18:32:05 +00:00
chappedm@gmail.com
bd3b3a7e9a issue-496: Fixes an issue where tcmalloc might deadlock in a thread calling fork
tcmalloc contained a bug where some internal locks were left in a undefined state
between fork, leaving the child process in a deadlock state. This patch fixes the
issue by introducing stricter locking between the parent nd child while forking.


git-svn-id: http://gperftools.googlecode.com/svn/trunk@196 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2013-03-10 20:17:21 +00:00
chappedm@gmail.com
84b983c8d4 issue-465: Adding automagic support for __builtin_expect
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
2012-12-22 20:06:47 +00:00
chappedm@gmail.com
86a55316ba issue-449: Disables mmap check when cross compiling since it is meaningless anyways
git-svn-id: http://gperftools.googlecode.com/svn/trunk@179 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2012-11-04 19:12:42 +00:00
chappedm@gmail.com
1363bc6955 issue-475: Re-applying changes made originally for r150 and r151
- 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
2012-11-04 17:21:00 +00:00
chappedm@gmail.com
1243295cdc issue-475: Amend of r151 and r150
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
2012-11-04 15:59:08 +00:00
chappedm@gmail.com
c566266b10 issue-480: duplicate of issue-385 fixed in r150 however some of the comments 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
2012-11-03 14:13:21 +00:00
chappedm@gmail.com
cd723b43ff issue-385: updates to automake to pick up the explicit setting of the -fno-omit-frame-pointer for i386
git-svn-id: http://gperftools.googlecode.com/svn/trunk@151 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2012-05-16 12:24:13 +00:00
csilvers
4e9432c509 Fri Feb 03 15:40:45 2012 Google Inc. <google-perftools@googlegroups.com>
* gperftools: version 2.0
	* Renamed the project from google-perftools to gperftools (csilvers)
	* Renamed the .deb/.rpm packagse from google-perftools to gperftools too
	* Renamed include directory from google/ to gperftools/ (csilvers)
	* Changed the 'official' perftools email in setup.py/etc
	* Renamed google-perftools.sln to gperftools.sln
	* PORTING: Removed bash-isms & grep -q in heap-checker-death_unittest.sh
	* Changed copyright text to reflect Google's relinquished ownership


git-svn-id: http://gperftools.googlecode.com/svn/trunk@142 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2012-02-04 00:07:36 +00:00
csilvers
0afb078b34 Tue Jan 31 10:43:50 2012 Google Inc. <opensource@google.com>
* google-perftools: version 1.10 release
	* 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@135 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2012-01-31 19:11:26 +00:00
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
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
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
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
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
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
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
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
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
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
beb6a9a183 Fri Apr 17 16:40:48 2009 Google Inc. <opensource@google.com>
* google-perftools: version 1.2 release
	* Allow large_alloc_threshold=0 to turn it off entirely (csilvers)
	* Die more helpfully when out of memory for internal data (csilvers)
	* Refactor profile-data gathering, add a new unittest (cgd, nabeelmian)
	* BUGFIX: fix rounding errors with static thread-size caches (addi)
	* BUGFIX: disable hooks better when forking in leak-checker (csilvers)
	* BUGFIX: fix realloc of crt pointers on windows (csilvers)
	* BUGFIX: do a better job of finding binaries in .sh tests (csilvers)
	* WINDOWS: allow overriding malloc/etc instead of patching (mbelshe)
	* PORTING: fix compilation error in a ppc-specific file (csilvers)
	* PORTING: deal with quirks in cygwin's /proc/self/maps (csilvers)
	* PORTING: use 'A' version of functions for ascii input (mbelshe)
	* PORTING: generate .so's on cygwin and mingw (ajenjo)
	* PORTING: disable profiler methods on cygwin (jperkins)
	* Updated autoconf version to 2.61 and libtool version to 1.5.26


git-svn-id: http://gperftools.googlecode.com/svn/trunk@68 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-04-18 00:02:25 +00:00
csilvers
edd03a831f Wed Mar 11 11:25:34 2009 Google Inc. <opensource@google.com>
* google-perftools: version 1.1 release
	* Dynamically resize thread caches -- nice perf. improvement (kash)
	* Add VDSO support to give better stacktraces in linux (ppluzhnikov)
	* Improve heap-profiling sampling algorithm (ford)
	* Rewrite leak-checking code: should be faster and more robust (sanjay)
	* Use ps2 instead of ps for dot: better page cropping for gv (csilvers)
	* Disable malloc-failure warning messages by default (csilvers)
	* Update config/Makefile to disable tests on a per-OS basis (csilvers)
	* PORTING: Get perftools compiling under MSVC 7.1 again (csilvers)
	* PORTING: Get perftools compiling under cygwin again (csilvers)
	* PORTING: automatically set library flags for solaris x86 (csilvers)
	* Add TCMALLOC_SKIP_SBRK to mirror TCMALLOC_SKIP_MMAP (csilvers)
	* Add --enable flags to allow selective building (csilvers)
	* Put addr2line-pdb and nm-pdb in proper output directory (csilvers)
	* Remove deprecated DisableChecksIn (sanjay)
	* DOCUMENTATION: Document most MallocExtension routines (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@66 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-03-11 20:50:03 +00:00
csilvers
c75de4d1e9 Tue Jan 6 13:58:56 2009 Google Inc. <opensource@google.com>
* google-perftools: version 1.0 release
	* Exactly the same as 1.0rc2


git-svn-id: http://gperftools.googlecode.com/svn/trunk@64 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2009-01-06 19:41:15 +00:00
csilvers
49b0273610 Sun Dec 14 17:10:35 2008 Google Inc. <opensource@google.com>
* google-perftools: version 1.0rc2 release
	* Fix compile error on 64-bit systems (casting ptr to int) (csilvers)

Thu Dec 11 16:01:32 2008  Google Inc. <opensource@google.com>


git-svn-id: http://gperftools.googlecode.com/svn/trunk@62 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-12-15 01:20:31 +00:00
csilvers
6fa2a2574c Thu Dec 11 16:01:32 2008 Google Inc. <opensource@google.com>
* google-perftools: version 1.0rc1 release
	* Replace API for selectively disabling heap-checker in code (sanjay)
	* Add a pre-mmap hook (daven, adlr)
	* Add MallocExtension interface to set memory-releasing rate (fikes)
	* Augment pprof to allow any string ending in /pprof/profile (csilvers)
	* PORTING: Rewrite -- and fix --  malloc patching for windows (dvitek)
	* PORTING: Add nm-pdb and addr2line-pdb for use by pprof (dvitek)
	* PORTING: Improve cygwin and mingw support (jperkins, csilvers)
	* PORTING: Fix pprof for mac os x, other pprof improvements (csilvers)
	* PORTING: Fix some PPC bugs in our locking code (anton.blanchard)
	* A new unittest, smapling_test, to verify tcmalloc-profiles (csilvers)
	* Turn off TLS for gcc < 4.1.2, due to a TLS + -fPIC bug (csilvers)
	* Prefer __builtin_frame_address to assembly for stacktraces (nlewycky)
	* Separate tcmalloc.cc out into multiple files -- finally! (kash)
	* Make our locking code work with -fPIC on 32-bit x86 (aruns)
	* Fix an initialization-ordering bug for tcmalloc/profiling (csilvers)
	* Use "initial exec" model of TLS to speed up tcmalloc (csilvers)
	* Enforce 16-byte alignment for tcmalloc, for SSE (sanjay)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@60 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-12-13 01:35:42 +00:00
csilvers
16191f87ff Tue Sep 23 08:56:31 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.99.2 release
	* COMPILE FIX: add #include needed for FreeBSD and OS X (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@58 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-09-23 17:51:05 +00:00
csilvers
8b2dd25dc9 Sat Sep 20 09:37:18 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.99.1 release
	* BUG FIX: look for nm, etc in /usr/bin, not /usr/crosstool (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@56 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-09-20 17:15:23 +00:00
csilvers
106aef86ce Thu Sep 18 16:00:27 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.99 release
	* Add IsHeapProfileRunning (csilvers)
	* Add C shims for some of the C++ header files (csilvers)
	* Fix heap profile file clean-up logic (maxim)
	* Rename linuxthreads.c to .cc for better compiler support (csilvers)
	* Add source info to disassembly in pprof (sanjay)
	* Use open instead of fopen to avoid memory alloc (csilvers)
	* Disable malloc extensions when running under valgrind (kcc)
	* BUG FIX: Fix out-of-bound error by reordering a check (larryz)
	* Add Options struct to ProfileData (cgd)
	* Correct PC-handling of --base in pprof (csilvers)
	* Handle 1 function occurring twice in an image (sanjay)
	* Improve stack-data cleaning (maxim)
	* Use 'struct Foo' to make header C compatible (csilvers)
	* Add 'total' line to pprof --text (csilvers)
	* Pre-allocate buffer for heap-profiler to avoid OOM errors (csilvers)
	* Allow a few more env-settings to control tcmalloc (csilvers)
	* Document some of the issues involving thread-local storage (csilvers)
	* BUG FIX: Define strtoll and friends for windows (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@54 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-09-19 20:06:40 +00:00
csilvers
100e657c50 Mon Jun 9 16:47:03 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.98 release
	* Add ProfilerStartWithOptions() (cgd)
	* Change tcmalloc_minimal to not do any stack-tracing at all (csilvers)
	* Prefer mmap to sbrk for 64-buit debug mode (sanjay)
	* Fix accounting for some tcmalloc stats (sanjay)
	* Use setrlimit() to keep unittests from killing the machine (odo)
	* Fix a bug when sbrk-ing near address 4G (csilvers)
	* Make MallocHook thread-safe (jyasskin)
	* Fix windows build for MemoryBarrier (jyasskin)
	* Fix CPU-profiler docs to mention correct libs (csilvers)
	* Fix for GetHeapProfile() when heap-profiling is off (maxim)
	* Avoid realloc resizing ping-pongs using hysteresis (csilvers)
	* Add --callgrind output support to pprof (klimek)
	* Fix profiler.h and heap-profiler.h to be C-compatible (csilvers)
	* Break malloc_hook.h into two parts to reduce dependencies (csilvers)
	* Better handle systems that don't implement mmap (csilvers)
	* PORTING: disable system_alloc_unittest for msvc (csilvers)
	* PORTING: Makefile tweaks to build better on cygwin (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@52 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-06-14 02:30:53 +00:00
csilvers
7ec719093b Mon Apr 21 15:20:52 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.97 release
	* Refactor GetHeapProfile to avoid using malloc (maxim)
	* Fix heap-checker and heap-profiler hook interactions (maxim)
	* Fix a data race in MemoryRegionMap::Lock (jyasskin)
	* Improve thread-safety of leak checker (maxim)
	* Fix mmap profile to no longer deadlock (maxim)
	* Fix rpm to have devel package depend on non-devel (csilvers)
	* PORTING: Fix clock-speed detection for Mac OS X (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@50 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-04-22 01:47:16 +00:00
csilvers
97fdd4a4f9 Tue Mar 18 14:30:44 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.96 release
	* major atomicops rewrite; fixed atomic ops code for linux/ppc (vchen)
	* nix the stacktrace library; now build structure is simpler (csilvers)
	* Speed up heap-checker, and reduce extraneous logging (maxim)
	* Improve itimer code for NPTL case (cgd)
	* Add source code annotations for use by valgrind, etc (kcc)
	* PORTING: Fix high resolution timers for Mac OS X (adlr)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@48 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-03-19 23:35:27 +00:00
csilvers
a644b4f2d6 Tue Feb 19 12:01:31 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.95.1 release  (bugfix release)
	* x86_64 compile-fix: nix pread64 and pwrite64 (csilvers)
	* more heap-checker debug logging (maxim)
	* minor improvement to x86_64 CycleClock (gpike)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@46 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-02-19 22:19:22 +00:00
csilvers
8a0a3101bc Tue Feb 12 12:28:32 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.95 release
	* Better -- not perfect -- support for linux-ppc (csilvers)
	* Fix race condition in libunwind stacktrace (aruns)
	* Speed up x86 spinlock locking (m3b)
	* Improve heap-checker performance (maxim)
	* Heap checker traverses more ptrs inside heap-alloced objects (maxim)
	* Remove deprecated ProfilerThreadState function (cgd)
	* Update libunwind documentation for statically linked binaries (aruns)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@44 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2008-02-13 00:55:09 +00:00
csilvers
b43ba444fc Mon Dec 3 23:51:54 2007 Google Inc. <opensource@google.com>
* google-perftools: version 0.94.1 release  (bugfix release)
	* Fix missing #includes for x86_64 compile using libunwind (csilvers)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@42 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2007-12-05 00:08:28 +00:00
csilvers
11b02f7aeb Thu Nov 29 07:59:43 2007 Google Inc. <opensource@google.com>
* google-perftools: version 0.94 release
	* PORTING: MinGW/Msys support -- runs same code as MSVC does (csilvers)
	* PORTING: Add NumCPUs support for Mac OS X (csilvers)
	* Work around a sscanf bug in glibc(?) (waldemar)
	* Fix Windows MSVC bug triggered by thread deletion (csilvers)
	* Fix bug that triggers in MSVC /O2: missing volatile (gpike)
	* March-of-time support: quiet warnings/errors for gcc 4.2, OS X 10.5
	* Modify pprof so it works without nm: useful for windows (csilvers)
	* pprof: Support filtering for CPU profiles (cgd)
	* Bugfix: have realloc report to hooks in all situations (maxim)
	* Speed improvement: replace slow memcpy with std::copy (soren)
	* Speed: better iterator efficiency in RecordRegionRemoval (soren)
	* Speed: minor speed improvements via better bitfield alignment (gpike)
	* Documentation: add documentation of binary profile output (cgd)


git-svn-id: http://gperftools.googlecode.com/svn/trunk@40 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
2007-11-29 23:39:24 +00:00