This is the user space slab memory allocator, umem, first available in Solaris 9 (SunOS 5.4) now the default allocator on Solaris and Illumos. This implementation has been ported to other popular operating systems, such as Linux, Windows and BSDish systems (including Darwin/OSX) by OmniTI (portableumem) and includes changes made by Joyent as part of their ongoing work to improve SmartOS.
Find a file
2014-03-15 12:30:00 -04:00
amd64 First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
i386 First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
sys Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
umemdbg/mdb/common Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
.cvsignore Add --enable-malloc-replacement option, for using libumem as a malloc replacement 2006-09-03 12:48:23 +00:00
.gitignore First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
atomic.h First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
AUTHORS Build a basic shared library on Linux; may not work! 2006-03-11 17:15:25 +00:00
autogen.sh First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
ChangeLog Build a basic shared library on Linux; may not work! 2006-03-11 17:15:25 +00:00
configure.ac First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
COPYING Build a basic shared library on Linux; may not work! 2006-03-11 17:15:25 +00:00
COPYRIGHT update copyright info 2008-06-03 03:48:16 +00:00
Doxyfile.in Use doxygen to build docs; generate spec file using configure; use tar.bz2 instead of tar.gz 2006-05-13 20:37:27 +00:00
envvar.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
gdb-macros add gdb macros 2007-03-17 22:46:01 +00:00
getpcstack.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
i386_subr_sol.s Initial revision 2006-03-10 02:45:59 +00:00
init_lib.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
init_stand.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
INSTALL First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
linktest_stand.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
Makefile.am First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
malloc.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
misc.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
misc.h Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
NEWS Build a basic shared library on Linux; may not work! 2006-03-11 17:15:25 +00:00
OPENSOLARIS.LICENSE Initial revision 2006-03-10 02:45:59 +00:00
README Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
README-alpha tweak for svn 2007-03-17 17:31:57 +00:00
sol_compat.h Sync with the current sources from onnv-gate. 2010-06-26 16:02:39 +00:00
sparc_subr_sol.s Initial revision 2006-03-10 02:45:59 +00:00
stand_mapfile Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
stub_stand.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
tmem.c First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
TODO Use doxygen to build docs; generate spec file using configure; use tar.bz2 instead of tar.gz 2006-05-13 20:37:27 +00:00
umem.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
umem.h Use doxygen to build docs; generate spec file using configure; use tar.bz2 instead of tar.gz 2006-05-13 20:37:27 +00:00
umem.spec.in packaging tweaks from Rich 2007-09-04 14:05:27 +00:00
umem_agent_support.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
umem_alloc.3 add man pages from opensolaris 2007-03-17 18:03:10 +00:00
umem_base.h First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
umem_cache_create.3 add man pages from opensolaris 2007-03-17 18:03:10 +00:00
umem_debug.3 add man pages from opensolaris 2007-03-17 18:03:10 +00:00
umem_fail.c First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
umem_fork.c Sync with the current sources from onnv-gate. 2010-06-26 16:02:39 +00:00
umem_impl.h First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
umem_test.c First steps integrating per-thread caching work from the Illumos branch of libumem into my fork of portable-umem. Next up, a portable tmem (thread-local memory) implementation. 2014-03-15 12:30:00 -04:00
umem_test2.c Add another test program 2006-07-25 20:15:33 +00:00
umem_test3.c fixup malloc replacement on 64-bit systems; was missing a configure check. 2007-08-03 15:05:00 +00:00
umem_test4 fix portability issue reported by Mito 2008-06-03 03:39:58 +00:00
umem_update_thread.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
vmem.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
vmem_base.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
vmem_base.h Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
vmem_mmap.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
vmem_sbrk.c Initial merge from Illumos/Joyent repo of per-thread cache logic. Also started to include pieces of mdb to build a command line tool to introspect libumem at runtime for debugging. 2013-07-19 10:45:59 -04:00
vmem_stand.c Initial revision 2006-03-10 02:45:59 +00:00
vmem_stand.h Initial revision 2006-03-10 02:45:59 +00:00

Portable libumem.
================

This is a port of Solaris libumem to non-Solaris systems.

The port was made while integrating libumem with our Ecelerity MTA product, so
your initial experience will not be 100% out-of-the-box, because there is no
standalone configure script for the library at this time. (patches welcome!)

In addition, since our deployment is threaded, we force the library into
threaded mode.

While the library is itself stable (it's the memory allocator used by the
Solaris OS), the port may have a few rough edges.  We're shipping umem with
Linux and Windows versions of our product as we have found it to be stable.

We will continue to update this project as and when we make improvements, and
welcome third-party patches that improve the usability for everyone.


Wez Furlong,
Message Systems, Inc.
wez (at) messagesystems (dot) com


$ UMEM_OPTIONS=allocator=best ./umem_test
Hello hello there

UMEM_OPTIONS=allocator=best
=best, =first, =next, or =instant