ChangeLog.old 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646
  1. Fri Feb 03 15:40:45 2012 Google Inc. <google-perftools@googlegroups.com>
  2. * gperftools: version 2.0
  3. * Renamed the project from google-perftools to gperftools (csilvers)
  4. * Renamed the .deb/.rpm packagse from google-perftools to gperftools too
  5. * Renamed include directory from google/ to gperftools/ (csilvers)
  6. * Changed the 'official' perftools email in setup.py/etc
  7. * Renamed google-perftools.sln to gperftools.sln
  8. * PORTING: Removed bash-isms & grep -q in heap-checker-death_unittest.sh
  9. * Changed copyright text to reflect Google's relinquished ownership
  10. Tue Jan 31 10:43:50 2012 Google Inc. <opensource@google.com>
  11. * google-perftools: version 1.10 release
  12. * PORTING: Support for patching assembly on win x86_64! (scott.fr...)
  13. * PORTING: Work around atexit-execution-order bug on freebsd (csilvers)
  14. * PORTING: Patch _calloc_crt for windows (roger orr)
  15. * PORTING: Add C++11 compatibility method for stl allocator (jdennett)
  16. * PORTING: use MADV_FREE, not MADV_DONTNEED, on freebsd (csilvers)
  17. * PORTING: Don't use SYS_open when not supported on solaris (csilvers)
  18. * PORTING: Do not assume uname() returns 0 on success (csilvers)
  19. * LSS: Improved ARM support in linux-syscall-support (dougkwan)
  20. * LSS: Get rid of unused syscalls in linux-syscall-support (csilvers)
  21. * LSS: Fix broken mmap wrapping for ppc (markus)
  22. * LSS: Emit .cfi_adjust_cfa_offset when appropriate (ppluzhnikov)
  23. * LSS: Be more accurate in register use in __asm__ (markus)
  24. * LSS: Fix __asm__ calls to compile under clang (chandlerc)
  25. * LSS: Fix ARM inline assembly bug around r7 and swi (lcwu)
  26. * No longer log when an allocator fails (csilvers)
  27. * void* -> const void* for MallocExtension methods (llib)
  28. * Improve HEAP_PROFILE_MMAP and fix bugs with it (dmikurube)
  29. * Replace int-based abs with more correct fabs in a test (pmurin)
  30. Thu Dec 22 16:22:45 2011 Google Inc. <opensource@google.com>
  31. * google-perftools: version 1.9 release
  32. * Lightweight check for double-frees (blount)
  33. * BUGFIX: Fix pprof to exit properly if run with no args (dagitses)
  34. * Suggest ASan as a way to diagnose buggy code (ppluzhnikov)
  35. * Get rid of unused CACHELINE_SIZE (csilvers)
  36. * Replace atexit() calls with global dtors; helps freebsd (csilvers)
  37. * Disable heap-checker under AddressSanitizer (kcc)
  38. * Fix bug in powerpc stacktracing (ppluzhnikov)
  39. * PERF: Use exponential backoff waiting for spinlocks (m3b)
  40. * Fix 64-bit nm on 32-bit binaries in pprof (csilvers)
  41. * Add ProfileHandlerDisallowForever (rsc)
  42. * BUGFIX: Shell escape when forking in pprof (csilvers)
  43. * No longer combine overloaded functions in pprof (csilvers)
  44. * Fix address-normalizing bug in pprof (csilvers)
  45. * More consistently call abort() instead of exit() on failure (csilvers)
  46. * Allow NoGlobalLeaks to be safely called more than once (csilvers)
  47. * PORTING/BUGFIX: Fix ARM cycleclock to use volatile asm (dougkwan)
  48. * PORTING: 64-bit atomic ops for ARMv7 (dougkwan)
  49. * PORTING: Implement stacktrace for ARM (dougkwan)
  50. * PORTING: Fix malloc_hook_mmap_linux for ARM (dougkwan)
  51. * PORTING: Update linux_syscall_support.h for ARM/etc (evannier, sanek)
  52. * PORTING: Fix freebsd to work on x86_64 (chapp...@gmail.com)
  53. * PORTING: Added additional SYS_mmap fixes for FreeBSD (chappedm)
  54. * PORTING: Allow us to compile on OS X 10.6 and run on 10.5 (raltherr)
  55. * PORTING: Check for mingw compilers that *do* define timespec
  56. * PORTING: Add "support" for MIPS cycletimer
  57. * PORTING: Fix fallback cycle-timer to work with Now (dougkwan)
  58. * PERF: Move stack trace collecting out of the mutex (taylorc)
  59. * PERF: Get the deallocation stack trace outside the mutex (sean)
  60. * Make PageHeap dynamically allocated for leak checks (maxim)
  61. * BUGFIX: Fix probing of nm -f behavior in pprof (dpeng)
  62. * BUGFIX: Fix a race with the CentralFreeList lock before main (sanjay)
  63. * Support /pprof/censusprofile url arguments (rajatjain)
  64. * Change IgnoreObject to return its argument (nlewycky)
  65. * Update malloc-hook files to support more CPUs
  66. * BUGFIX: write our own strstr to avoid libc problems (csilvers)
  67. * Use simple callgrind compression facility in pprof
  68. * Print an error message when we can't run pprof to symbolize (csilvers)
  69. * Die in configure when g++ is't installed (csilvers)
  70. * DOC: Beef up the documentation a bit about using libunwind (csilvers)
  71. Fri Aug 26 13:29:25 2011 Google Inc. <opensource@google.com>
  72. * google-perftools: version 1.8.3 release
  73. * Added back the 'pthreads unsafe early' #define, needed for FreeBSD
  74. Thu Aug 11 15:01:47 2011 Google Inc. <opensource@google.com>
  75. * google-perftools: version 1.8.2 release
  76. * Fixed calculation of patchlevel, 'make check' should all pass again
  77. Tue Jul 26 20:57:51 2011 Google Inc. <opensource@google.com>
  78. * google-perftools: version 1.8.1 release
  79. * Added an #include to fix compile breakage on latest gcc's
  80. * Removed an extra , in the configure.ac script
  81. Fri Jul 15 16:10:51 2011 Google Inc. <opensource@google.com>
  82. * google-perftools: version 1.8 release
  83. * PORTING: (Disabled) support for patching mmap on freebsd (chapp...)
  84. * PORTING: Support volatile __malloc_hook for glibc 2.14 (csilvers)
  85. * PORTING: Use _asm rdtsc and __rdtsc to get cycleclock in windows (koda)
  86. * PORTING: Fix fd vs. HANDLE compiler error on cygwin (csilvers)
  87. * PORTING: Do not test memalign or double-linking on OS X (csilvers)
  88. * PORTING: Actually enable TLS on windows (jontra)
  89. * PORTING: Some work to compile under Native Client (krasin)
  90. * PORTING: deal with pthread_once w/o -pthread on freebsd (csilvers)
  91. * Rearrange libc-overriding to make it easier to port (csilvers)
  92. * Display source locations in pprof disassembly (sanjay)
  93. * BUGFIX: Actually initialize allocator name (mec)
  94. * BUGFIX: Keep track of 'overhead' bytes in malloc reporting (csilvers)
  95. * Allow ignoring one object twice in the leak checker (glider)
  96. * BUGFIX: top10 in pprof should print 10 lines, not 11 (rsc)
  97. * Refactor vdso source files (tipp)
  98. * Some documentation cleanups
  99. * Document MAX_TOTAL_THREAD_CACHE_SIZE <= 1Gb (nsethi)
  100. * Add MallocExtension::GetOwnership(ptr) (csilvers)
  101. * BUGFIX: We were leaving out a needed $(top_srcdir) in the Makefile
  102. * PORTING: Support getting argv0 on OS X
  103. * Add 'weblist' command to pprof: like 'list' but html (sanjay)
  104. * Improve source listing in pprof (sanjay)
  105. * Cap cache sizes to reduce fragmentation (ruemmler)
  106. * Improve performance by capping or increasing sizes (ruemmler)
  107. * Add M{,un}mapReplacmenet hooks into MallocHook (ribrdb)
  108. * Refactored system allocator logic (gangren)
  109. * Include cleanups (csilvers)
  110. * Add TCMALLOC_SMALL_BUT_SLOW support (ruemmler)
  111. * Clarify that tcmalloc stats are MiB (robinson)
  112. * Remove support for non-tcmalloc debugallocation (blount)
  113. * Add a new test: malloc_hook_test (csilvers)
  114. * Change the configure script to be more crosstool-friendly (mcgrathr)
  115. * PORTING: leading-underscore changes to support win64 (csilvers)
  116. * Improve debugallocation tc_malloc_size (csilvers)
  117. * Extend atomicops.h and cyceclock to use ARM V6+ optimized code (sanek)
  118. * Change malloc-hook to use a list-like structure (llib)
  119. * Add flag to use MAP_PRIVATE in memfs_malloc (gangren)
  120. * Windows support for pprof: nul and /usr/bin/file (csilvers)
  121. * TESTING: add test on strdup to tcmalloc_test (csilvers)
  122. * Augment heap-checker to deal with no-inode maps (csilvers)
  123. * Count .dll/.dylib as shared libs in heap-checker (csilvers)
  124. * Disable sys_futex for arm; it's not always reliable (sanek)
  125. * PORTING: change lots of windows/port.h macros to functions
  126. * BUGFIX: Generate correct version# in tcmalloc.h on windows (csilvers)
  127. * PORTING: Some casting to make solaris happier about types (csilvers)
  128. * TESTING: Disable debugallocation_test in 'minimal' mode (csilvers)
  129. * Rewrite debugallocation to be more modular (csilvers)
  130. * Don't try to run the heap-checker under valgrind (ppluzhnikov)
  131. * BUGFIX: Make focused stat %'s relative, not absolute (sanjay)
  132. * BUGFIX: Don't use '//' comments in a C file (csilvers)
  133. * Quiet new-gcc compiler warnings via -Wno-unused-result, etc (csilvers)
  134. Fri Feb 04 15:54:31 2011 Google Inc. <opensource@google.com>
  135. * google-perftools: version 1.7 release
  136. * Reduce page map key size under x86_64 by 4.4MB (rus)
  137. * Remove a flaky malloc-extension test (fdabek)
  138. * Improve the performance of PageHeap::New (ond..., csilvers)
  139. * Improve sampling_test with no-inline additions/etc (fdabek)
  140. * 16-byte align debug allocs (jyasskin)
  141. * Change FillProcSelfMaps to detect out-of-buffer-space (csilvers)
  142. * Document the need for sampling to use GetHeapSample (csilvers)
  143. * Try to read TSC frequency from tsc_freq_khs (adurbin)
  144. * Do better at figuring out if tests are running under gdb (ppluzhnikov)
  145. * Improve spinlock contention performance (ruemmler)
  146. * Better internal-function list for pprof's /contention (ruemmler)
  147. * Speed up GoogleOnce (m3b)
  148. * Limit number of incoming/outgoing edges in pprof (sanjay)
  149. * Add pprof --evince to go along with --gv (csilvers)
  150. * Document the various ways to get heap-profiling information (csilvers)
  151. * Separate out synchronization profiling routines (ruemmler)
  152. * Improve malloc-stats output to be more understandable (csilvers)
  153. * Add support for census profiler in pporf (nabeelmian)
  154. * Document how pprof's /symbol must support GET requests (csilvers)
  155. * Improve acx_pthread.m4 (ssuomi, liujisi)
  156. * Speed up pprof's ExtractSymbols (csilvers)
  157. * Ignore some known-leaky (java) libraries in the heap checker (davidyu)
  158. * Make kHideMask use all 64 bits in tests (ppluzhnikov)
  159. * Clean up pprof input-file handling (csilvers)
  160. * BUGFIX: Don't crash if __environ is NULL (csilvers)
  161. * BUGFIX: Fix totally broken debugallocation tests (csilvers)
  162. * BUGFIX: Fix up fake_VDSO handling for unittest (ppluzhnikov)
  163. * BUGFIX: Suppress all large allocs when report threshold is 0 (lexie)
  164. * BUGFIX: mmap2 on i386 takes an off_t, not off64_t (csilvers)
  165. * PORTING: Add missing PERFTOOLS_DLL_DECL (csilvers)
  166. * PORTING: Add stddef.h to make newer gcc's happy (csilvers)
  167. * PORTING: Document some tricks for working under OS X (csilvers)
  168. * PORTING: Don't try to check valgrind for windows (csilvers)
  169. * PORTING: Make array-size a var to compile under clang (chandlerc)
  170. * PORTING: No longer hook _aligned_malloc and _aligned_free (csilvers)
  171. * PORTING: Quiet some gcc warnings (csilvers)
  172. * PORTING: Replace %PRIxPTR with %p to be more portable (csilvers)
  173. * PORTING: Support systems that capitalize /proc weirdly (sanek)
  174. * PORTING: Treat arm3 the same as arm5t in cycletimer (csilvers)
  175. * PORTING: Update windows logging to not allocate memory (csilvers)
  176. * PORTING: avoid double-patching newer windows DLLs (roger.orr)
  177. * PORTING: get dynamic_annotations.c to work on windows (csilvers)
  178. * Add pkg-config .pc files for the 5 libraries we produce (csilvers)
  179. * Added proper libtool versioning, so this lib will be 0.1.0 (csilvers)
  180. * Moved from autoconf 2.64 to 2.65
  181. Thu Aug 5 12:48:03 PDT 2010 Google Inc. <opensource@google.com>
  182. * google-perftools: version 1.6 release
  183. * Add tc_malloc_usable_size for compatibility with glibc (csilvers)
  184. * Override malloc_usable_size with tc_malloc_usable_size (csilvers)
  185. * Default to no automatic heap sampling in tcmalloc (csilvers)
  186. * Add -DTCMALLOC_LARGE_PAGES, a possibly faster tcmalloc (rus)
  187. * Make some functions extern "C" to avoid false ODR warnings (jyasskin)
  188. * pprof: Add SVG-based output (rsc)
  189. * pprof: Extend pprof --tools to allow per-tool configs (csilvers)
  190. * pprof: Improve support of 64-bit and big-endian profiles (csilvers)
  191. * pprof: Add interactive callgrind suport (weidenri...)
  192. * pprof: Improve address->function mapping a bit (dpeng)
  193. * Better detection of when we're running under valgrind (csilvers)
  194. * Better CPU-speed detection under valgrind (saito)
  195. * Use, and recommend, -fno-builtin-malloc when compiling (csilvers)
  196. * Avoid false-sharing of memory between caches (bmaurer)
  197. * BUGFIX: Fix heap sampling to use correct alloc size (bmauer)
  198. * BUGFIX: Avoid gcc 4.0.x bug by making hook-clearing atomic (csilvers)
  199. * BUGFIX: Avoid gcc 4.5.x optimization bug (csilvers)
  200. * BUGFIX: Work around deps-determining bug in libtool 1.5.26 (csilvers)
  201. * BUGFIX: Fixed test to use HAVE_PTHREAD, not HAVE_PTHREADS (csilvers)
  202. * BUGFIX: Fix tls callback behavior on windows when using wpo (wtc)
  203. * BUGFIX: properly align allocation sizes on Windows (antonm)
  204. * BUGFIX: Fix prototypes for tcmalloc/debugalloc wrt throw() (csilvers)
  205. * DOC: Updated heap-checker doc to match reality better (fischman)
  206. * DOC: Document ProfilerFlush, ProfilerStartWithOptions (csilvers)
  207. * DOC: Update docs for heap-profiler functions (csilvers)
  208. * DOC: Clean up documentation around tcmalloc.slack_bytes (fikes)
  209. * DOC: Renamed README.windows to README_windows.txt (csilvers)
  210. * DOC: Update the NEWS file to be non-empty (csilvers)
  211. * PORTING: Fix windows addr2line and nm with proper rc code (csilvers)
  212. * PORTING: Add CycleClock and atomicops support for arm 5 (sanek)
  213. * PORTING: Improve PC finding on cygwin and redhat 7 (csilvers)
  214. * PORTING: speed up function-patching under windows (csilvers)
  215. Tue Jan 19 14:46:12 2010 Google Inc. <opensource@google.com>
  216. * google-perftools: version 1.5 release
  217. * Add tc_set_new_mode (willchan)
  218. * Make memalign functions + realloc respect tc_set_new_mode (willchan)
  219. * Add ReleaseToSystem(num_bytes) (kash)
  220. * Handle zero-length symbols a bit better in pprof (csilvers)
  221. * Prefer __environ to /proc/self/environ in cpu profiler (csilvers)
  222. * Add HEAP_CHECK_MAX_LEAKS flag to control #leaks to report (glider)
  223. * Add two new numeric pageheap properties to MallocExtension (fikes)
  224. * Print alloc size when mmap fails (hakon)
  225. * Add ITIMER_REAL support to cpu profiler (csilvers, nabeelmian)
  226. * Speed up symbolizer in heap-checker reporting (glider)
  227. * Speed up futexes with FUTEX_PRIVATE_FLAG (m3b)
  228. * Speed up tcmalloc but doing better span coalescing (sanjay)
  229. * Better support for different wget's and addr2maps in pprof (csilvres)
  230. * Implement a nothrow version of delete and delete[] (csilvers)
  231. * BUGFIX: fix a race on module_libcs[i] in windows patching (csilvers)
  232. * BUGFIX: Fix debugallocation to call cpp_alloc for new (willchan)
  233. * BUGFIX: A simple bugfix for --raw mode (mrabkin)
  234. * BUGFIX: Fix C shims to actually be valid C (csilvers)
  235. * BUGFIX: Fix recursively-unmapped-region accounting (ppluzhnikov)
  236. * BUGFIX: better distinguish real and fake vdso (ppluzhnikov)
  237. * WINDOWS: replace debugmodule with more reliable psai (andrey)
  238. * PORTING: Add .bundle as another shared library extension (csilvers)
  239. * PORTING: Fixed a typo bug in the ocnfigure PRIxx m4 macro (csilvers)
  240. * PORTING: Augment sysinfo to work on 64-bit OS X (csilvers)
  241. * PORTING: Use sys/ucontext.h to fix compiing on OS X 10.6 (csilvers)
  242. * PORTING: Fix sysinfo libname reporting for solaris x86 (jeffrey)
  243. * PORTING: Use libunwind for i386 when using --omitfp (ppluzhnikov)
  244. Thu Sep 10 13:51:15 2009 Google Inc. <opensource@google.com>
  245. * google-perftools: version 1.4 release
  246. * Add debugallocation library, to catch memory leaks, stomping, etc
  247. * Add --raw mode to allow for delayed processing of pprof files
  248. * Use less memory when reading CPU profiles
  249. * New environment variables to control kernel-allocs (sbrk, memfs, etc)
  250. * Add MarkThreadBusy(): performance improvement
  251. * Remove static thread-cache-size code; all is dynamic now
  252. * Add new HiddenPointer class to heap checker
  253. * BUGFIX: pvalloc(0) allocates now (found by new debugalloc library)
  254. * BUGFIX: valloc test (not implementation) no longer overruns memory
  255. * BUGFIX: GetHeapProfile no longer deadlocks
  256. * BUGFIX: Support unmapping memory regions before main
  257. * BUGFIX: Fix some malloc-stats formatting
  258. * BUGFIX: Don't crash as often when freeing libc-allocated memory
  259. * BUGFIX: Deal better with incorrect PPROF_PATH when symbolizing
  260. * BUGFIX: weaken new/delete/etc in addition to malloc/free/etc
  261. * BUGFIX: Fix return value of GetAllocatedSize
  262. * PORTING: Fix mmap-#define problem on some 64-bit systems
  263. * PORTING: Call ranlib again (some OS X versions need it)
  264. * PORTING: Fix a leak when building with LLVM
  265. * PORTING: Remove some unneeded bash-ishs from testing scripts
  266. * WINDOWS: Support library unloading as well as loading
  267. * WINDOWS/BUGFIX: Set page to 'xrw' instead of 'rw' when patching
  268. Tue Jun 9 18:19:06 2009 Google Inc. <opensource@google.com>
  269. * google-perftools: version 1.3 release
  270. * Provide our own name for memory functions: tc_malloc, etc (csilvers)
  271. * Weaken memory-alloc functions so user can override them (csilvers)
  272. * Remove meaningless delete(nothrow) and delete[](nothrow) (csilvers)
  273. * BUILD: replace clever libtcmalloc/profiler.a with a new .a (csilvers)
  274. * PORTING: improve windows port by using google spinlocks (csilvers)
  275. * PORTING: Fix RedHat 9 memory allocation in heapchecker (csilvers)
  276. * PORTING: Rename OS_WINDOWS macro to PLATFORM_WINDOWS (mbelshe)
  277. * PORTING/BUGFIX: Make sure we don't clobber GetLastError (mbelshe)
  278. * BUGFIX: get rid of useless data for callgrind (weidenrinde)
  279. * BUGFIX: Modify windows patching to deadlock sometimes (csilvers)
  280. * BUGFIX: an improved fix for hook handling during fork (csilvers)
  281. * BUGFIX: revamp profiler_unittest.sh, which was very broken (csilvers)
  282. Fri Apr 17 16:40:48 2009 Google Inc. <opensource@google.com>
  283. * google-perftools: version 1.2 release
  284. * Allow large_alloc_threshold=0 to turn it off entirely (csilvers)
  285. * Die more helpfully when out of memory for internal data (csilvers)
  286. * Refactor profile-data gathering, add a new unittest (cgd, nabeelmian)
  287. * BUGFIX: fix rounding errors with static thread-size caches (addi)
  288. * BUGFIX: disable hooks better when forking in leak-checker (csilvers)
  289. * BUGFIX: fix realloc of crt pointers on windows (csilvers)
  290. * BUGFIX: do a better job of finding binaries in .sh tests (csilvers)
  291. * WINDOWS: allow overriding malloc/etc instead of patching (mbelshe)
  292. * PORTING: fix compilation error in a ppc-specific file (csilvers)
  293. * PORTING: deal with quirks in cygwin's /proc/self/maps (csilvers)
  294. * PORTING: use 'A' version of functions for ascii input (mbelshe)
  295. * PORTING: generate .so's on cygwin and mingw (ajenjo)
  296. * PORTING: disable profiler methods on cygwin (jperkins)
  297. * Updated autoconf version to 2.61 and libtool version to 1.5.26
  298. Wed Mar 11 11:25:34 2009 Google Inc. <opensource@google.com>
  299. * google-perftools: version 1.1 release
  300. * Dynamically resize thread caches -- nice perf. improvement (kash)
  301. * Add VDSO support to give better stacktraces in linux (ppluzhnikov)
  302. * Improve heap-profiling sampling algorithm (ford)
  303. * Rewrite leak-checking code: should be faster and more robust (sanjay)
  304. * Use ps2 instead of ps for dot: better page cropping for gv (csilvers)
  305. * Disable malloc-failure warning messages by default (csilvers)
  306. * Update config/Makefile to disable tests on a per-OS basis (csilvers)
  307. * PORTING: Get perftools compiling under MSVC 7.1 again (csilvers)
  308. * PORTING: Get perftools compiling under cygwin again (csilvers)
  309. * PORTING: automatically set library flags for solaris x86 (csilvers)
  310. * Add TCMALLOC_SKIP_SBRK to mirror TCMALLOC_SKIP_MMAP (csilvers)
  311. * Add --enable flags to allow selective building (csilvers)
  312. * Put addr2line-pdb and nm-pdb in proper output directory (csilvers)
  313. * Remove deprecated DisableChecksIn (sanjay)
  314. * DOCUMENTATION: Document most MallocExtension routines (csilvers)
  315. Tue Jan 6 13:58:56 2009 Google Inc. <opensource@google.com>
  316. * google-perftools: version 1.0 release
  317. * Exactly the same as 1.0rc2
  318. Sun Dec 14 17:10:35 2008 Google Inc. <opensource@google.com>
  319. * google-perftools: version 1.0rc2 release
  320. * Fix compile error on 64-bit systems (casting ptr to int) (csilvers)
  321. Thu Dec 11 16:01:32 2008 Google Inc. <opensource@google.com>
  322. * google-perftools: version 1.0rc1 release
  323. * Replace API for selectively disabling heap-checker in code (sanjay)
  324. * Add a pre-mmap hook (daven, adlr)
  325. * Add MallocExtension interface to set memory-releasing rate (fikes)
  326. * Augment pprof to allow any string ending in /pprof/profile (csilvers)
  327. * PORTING: Rewrite -- and fix -- malloc patching for windows (dvitek)
  328. * PORTING: Add nm-pdb and addr2line-pdb for use by pprof (dvitek)
  329. * PORTING: Improve cygwin and mingw support (jperkins, csilvers)
  330. * PORTING: Fix pprof for mac os x, other pprof improvements (csilvers)
  331. * PORTING: Fix some PPC bugs in our locking code (anton.blanchard)
  332. * A new unittest, smapling_test, to verify tcmalloc-profiles (csilvers)
  333. * Turn off TLS for gcc < 4.1.2, due to a TLS + -fPIC bug (csilvers)
  334. * Prefer __builtin_frame_address to assembly for stacktraces (nlewycky)
  335. * Separate tcmalloc.cc out into multiple files -- finally! (kash)
  336. * Make our locking code work with -fPIC on 32-bit x86 (aruns)
  337. * Fix an initialization-ordering bug for tcmalloc/profiling (csilvers)
  338. * Use "initial exec" model of TLS to speed up tcmalloc (csilvers)
  339. * Enforce 16-byte alignment for tcmalloc, for SSE (sanjay)
  340. Tue Sep 23 08:56:31 2008 Google Inc. <opensource@google.com>
  341. * google-perftools: version 0.99.2 release
  342. * COMPILE FIX: add #include needed for FreeBSD and OS X (csilvers)
  343. Sat Sep 20 09:37:18 2008 Google Inc. <opensource@google.com>
  344. * google-perftools: version 0.99.1 release
  345. * BUG FIX: look for nm, etc in /usr/bin, not /usr/crosstool (csilvers)
  346. Thu Sep 18 16:00:27 2008 Google Inc. <opensource@google.com>
  347. * google-perftools: version 0.99 release
  348. * Add IsHeapProfileRunning (csilvers)
  349. * Add C shims for some of the C++ header files (csilvers)
  350. * Fix heap profile file clean-up logic (maxim)
  351. * Rename linuxthreads.c to .cc for better compiler support (csilvers)
  352. * Add source info to disassembly in pprof (sanjay)
  353. * Use open instead of fopen to avoid memory alloc (csilvers)
  354. * Disable malloc extensions when running under valgrind (kcc)
  355. * BUG FIX: Fix out-of-bound error by reordering a check (larryz)
  356. * Add Options struct to ProfileData (cgd)
  357. * Correct PC-handling of --base in pprof (csilvers)
  358. * Handle 1 function occurring twice in an image (sanjay)
  359. * Improve stack-data cleaning (maxim)
  360. * Use 'struct Foo' to make header C compatible (csilvers)
  361. * Add 'total' line to pprof --text (csilvers)
  362. * Pre-allocate buffer for heap-profiler to avoid OOM errors (csilvers)
  363. * Allow a few more env-settings to control tcmalloc (csilvers)
  364. * Document some of the issues involving thread-local storage (csilvers)
  365. * BUG FIX: Define strtoll and friends for windows (csilvers)
  366. Mon Jun 9 16:47:03 2008 Google Inc. <opensource@google.com>
  367. * google-perftools: version 0.98 release
  368. * Add ProfilerStartWithOptions() (cgd)
  369. * Change tcmalloc_minimal to not do any stack-tracing at all (csilvers)
  370. * Prefer mmap to sbrk for 64-buit debug mode (sanjay)
  371. * Fix accounting for some tcmalloc stats (sanjay)
  372. * Use setrlimit() to keep unittests from killing the machine (odo)
  373. * Fix a bug when sbrk-ing near address 4G (csilvers)
  374. * Make MallocHook thread-safe (jyasskin)
  375. * Fix windows build for MemoryBarrier (jyasskin)
  376. * Fix CPU-profiler docs to mention correct libs (csilvers)
  377. * Fix for GetHeapProfile() when heap-profiling is off (maxim)
  378. * Avoid realloc resizing ping-pongs using hysteresis (csilvers)
  379. * Add --callgrind output support to pprof (klimek)
  380. * Fix profiler.h and heap-profiler.h to be C-compatible (csilvers)
  381. * Break malloc_hook.h into two parts to reduce dependencies (csilvers)
  382. * Better handle systems that don't implement mmap (csilvers)
  383. * PORTING: disable system_alloc_unittest for msvc (csilvers)
  384. * PORTING: Makefile tweaks to build better on cygwin (csilvers)
  385. Mon Apr 21 15:20:52 2008 Google Inc. <opensource@google.com>
  386. * google-perftools: version 0.97 release
  387. * Refactor GetHeapProfile to avoid using malloc (maxim)
  388. * Fix heap-checker and heap-profiler hook interactions (maxim)
  389. * Fix a data race in MemoryRegionMap::Lock (jyasskin)
  390. * Improve thread-safety of leak checker (maxim)
  391. * Fix mmap profile to no longer deadlock (maxim)
  392. * Fix rpm to have devel package depend on non-devel (csilvers)
  393. * PORTING: Fix clock-speed detection for Mac OS X (csilvers)
  394. Tue Mar 18 14:30:44 2008 Google Inc. <opensource@google.com>
  395. * google-perftools: version 0.96 release
  396. * major atomicops rewrite; fixed atomic ops code for linux/ppc (vchen)
  397. * nix the stacktrace library; now build structure is simpler (csilvers)
  398. * Speed up heap-checker, and reduce extraneous logging (maxim)
  399. * Improve itimer code for NPTL case (cgd)
  400. * Add source code annotations for use by valgrind, etc (kcc)
  401. * PORTING: Fix high resolution timers for Mac OS X (adlr)
  402. Tue Feb 19 12:01:31 2008 Google Inc. <opensource@google.com>
  403. * google-perftools: version 0.95.1 release (bugfix release)
  404. * x86_64 compile-fix: nix pread64 and pwrite64 (csilvers)
  405. * more heap-checker debug logging (maxim)
  406. * minor improvement to x86_64 CycleClock (gpike)
  407. Tue Feb 12 12:28:32 2008 Google Inc. <opensource@google.com>
  408. * google-perftools: version 0.95 release
  409. * Better -- not perfect -- support for linux-ppc (csilvers)
  410. * Fix race condition in libunwind stacktrace (aruns)
  411. * Speed up x86 spinlock locking (m3b)
  412. * Improve heap-checker performance (maxim)
  413. * Heap checker traverses more ptrs inside heap-alloced objects (maxim)
  414. * Remove deprecated ProfilerThreadState function (cgd)
  415. * Update libunwind documentation for statically linked binaries (aruns)
  416. Mon Dec 3 23:51:54 2007 Google Inc. <opensource@google.com>
  417. * google-perftools: version 0.94.1 release (bugfix release)
  418. * Fix missing #includes for x86_64 compile using libunwind (csilvers)
  419. Thu Nov 29 07:59:43 2007 Google Inc. <opensource@google.com>
  420. * google-perftools: version 0.94 release
  421. * PORTING: MinGW/Msys support -- runs same code as MSVC does (csilvers)
  422. * PORTING: Add NumCPUs support for Mac OS X (csilvers)
  423. * Work around a sscanf bug in glibc(?) (waldemar)
  424. * Fix Windows MSVC bug triggered by thread deletion (csilvers)
  425. * Fix bug that triggers in MSVC /O2: missing volatile (gpike)
  426. * March-of-time support: quiet warnings/errors for gcc 4.2, OS X 10.5
  427. * Modify pprof so it works without nm: useful for windows (csilvers)
  428. * pprof: Support filtering for CPU profiles (cgd)
  429. * Bugfix: have realloc report to hooks in all situations (maxim)
  430. * Speed improvement: replace slow memcpy with std::copy (soren)
  431. * Speed: better iterator efficiency in RecordRegionRemoval (soren)
  432. * Speed: minor speed improvements via better bitfield alignment (gpike)
  433. * Documentation: add documentation of binary profile output (cgd)
  434. Fri Aug 17 12:32:56 2007 Google Inc. <opensource@google.com>
  435. * google-perftools: version 0.93 release
  436. * PORTING: everything compiles on Solaris, OS X, FreeBSD (see INSTALL)
  437. * PORTING: cpu-profiler works on most platforms (much better GetPC())
  438. * PORTING: heap-profiler works on most platforms
  439. * PORTING: improved windows support, including release builds
  440. * No longer build or run ptmalloc tests by default
  441. * Add support for using memfs filesystem to allocate memory in linux
  442. * WINDOWS: give debug library and release library different names
  443. Tue Jul 17 22:26:27 2007 Google Inc. <opensource@google.com>
  444. * google-perftools: version 0.92 release
  445. * PERFORMANCE: use a packed cache to speed up tcmalloc
  446. * PORTING: preliminary windows support! (see README.windows)
  447. * PORTING: better support for solaris, OS X, FreeBSD (see INSTALL)
  448. * Envvar support for running the heap-checker under gdb
  449. * Add weak declarations to maybe_threads to fix no-pthreads compile bugs
  450. * Some 64bit fixes, especially with pprof
  451. * Better heap-checker support for some low-level allocations
  452. * Fix bug where heap-profiles would sometimes get truncated
  453. * New documentation about how to handle common heap leak situations
  454. * Use computed includes for hash_map/set: easier config
  455. * Added all used .m4 templates to the distribution
  456. Wed Apr 18 16:43:55 2007 Google Inc. <opensource@google.com>
  457. * google-perftools: version 0.91 release
  458. * Brown-paper-bag bugfix: compilation error on some x86-64 machines
  459. Fri Apr 13 14:50:51 2007 Google Inc. <opensource@google.com>
  460. * google-perftools: version 0.90 release
  461. * (As the version-number jump hints, this is a major new release:
  462. almost every piece of functionality was rewritten. I can't do
  463. justice to all the changes, but will concentrate on highlights.)
  464. *** USER-VISIBLE CHANGES:
  465. * Ability to "release" unused memory added to tcmalloc
  466. * Exposed more tweaking knobs via environment variables (see docs)
  467. * pprof tries harder to map addresses to functions
  468. * tcmalloc_minimal compiles and runs on FreeBSD 6.0 and Solaris 10
  469. *** INTERNAL CHANGES:
  470. * Much better 64-bit support
  471. * Better multiple-processor support (e.g. multicore contention tweaks)
  472. * Support for recent kernel ABI changes (e.g. new arg to mremap)
  473. * Addition of spinlocks to tcmalloc to reduce contention cost
  474. * Speed up tcmalloc by using __thread on systems that support TLS
  475. * Total redesign of heap-checker to improve liveness checking
  476. * More portable stack-frame analysis -- no more hard-coded constants!
  477. * Disentangled heap-profiler code and heap-checker code
  478. * Several new unittests to test, e.g., thread-contention costs
  479. * Lots of small (but important!) bug fixes: e.g., fixing GetPC on amd64
  480. *** KNOWN PROBLEMS:
  481. * CPU-profiling may crash on x86_64 (64-bit) systems. See the README
  482. * Profiling/heap-checking may deadlock on x86_64 systems. See README
  483. Wed Jun 14 15:11:14 2006 Google Inc. <opensource@google.com>
  484. * google-perftools: version 0.8 release
  485. * Experimental support for remote profiling added to pprof (many)
  486. * Fixed race condition in ProfileData::FlushTable (etune)
  487. * Better support for weird /proc maps (maxim, mec)
  488. * Fix heap-checker interaction with gdb (markus)
  489. * Better 64-bit support in pprof (aruns)
  490. * Reduce scavenging cost in tcmalloc by capping NumMoveSize (sanjay)
  491. * Cast syscall(SYS_mmap); works on more 64-bit systems now (menage)
  492. * Document the text output of pprof! (csilvers)
  493. * Better compiler support for no-THREADS and for old compilers (csilvers)
  494. * Make libunwind the default stack unwinder for x86-64 (aruns)
  495. * Somehow the COPYING file got erased. Regenerate it (csilvers)
  496. Thu Apr 13 20:59:09 2006 Google Inc. <opensource@google.com>
  497. * google-perftools: version 0.7 release
  498. * Major rewrite of thread introspection for new kernels (markus)
  499. * Major rewrite of heap-checker to use new thread tools (maxim)
  500. * Add proper support for following data in thread registers (maxim)
  501. * Syscall support for older kernels, including _syscall6 (markus)
  502. * Support PIC mode (markus, mbland, iant)
  503. * Better support for running in non-threaded contexts (csilvers)
  504. Fri Jan 27 14:04:27 2006 Google Inc. <opensource@google.com>
  505. * google-perftools: version 0.6 release
  506. * More sophisticated stacktrace usage, possibly using libunwind (aruns)
  507. * Update pprof to handle 64-bit profiles (dehnert)
  508. * Fix GetStackTrace to correctly return top stackframe (sanjay)
  509. * Add ANSI compliance for new and new[], including new_handler (jkearney)
  510. * More accuracy by reading ELF files directly rather than objdump (mec)
  511. * Add readline support for pprof (addi)
  512. * Add #includes for PPC (csilvers)
  513. * New PC-detection routine for ibook powerpc (asbestoshead)
  514. * Vastly improved tcmalloc unittest (csilvers)
  515. * Move documentation from /usr/doc to /usr/share/doc
  516. Mon Nov 14 17:28:59 2005 Google Inc. <opensource@google.com>
  517. * google-perftools: version 0.5 release
  518. * Add va_start/va_end calls around vsnprintf() (csilvers)
  519. * Write our own __syscall_return(), since it's not defined
  520. consistently on all 64-bit linux distros (markus)
  521. Wed Oct 26 15:19:16 2005 Google Inc. <opensource@google.com>
  522. * google-perftools: version 0.4 release
  523. * Decrease fragmentation in tcmalloc (lefevere)
  524. * Support for ARM in some of the thread-specific code (markus)
  525. * Turn off heap-checker for statically-linked binaries, which
  526. cause error leak reports now (etune)
  527. * Many pprof improvements, including a command-line interface (jeff)
  528. * CPU profiling now automatically affects all threads in linux 2.6.
  529. (Kernel bugs break CPU profiling and threads in linux 2.4 a bit.)
  530. ProfilerEnable() and ProfilerDisable() are deprecated. (sanjay)
  531. * tcmalloc now correctly intercepts memalign (m3b, maxim)
  532. * Syntax fix: added missing va_end()s. Helps non-gcc compiling (etune)
  533. * Fixed a few coredumper bugs: race condition after PTRACE_DETACH,
  534. ignore non-aligned stackframe pointers (markus, menage)
  535. * 64-bit cleanup, especially for spinlock code (etune) and mmap (sanjay)
  536. * Better support for finding threads in linux (markus)
  537. * tcmalloc now tracks those stack traces that allocate memory (sanjay)
  538. * Work around a weird setspecific problem (sanjay)
  539. * Fix tcmalloc overflow problems when an alloc is close to 2G/4G (sanjay)
  540. Fri Jun 24 18:02:26 2005 Google Inc. <opensource@google.com>
  541. * google-perftools: version 0.3 release
  542. * Add missing errno include for one of the unittests (csilvers)
  543. * Reduce tcmalloc startup memory from 5M to 256K (sanjay)
  544. * Add support for mallopt() and mallinfo (sanjay)
  545. * Improve stacktrace's performance on some 64-bit systems (etune)
  546. * Improve the stacktrace unittest (etune)
  547. Tue May 31 08:14:38 2005 Google Inc. <opensource@google.com>
  548. * google-perftools: version 0.2 release
  549. * Use mmap2() instead of mmap(), to map more memory (menage)
  550. * Do correct pthread-local checking in heap-checker! (maxim)
  551. * Avoid overflow on 64-bit machines in pprof (sanjay)
  552. * Add a few more GetPC() functions, including for AMD (csilvers)
  553. * Better method for overriding pthread functions (menage)
  554. * (Hacky) fix to avoid overwriting profile files after fork() (csilvers)
  555. * Crashing bugfix involving dumping heaps on small-stack threads (tudor)
  556. * Allow library versions with letters at the end (csilvers)
  557. * Config fixes for systems that don't define PATH_MAX (csilvers)
  558. * Confix fixes so we no longer need config.h after install (csilvers)
  559. * Fix to pprof to correctly read very big cpu profiles (csilvers)
  560. * Fix to pprof to deal with new commandline flags in modern gv's
  561. * Better error reporting when we can't access /proc/maps (etune)
  562. * Get rid of the libc-preallocate code (which could crash on some
  563. systems); no longer needed with local-threads fix (csilvers)
  564. Tue Feb 8 09:57:17 2005 Google Inc. <opensource@google.com>
  565. * google-perftools: initial release:
  566. The google-perftools package contains some utilities to improve
  567. and analyze the performance of C++ programs. This includes an
  568. optimized thread-caching malloc() and cpu and heap profiling
  569. utilities.