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
Greg Burd 53f5df3999 merged commit 831abf2 from illumos-gate
7236 libumem should be able to abort() when an allocation fails
2016-11-30 10:43:02 -05:00
amd64 Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -04:00
i386 Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -04:00
sparc Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -04:00
sys Initial merge from Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
.cvsignore Add --enable-malloc-replacement option, for using libumem as a malloc replacement 2006-09-03 12:48:23 +00:00
.gitignore Ignore some generated build files. 2015-08-22 19:19:08 -04:00
AUTHORS Build a basic shared library on Linux; may not work! 2006-03-11 17:15:25 +00:00
autogen.sh don't clobber our nice copyright file with GPL 2006-03-11 18:55:22 +00:00
ChangeLog Build a basic shared library on Linux; may not work! 2006-03-11 17:15:25 +00:00
configure.ac Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -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 merged commit 831abf2 from illumos-gate 2016-11-30 10:43:02 -05:00
gdb-macros add gdb macros 2007-03-17 22:46:01 +00:00
getpcstack.c Initial merge from Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
i386_subr_sol.s Initial revision 2006-03-10 02:45:59 +00:00
init_lib.c Initial merge from Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
init_stand.c Initial revision 2006-03-10 02:45:59 +00:00
linktest_stand.c Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
Makefile.am move umem_startup constructor to the umem .so itself, rather than 2010-06-26 13:10:39 +00:00
malloc.c Fix the platform ifdef. 2015-08-23 14:56:44 -04:00
misc.c Initial merge from Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
misc.h Initial merge from Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -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 update copyright info 2008-06-03 03:48:16 +00: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 revision 2006-03-10 02:45:59 +00:00
stub_stand.c Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
TODO Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -04:00
umem.c merged commit 831abf2 from illumos-gate 2016-11-30 10:43:02 -05: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 Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
umem_alloc.3 Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
umem_base.h Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
umem_cache_create.3 Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
umem_debug.3 Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
umem_fail.c merged commit 831abf2 from illumos-gate 2016-11-30 10:43:02 -05:00
umem_fork.c Sync with the current sources from onnv-gate. 2010-06-26 16:02:39 +00:00
umem_impl.h merged commit 831abf2 from illumos-gate 2016-11-30 10:43:02 -05:00
umem_test.c Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -04:00
umem_test2.c Adding missing genasm/ptc platform specific sources. 2015-08-23 14:56:49 -04: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 Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
vmem.c Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
vmem_base.c Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
vmem_base.h Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -04:00
vmem_mmap.c Initial merge from Joyent including the vmem_allocator strategy additions. 2012-03-17 11:32:48 -04:00
vmem_sbrk.c Raw, untested merge of illumos-{joyent,omnios} trying to bring in the per-thread cache (ptc) changes. 2015-08-22 15:40:44 -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