Skip to content
  1. Aug 04, 2015
    • Jason Evans's avatar
      Generalize chunk management hooks. · b49a334a
      Jason Evans authored
      Add the "arena.<i>.chunk_hooks" mallctl, which replaces and expands on
      the "arena.<i>.chunk.{alloc,dalloc,purge}" mallctls.  The chunk hooks
      allow control over chunk allocation/deallocation, decommit/commit,
      purging, and splitting/merging, such that the application can rely on
      jemalloc's internal chunk caching and retaining functionality, yet
      implement a variety of chunk management mechanisms and policies.
      
      Merge the chunks_[sz]ad_{mmap,dss} red-black trees into
      chunks_[sz]ad_retained.  This slightly reduces how hard jemalloc tries
      to honor the dss precedence setting; prior to this change the precedence
      setting was also consulted when recycling chunks.
      
      Fix chunk purging.  Don't purge chunks in arena_purge_stashed(); instead
      deallocate them in arena_unstash_purged(), so that the dirty memory
      linkage remains valid until after the last time it is used.
      
      This resolves #176 and #201.
      b49a334a
  2. Jul 25, 2015
    • Jason Evans's avatar
      Implement support for non-coalescing maps on MinGW. · d059b9d6
      Jason Evans authored
      - Do not reallocate huge objects in place if the number of backing
        chunks would change.
      - Do not cache multi-chunk mappings.
      
      This resolves #213.
      d059b9d6
    • Jason Evans's avatar
      Fix huge_ralloc_no_move() to succeed more often. · 40cbd30d
      Jason Evans authored
      Fix huge_ralloc_no_move() to succeed if an allocation request results in
      the same usable size as the existing allocation, even if the request
      size is smaller than the usable size.  This bug did not cause
      correctness issues, but it could cause unnecessary moves during
      reallocation.
      40cbd30d
  3. Jul 24, 2015
  4. Jul 23, 2015
    • Jason Evans's avatar
      Force lazy_lock on MinGW. · 13473c7c
      Jason Evans authored
      This resolves #83.
      13473c7c
    • Jason Evans's avatar
      Fix MinGW-related portability issues. · 5fae7dc1
      Jason Evans authored
      Create and use FMT* macros that are equivalent to the PRI* macros that
      inttypes.h defines.  This allows uniform use of the Unix-specific format
      specifiers, e.g. "%zu", as well as avoiding Windows-specific definitions
      of e.g. PRIu64.
      
      Add ffs()/ffsl() support for compiling with gcc.
      
      Extract compatibility definitions of ENOENT, EINVAL, EAGAIN, EPERM,
      ENOMEM, and ENORANGE into include/msvc_compat/windows_extra.h and
      use the file for tests as well as for core jemalloc code.
      5fae7dc1
    • Jason Evans's avatar
      Fix a compilation error. · e475ff16
      Jason Evans authored
      This regression was introduced by
      1b0e4abb (Port mq_get() to MinGW.).
      e475ff16
    • Jason Evans's avatar
      Add JEMALLOC_FORMAT_PRINTF(). · e42c309e
      Jason Evans authored
      Replace JEMALLOC_ATTR(format(printf, ...). with
      JEMALLOC_FORMAT_PRINTF(), so that configuration feature tests can
      omit the attribute if it would cause extraneous compilation warnings.
      e42c309e
  5. Jul 22, 2015
  6. Jul 21, 2015
  7. Jul 18, 2015
  8. Jul 16, 2015
  9. Jul 13, 2015
  10. Jul 11, 2015
  11. Jul 10, 2015
  12. Jul 09, 2015
  13. Jul 08, 2015
  14. Jul 07, 2015
  15. Jun 25, 2015
    • Matthijs's avatar
      Optimizations for Windows · a1aaf949
      Matthijs authored
      - Set opt_lg_chunk based on run-time OS setting
      - Verify LG_PAGE is compatible with run-time OS setting
      - When targeting Windows Vista or newer, use SRWLOCK instead of CRITICAL_SECTION
      - When targeting Windows Vista or newer, statically initialize init_lock
      a1aaf949
  16. Jun 24, 2015
    • Jason Evans's avatar
      Fix size class overflow handling when profiling is enabled. · 241abc60
      Jason Evans authored
      Fix size class overflow handling for malloc(), posix_memalign(),
      memalign(), calloc(), and realloc() when profiling is enabled.
      
      Remove an assertion that erroneously caused arena_sdalloc() to fail when
      profiling was enabled.
      
      This resolves #232.
      241abc60
  17. Jun 23, 2015
  18. Jun 22, 2015
  19. Jun 15, 2015
  20. May 30, 2015