Skip to content
  1. Apr 12, 2010
  2. Apr 09, 2010
  3. Apr 08, 2010
    • Jason Evans's avatar
      Don't build with -march=native. · 33958609
      Jason Evans authored
      Don't build with -march=native by default, because the generated code
      may perform especially poorly on ABI-compatible, but internally
      different, systems.
      33958609
    • Jason Evans's avatar
      Fix build system problems. · 0656ec0e
      Jason Evans authored
      Split library build rules up so that parallel building works.
      
      Fix autoconf-related dependencies.
      
      Remove obsolete JEMALLOC_VERSION definition.
      0656ec0e
    • Jason Evans's avatar
      Improve ExtractSymbols (pprof). · af366593
      Jason Evans authored
      Iterated downward through both libraries and PCs.  This allows PCs
      to resolve even when library address ranges overlap.
      af366593
  4. Apr 06, 2010
  5. Apr 03, 2010
  6. Apr 02, 2010
    • Jason Evans's avatar
      Import pprof from google-perftools, svn r91. · a91f2109
      Jason Evans authored
      Fix divide-by-zero error in pprof.  It is possible for sample contexts
      to currently have no associated objects, but the cumulative statistics
      are still useful, depending on how the user invokes pprof.  Since
      jemalloc intentionally does not filter such contexts, take care not to
      divide by 0 when re-scaling for v2 heap sampling.
      
      Install pprof as part of 'make install'.
      
      Update pprof documentation.
      a91f2109
    • Jason Evans's avatar
      Don't disable leak reporting due to sampling. · 18ad8234
      Jason Evans authored
      Leak reporting is useful even if sampling is enabled; some leaks may not
      be reported, but those reported are still genuine leaks.
      18ad8234
  7. Apr 01, 2010
    • Jason Evans's avatar
      Add sampling activation/deactivation control. · f18c9820
      Jason Evans authored
      Add the E/e options to control whether the application starts with
      sampling active/inactive (secondary control to F/f).  Add the
      prof.active mallctl so that the application can activate/deactivate
      sampling on the fly.
      f18c9820
    • Jason Evans's avatar
      Make interval-triggered profile dumping optional. · a02fc08e
      Jason Evans authored
      Make it possible to disable interval-triggered profile dumping, even if
      profiling is enabled.  This is useful if the user only wants a single
      dump at exit, or if the application manually triggers profile dumps.
      a02fc08e
    • Jason Evans's avatar
      Reduce statistical heap sampling memory overhead. · 0b270a99
      Jason Evans authored
      If the mean heap sampling interval is larger than one page, simulate
      sampled small objects with large objects.  This allows profiling context
      pointers to be omitted for small objects.  As a result, the memory
      overhead for sampling decreases as the sampling interval is increased.
      
      Fix a compilation error in the profiling code.
      0b270a99
  8. Mar 27, 2010
  9. Mar 22, 2010
    • Jason Evans's avatar
      Set/clear CHUNK_MAP_ZEROED in arena_chunk_purge(). · c03a63d6
      Jason Evans authored
      Properly set/clear CHUNK_MAP_ZEROED for all purged pages, according to
      whether the pages are (potentially) file-backed or anonymous.  This was
      merely a performance pessimization for the anonymous mapping case, but
      was a calloc()-related bug for the swap_enabled case.
      c03a63d6
  10. Mar 19, 2010
  11. Mar 18, 2010
    • Jason Evans's avatar
      Remove medium size classes. · dafde14e
      Jason Evans authored
      Remove medium size classes, because concurrent dirty page purging is
      no longer capable of purging inactive dirty pages inside active runs
      (due to recent arena/bin locking changes).
      
      Enhance tcache to support caching large objects, so that the same range
      of size classes is still cached, despite the removal of medium size
      class support.
      dafde14e
  12. Mar 16, 2010
    • Jason Evans's avatar
      Fix a run initialization race condition. · e69bee01
      Jason Evans authored
      Initialize small run header before dropping arena->lock,
      arena_chunk_purge() relies on valid small run headers during run
      iteration.
      
      Add some assertions.
      e69bee01
    • Jason Evans's avatar
      Add assertions. · f00bb7f1
      Jason Evans authored
      Check for interior pointers in arena_[ds]alloc().
      
      Check for corrupt pointers in tcache_alloc().
      f00bb7f1
  13. Mar 15, 2010
  14. Mar 14, 2010
    • Jason Evans's avatar
      Simplify small object allocation/deallocation. · 1e0a636c
      Jason Evans authored
      Use chained run free lists instead of bitmaps to track free objects
      within small runs.
      
      Remove reference counting for small object run pages.
      1e0a636c
    • Jason Evans's avatar
      Simplify tcache object caching. · 3fa9a2fa
      Jason Evans authored
      Use chains of cached objects, rather than using arrays of pointers.
      
      Since tcache_bin_t is no longer dynamically sized, convert tcache_t's
      tbin to an array of structures, rather than an array of pointers.  This
      implicitly removes tcache_bin_{create,destroy}(), which further
      simplifies the fast path for malloc/free.
      
      Use cacheline alignment for tcache_t allocations.
      
      Remove runtime configuration option for number of tcache bin slots, and
      replace it with a boolean option for enabling/disabling tcache.
      
      Limit the number of tcache objects to the lesser of TCACHE_NSLOTS_MAX
      and 2X the number of regions per run for the size class.
      
      For GC-triggered flush, discard 3/4 of the objects below the low water
      mark, rather than 1/2.
      3fa9a2fa
  15. Mar 05, 2010
    • Jason Evans's avatar
      Modify dirty page purging algorithm. · 2caa4715
      Jason Evans authored
      Convert chunks_dirty from a red-black tree to a doubly linked list,
      and use it to purge dirty pages from chunks in FIFO order.
      
      Add a lock around the code that purges dirty pages via madvise(2), in
      order to avoid kernel contention.  If lock acquisition fails,
      indefinitely postpone purging dirty pages.
      
      Add a lower limit of one chunk worth of dirty pages per arena for
      purging, in addition to the active:dirty ratio.
      
      When purging, purge all dirty pages from at least one chunk, but rather
      than purging enough pages to drop to half the purging threshold, merely
      drop to the threshold.
      2caa4715
  16. Mar 04, 2010
  17. Mar 03, 2010
  18. Mar 02, 2010