Skip to content
  1. May 04, 2016
  2. May 03, 2016
    • Jason Evans's avatar
      Update mallocx() OOM test to deal with smaller hugemax. · 9aa1543e
      Jason Evans authored
      Depending on virtual memory resource limits, it is necessary to attempt
      allocating three maximally sized objects to trigger OOM rather than just
      two, since the maximum supported size is slightly less than half the
      total virtual memory address space.
      
      This fixes a test failure that was introduced by
      0c516a00 (Make *allocx() size class
      overflow behavior defined.).
      
      This resolves #379.
      9aa1543e
  3. Apr 26, 2016
  4. Apr 25, 2016
  5. Apr 23, 2016
  6. Apr 22, 2016
  7. Apr 19, 2016
    • hitstergtd's avatar
      Doc typo fixes. · eb68842d
      hitstergtd authored
      eb68842d
    • Jason Evans's avatar
    • Jason Evans's avatar
      Update private_symbols.txt. · ab0cfe01
      Jason Evans authored
      Change test-related mangling to simplify symbol filtering.
      
      The following commands can be used to detect missing/obsolete symbol
      mangling, with the caveat that the full set of symbols is based on the
      union of symbols generated by all configurations, some of which are
      platform-specific:
      
      ./autogen.sh --enable-debug --enable-prof --enable-lazy-lock
      make all tests
      nm -a lib/libjemalloc.a src/*.jet.o \
        |grep " [TDBCR] " \
        |awk '{print $3}' \
        |sed -e 's/^\(je_\|jet_\(n_\)\?\)\([a-zA-Z0-9_]*\)/\3/g' \
        |LC_COLLATE=C sort -u \
        |grep -v \
         -e '^\(malloc\|calloc\|posix_memalign\|aligned_alloc\|realloc\|free\)$' \
         -e '^\(m\|r\|x\|s\|d\|sd\|n\)allocx$' \
         -e '^mallctl\(\|nametomib\|bymib\)$' \
         -e '^malloc_\(stats_print\|usable_size\|message\)$' \
         -e '^\(memalign\|valloc\)$' \
         -e '^__\(malloc\|memalign\|realloc\|free\)_hook$' \
         -e '^pthread_create$' \
        > /tmp/private_symbols.txt
      ab0cfe01
  8. Apr 18, 2016
  9. Apr 17, 2016
  10. Apr 14, 2016
  11. Apr 13, 2016
  12. Apr 12, 2016
  13. Apr 11, 2016
    • Jason Evans's avatar
      Simplify RTREE_HEIGHT_MAX definition. · 667eca2a
      Jason Evans authored
      Use 1U rather than ZU(1) in macro definitions, so that the preprocessor
      can evaluate the resulting expressions.
      667eca2a
    • Jason Evans's avatar
      Support --with-lg-page values larger than actual page size. · 245ae603
      Jason Evans authored
      During over-allocation in preparation for creating aligned mappings,
      allocate one more page than necessary if PAGE is the actual page size,
      so that trimming still succeeds even if the system returns a mapping
      that has less than PAGE alignment.  This allows compiling with e.g. 64
      KiB "pages" on systems that actually use 4 KiB pages.
      
      Note that for e.g. --with-lg-page=21, it is also necessary to increase
      the chunk size (e.g. --with-malloc-conf=lg_chunk:22) so that there are
      at least two "pages" per chunk.  In practice this isn't a particularly
      compelling configuration because so much (unusable) virtual memory is
      dedicated to chunk headers.
      245ae603
    • Jason Evans's avatar
      Clean up char vs. uint8_t in junk filling code. · 96aa67ac
      Jason Evans authored
      Consistently use uint8_t rather than char for junk filling code.
      96aa67ac
    • Jason Evans's avatar
      Refactor/fix ph. · c6a2c394
      Jason Evans authored
      Refactor ph to support configurable comparison functions.  Use a cpp
      macro code generation form equivalent to the rb macros so that pairing
      heaps can be used for both run heaps and chunk heaps.
      
      Remove per node parent pointers, and instead use leftmost siblings' prev
      pointers to track parents.
      
      Fix multi-pass sibling merging to iterate over intermediate results
      using a FIFO, rather than a LIFO.  Use this fixed sibling merging
      implementation for both merge phases of the auxiliary twopass algorithm
      (first merging the aux list, then replacing the root with its merged
      children).  This fixes both degenerate merge behavior and the potential
      for deep recursion.
      
      This regression was introduced by
      6bafa667 (Pairing heap).
      
      This resolves #371.
      c6a2c394
  14. Apr 06, 2016
  15. Mar 31, 2016
    • Jason Evans's avatar
      Update implementation details docs re: PTRDIFF_MAX. · b582d2ad
      Jason Evans authored
      Document that the maximum size class is limited by PTRDIFF_MAX, rather
      than the full address space.  This reflects changes that were part of
      0c516a00 (Make *allocx() size class
      overflow behavior defined.).
      b582d2ad
    • Chris Peterson's avatar
      Add JEMALLOC_ALLOC_JUNK and JEMALLOC_FREE_JUNK macros · a82070ef
      Chris Peterson authored
      Replace hardcoded 0xa5 and 0x5a junk values with JEMALLOC_ALLOC_JUNK and
      JEMALLOC_FREE_JUNK macros, respectively.
      a82070ef
    • Jason Evans's avatar
      Update a comment. · f86bc081
      Jason Evans authored
      f86bc081
    • Jason Evans's avatar
      Fix potential chunk leaks. · ce7c0f99
      Jason Evans authored
      Move chunk_dalloc_arena()'s implementation into chunk_dalloc_wrapper(),
      so that if the dalloc hook fails, proper decommit/purge/retain cascading
      occurs.  This fixes three potential chunk leaks on OOM paths, one during
      dss-based chunk allocation, one during chunk header commit (currently
      relevant only on Windows), and one during rtree write (e.g. if rtree
      node allocation fails).
      
      Merge chunk_purge_arena() into chunk_purge_default() (refactor, no
      change to functionality).
      ce7c0f99
  16. Mar 27, 2016
    • Chris Peterson's avatar
      Fix -Wunreachable-code warning in malloc_vsnprintf(). · 0bc716ae
      Chris Peterson authored
      Variables s and slen are declared inside a switch statement, but outside
      a case scope. clang reports these variable definitions as "unreachable",
      though this is not really meaningful in this case. This is the only
      -Wunreachable-code warning in jemalloc.
      
      src/util.c:501:5 [-Wunreachable-code] code will never be executed
      
      This resolves #364.
      0bc716ae