- Nov 06, 2011
-
-
Jason Evans authored
-
Jason Evans authored
Reported by: Ethan Burns, Rich Prohaska, Tudor Bosman
-
- Sep 01, 2011
-
-
Jason Evans authored
-
- Aug 31, 2011
-
-
Jason Evans authored
Fix prof_lookup() to artificially raise curobjs for all paths through the code that creates a new entry in the per thread bt2cnt hash table. This fixes a race condition that could corrupt memory if prof_accum were false, and a non-default lg_prof_tcmax were used and/or threads were destroyed.
-
Jason Evans authored
Fix realloc() such that it only records the object passed in as freed if no OOM error occurs.
-
- Aug 13, 2011
-
-
Jason Evans authored
Add a missing prof_malloc() call in allocm(). Before this fix, negative object/byte counts could be observed in heap profiles for applications that use allocm().
-
- Aug 12, 2011
-
-
Jason Evans authored
Rewrite prof_alloc_prep() as a cpp macro, PROF_ALLOC_PREP(), in order to remove any doubt as to whether an additional stack frame is created. Prior to this change, it was assumed that inlining would reduce the total number of frames in the backtrace, but in practice behavior wasn't completely predictable. Create imemalign() and call it from posix_memalign(), memalign(), and valloc(), so that all entry points require the same number of stack frames to be ignored during backtracing.
-
Jason Evans authored
Fix the manual page to document the swap.fds mallctl as read-write, rather than read-only.
-
Jason Evans authored
Conditionalize an isalloc() call in rallocm() that be unnecessary.
-
Jason Evans authored
Properly handle boundary conditions for sampled region promotion in rallocm(). Prior to this fix, some combinations of 'size' and 'extra' values could cause erroneous behavior. Additionally, size class recording for promoted regions was incorrect.
-
- Aug 10, 2011
-
-
Jason Evans authored
Clean up some prof-related comments to more accurately reflect how the code works. Simplify OOM handling code in a couple of prof-related error paths.
-
- Aug 09, 2011
-
-
Jason Evans authored
Use the argument to prof_tdata_cleanup(), rather than calling PROF_TCACHE_GET(). This fixes a bug in the NO_TLS case.
-
- Jul 31, 2011
-
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Add the --with-private-namespace option to make it possible to work around library-private symbols being exposed in static libraries.
-
- Jun 13, 2011
-
-
Jason Evans authored
Fix assertions in arena_purge() to accurately reflect the constraints in arena_maybe_purge(). There were two bugs here, one of which merely weakened the assertion, and the other of which referred to an uninitialized variable (typo; used npurgatory instead of arena->npurgatory).
-
- May 22, 2011
-
-
Jason Evans authored
Add the LLU suffix for all 0x... 64-bit constants. Reported by Jakob Blomer.
-
- May 11, 2011
-
-
Nathan McSween authored
-
- Apr 01, 2011
-
-
Jason Evans authored
Update .gitignore and configure.ac to deal with the recent directory restructuring.
-
Jason Evans authored
-
- Mar 31, 2011
-
-
Jason Evans authored
Add a missing #ifdef to conditionally exclude code that is relevant only to the tcache feature.
-
Jason Evans authored
-
- Mar 25, 2011
-
-
Jason Evans authored
Add inline assembly implementations of atomic_{add,sub}_uint{32,64}() for x86/x64, in order to support compilers that are missing the relevant gcc intrinsics.
-
- Mar 23, 2011
-
-
Jason Evans authored
This reverts commit adc675c8. The original commit added support for a non-standard libunwind API, so it was not of general utility.
-
- Mar 24, 2011
-
-
Jason Evans authored
-
Jason Evans authored
arena_purge() may be called even when there are no dirty pages, so loosen an assertion accordingly.
-
je@facebook.com authored
Use libunwind's unw_tdep_trace() if it is available.
-
- Mar 23, 2011
-
-
Jason Evans authored
sa2u() returns 0 on overflow, but the profiling code was blindly calling sa2u() and allowing the error to silently propagate, ultimately ending in a later assertion failure. Refactor all ipalloc() callers to call sa2u(), check for overflow before calling ipalloc(), and pass usize rather than size. This allows ipalloc() to avoid calling sa2u() in the common case.
-
Jason Evans authored
Add code to set *rsize even when profiling is enabled.
-
Jason Evans authored
Initialize arenas_tsd earlier, so that the non-TLS case works when profiling is enabled.
-
- Mar 22, 2011
-
-
Jason Evans authored
-
Jason Evans authored
Fix a regression due to: Remove an arena_bin_run_size_calc() constraint. 2a6f2af6 The removed constraint required that small run headers fit in one page, which indirectly limited runs such that they would not cause overflow in arena_run_regind(). Add an explicit constraint to arena_bin_run_size_calc() based on the largest number of regions that arena_run_regind() can handle (2^11 as currently configured).
-
- Mar 21, 2011
-
-
Jason Evans authored
Dynamically adjust tcache fill count (number of objects allocated per tcache refill) such that if GC has to flush inactive objects, the fill count gradually decreases. Conversely, if refills occur while the fill count is depressed, the fill count gradually increases back to its maximum value.
-
- Mar 19, 2011
-
-
Jason Evans authored
pthread_mutex_lock() can call malloc() on OS X (!!!), which causes deadlock. Work around this by using spinlocks that are built of more primitive stuff.
-
Jason Evans authored
-
Jason Evans authored
Import updated pprof from google-perftools 1.7.
-
Jason Evans authored
Add atomic.[ch], which should have been part of the previous commit.
-
Jason Evans authored
Add the "stats.cactive" mallctl, which can be used to efficiently and repeatedly query approximately how much active memory the application is utilizing.
-
- Mar 18, 2011
-
-
Jason Evans authored
Rather than blindly assigning threads to arenas in round-robin fashion, choose the lowest-numbered arena that currently has the smallest number of threads assigned to it. Add the "stats.arenas.<i>.nthreads" mallctl.
-
Jason Evans authored
Refill the thread cache such that low regions get used first. This fixes a regression due to the recent transition to bitmap-based region management.
-