Skip to content
  1. Mar 04, 2012
    • Jason Evans's avatar
      Unify license. · c71b9946
      Jason Evans authored
      Update Facebook's software license (with permission from Facebook) to
      merge with that of the other copyright holders.
      c71b9946
  2. Mar 03, 2012
  3. Mar 02, 2012
    • Jason Evans's avatar
      Reorder macros. · 62320b85
      Jason Evans authored
      62320b85
    • Jason Evans's avatar
      Add --with-mangling. · 0a5489e3
      Jason Evans authored
      Add the --with-mangling configure option, which can be used to specify
      name mangling on a per public symbol basis that takes precedence over
      --with-jemalloc-prefix.
      
      Expose the memalign() and valloc() overrides even if
      --with-jemalloc-prefix is specified.  This change does no real harm, and
      simplifies the code.
      0a5489e3
  4. Feb 29, 2012
  5. Feb 14, 2012
    • Jason Evans's avatar
      Remove the opt.lg_prof_bt_max option. · 53891461
      Jason Evans authored
      Remove opt.lg_prof_bt_max, and hard code it to 7.  The original
      intention of this option was to enable faster backtracing by limiting
      backtrace depth.  However, this makes graphical pprof output very
      difficult to interpret.  In practice, decreasing sampling frequency is a
      better mechanism for limiting profiling overhead.
      53891461
    • Jason Evans's avatar
      Remove the opt.lg_prof_tcmax option. · 0b526ff9
      Jason Evans authored
      Remove the opt.lg_prof_tcmax option and hard-code a cache size of 1024.
      This setting is something that users just shouldn't have to worry about.
      If lock contention actually ends up being a problem, the simple solution
      available to the user is to reduce sampling frequency.
      0b526ff9
    • Jason Evans's avatar
      Fix bin->runcur management. · e7a1058a
      Jason Evans authored
      Fix an interaction between arena_dissociate_bin_run() and
      arena_bin_lower_run() that made it possible for bin->runcur to point to
      a run other than the lowest non-full run.  This bug violated jemalloc's
      layout policy, but did not affect correctness.
      e7a1058a
    • Jason Evans's avatar
      Remove highruns statistics. · 74686892
      Jason Evans authored
      74686892
    • Jason Evans's avatar
      Make 8-byte tiny size class non-optional. · ef8897b4
      Jason Evans authored
      When tiny size class support was first added, it was intended to support
      truly tiny size classes (even 2 bytes).  However, this wasn't very
      useful in practice, so the minimum tiny size class has been limited to
      sizeof(void *) for a long time now.  This is too small to be standards
      compliant, but other commonly used malloc implementations do not even
      bother using a 16-byte quantum  on systems with vector units (SSE2+,
      AltiVEC, etc.).  As such, it is safe in practice to support an 8-byte
      tiny size class on 64-bit systems that support 16-byte types.
      ef8897b4
  6. Feb 13, 2012
    • Jason Evans's avatar
      Do not enable lazy locking by default. · 0fee70d7
      Jason Evans authored
      Do not enable lazy locking by default, because:
      - It's fragile (applications can subvert detection of multi-threaded
        mode).
      - Thread caching amortizes locking overhead in the default
        configuration.
      0fee70d7
    • Jason Evans's avatar
      Silence compiler warnings. · 6ffbbeb5
      Jason Evans authored
      6ffbbeb5
    • Jason Evans's avatar
      Streamline tcache-related malloc/free fast paths. · 962463d9
      Jason Evans authored
      tcache_get() is inlined, so do the config_tcache check inside
      tcache_get() and simplify its callers.
      
      Make arena_malloc() an inline function, since it is part of the malloc()
      fast path.
      
      Remove conditional logic that cause build issues if --disable-tcache was
      specified.
      962463d9
    • Jason Evans's avatar
      Remove the swap feature. · 41626277
      Jason Evans authored
      Remove the swap feature, which enabled per application swap files.  In
      practice this feature has not proven itself useful to users.
      41626277
    • Jason Evans's avatar
      Remove magic. · fd56043c
      Jason Evans authored
      Remove structure magic, because 1) it is no longer conditional, and 2)
      it stopped being very effective at detecting memory corruption several
      years ago.
      fd56043c
  7. Feb 11, 2012
    • Jason Evans's avatar
      Reduce cpp conditional logic complexity. · 7372b15a
      Jason Evans authored
      Convert configuration-related cpp conditional logic to use static
      constant variables, e.g.:
      
        #ifdef JEMALLOC_DEBUG
          [...]
        #endif
      
      becomes:
      
        if (config_debug) {
          [...]
        }
      
      The advantage is clearer, more concise code.  The main disadvantage is
      that data structures no longer have conditionally defined fields, so
      they pay the cost of all fields regardless of whether they are used.  In
      practice, this is only a minor concern; config_stats will go away in an
      upcoming change, and config_prof is the only other major feature that
      depends on more than a few special-purpose fields.
      7372b15a
  8. Nov 15, 2011
  9. Nov 11, 2011
  10. Nov 09, 2011
    • Jason Evans's avatar
      Fix huge_ralloc() race when using mremap(2). · fa351d9f
      Jason Evans authored
      Fix huge_ralloc() to remove the old memory region from tree of huge
      allocations *before* calling mremap(2), in order to make sure that no
      other thread acquires the old memory region via mmap() and encounters
      stale metadata in the tree.
      
      Reported by: Rich Prohaska
      fa351d9f
  11. Nov 06, 2011
  12. Nov 04, 2011
  13. Nov 02, 2011