cvs commit: src/lib/libc/include libc_private.h src/lib/libc/stdlib malloc.3 malloc.c src/lib/libthr/thread thr_exit.c

Jason Evans jasone at
Wed Aug 27 02:01:11 UTC 2008

jasone      2008-08-27 02:00:53 UTC

  FreeBSD src repository

  Modified files:
    lib/libc/include     libc_private.h 
    lib/libc/stdlib malloc.3 malloc.c 
    lib/libthr/thread    thr_exit.c 
  SVN rev 182225 on 2008-08-27 02:00:53Z by jasone
  Add thread-specific caching for small size classes, based on magazines.
  This caching allows for completely lock-free allocation/deallocation in the
  steady state, at the expense of likely increased memory use and
  Reduce the default number of arenas to 2*ncpus, since thread-specific
  caching typically reduces arena contention.
  Modify size class spacing to include ranges of 2^n-spaced, quantum-spaced,
  cacheline-spaced, and subpage-spaced size classes.  The advantages are:
  fewer size classes, reduced false cacheline sharing, and reduced internal
  fragmentation for allocations that are slightly over 512, 1024, etc.
  Increase RUN_MAX_SMALL, in order to limit fragmentation for the
  subpage-spaced size classes.
  Add a size-->bin lookup table for small sizes to simplify translating sizes
  to size classes.  Include a hard-coded constant table that is used unless
  custom size class spacing is specified at run time.
  Add the ability to disable tiny size classes at compile time via
  Revision  Changes     Path
  1.20      +6 -0       src/lib/libc/include/libc_private.h
  1.9       +1 -0       src/lib/libc/stdlib/
  1.79      +52 -25     src/lib/libc/stdlib/malloc.3
  1.177     +1080 -231  src/lib/libc/stdlib/malloc.c
  1.30      +4 -0       src/lib/libthr/thread/thr_exit.c

More information about the cvs-all mailing list