From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, URIBL_BLOCKED shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: mm@80x24.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id E789E1F624; Wed, 30 Jul 2014 21:38:57 +0000 (UTC) Date: Wed, 30 Jul 2014 21:38:57 +0000 From: Eric Wong To: mm@80x24.org Subject: [PATCH xtmalloc] rename to femalloc Message-ID: <20140730213857.GA1913@dcvr.yhbt.net> References: <20140730193811.GB11139@dcvr.yhbt.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140730193811.GB11139@dcvr.yhbt.net> List-Id: XtMalloc is used by X Toolkit, so that can potentially be confusing to people searching for information. The search for a good malloc feels like a fool's errand, so 'fe' it is. --- HACKING | 12 +++++------ Makefile.am | 12 +++++------ README | 41 ++++++++++++++++++++++--------------- build-aux/static-deps.mk | 20 +++++++++--------- configure.ac | 10 ++++----- xtmalloc.c => femalloc.c | 8 ++++---- xtmalloc.h => femalloc.h | 0 test/.gitignore | 2 +- test/{t-xtmalloc.c => t-femalloc.c} | 0 9 files changed, 57 insertions(+), 48 deletions(-) rename xtmalloc.c => femalloc.c (99%) rename xtmalloc.h => femalloc.h (100%) rename test/{t-xtmalloc.c => t-femalloc.c} (100%) diff --git a/HACKING b/HACKING index 24ab4a5..f0aa0cd 100644 --- a/HACKING +++ b/HACKING @@ -10,8 +10,8 @@ user builds and installation, but highly recommended for hackers. * libtool - https://www.gnu.org/software/libtool/ * git - https://www.git-scm.com/ -$ git clone git://80x24.org/xtmalloc -$ cd xtmalloc && ./bootstrap +$ git clone git://80x24.org/femalloc +$ cd femalloc && ./bootstrap Generally, the versions of these tools bundled with the latest stable release of Debian GNU/Linux will work. @@ -35,14 +35,14 @@ Linux kernel projects. Development happens on the mailing list and be open to anybody with an email client capable of sending plain-text email. No registration or graphical interface will ever be required to -contribute to xtmalloc. +contribute to femalloc. Email patches (git format-patch + git send-email) and pull requests to -our public mailing list at xtmalloc-public@80x24.org +our public memory-management-related mailing list at mm@80x24.org No subscription is necessary to post, you will be Cc-ed on replies. Do not send HTML email. -Subscribe (optional): xtmalloc-public+subscribe@80x24.org -Unsubscribe: xtmalloc-public+unsubscribe@80x24.org +Subscribe (optional): mm+subscribe@80x24.org +Unsubscribe: mm+unsubscribe@80x24.org Hack away! diff --git a/Makefile.am b/Makefile.am index 1c0d19d..89a1c71 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,11 +8,11 @@ AM_CPPFLAGS = \ -DLIBEXECDIR=\""$(libexecdir)"\" \ -I${top_srcdir} AM_CFLAGS = $(WARN_CFLAGS) $(PTHREAD_CFLAGS) $(OPTFLAGS) -lib_LTLIBRARIES = libxtmalloc.la -libxtmalloc_la_SOURCES = xtmalloc.c xtmalloc.h xtlifo.h +lib_LTLIBRARIES = libfemalloc.la +libfemalloc_la_SOURCES = femalloc.c femalloc.h xtlifo.h -TESTS = test/t-xtmalloc +TESTS = test/t-femalloc -check_PROGRAMS = test/t-xtmalloc -test_t_xtmalloc_SOURCES = test/t-xtmalloc.c -test_t_xtmalloc_LDADD = libxtmalloc.la +check_PROGRAMS = test/t-femalloc +test_t_femalloc_SOURCES = test/t-femalloc.c +test_t_femalloc_LDADD = libfemalloc.la diff --git a/README b/README index fd6309b..395f3de 100644 --- a/README +++ b/README @@ -1,31 +1,40 @@ -xtmalloc - cross-thread malloc implementation +femalloc - cross-thread malloc implementation --------------------------------------------- -xtmalloc is malloc implementation designed for applications which -communicate and share allocations across different threads. It is not -intended to be the fastest allocator in synthetic benchmarks. +femalloc is general-purpose malloc implementation focused on +multi-threaded applications which allocate and free across threads. It +is not intended to be the fastest allocator in synthetic benchmarks; but +should provide a good balance between low fragmentation and speed. It is based on the venerable dlmalloc written by Doug Lea available at ftp://gee.cs.oswego.edu/pub/misc/malloc.c -xtmalloc designed and optimized with modern x86-64 and x86 processors in -mind. x86-64 systems require a working cmpxchg16b instruction, thus the -original AMD Opterons from circa 2005 are not supported. Performance on -other platforms is likely to be suboptimal. +femalloc is tuned with 2010s-era x86-64 systems running a modern Linux +kernel in mind. x86-64 systems require a working cmpxchg16b +instruction, thus the original AMD Opterons from circa 2005 are not +supported. Performance on other platforms is likely to suboptimal. +Non-Free platforms are not supported, especially those which make +overriding the system malloc implementation difficult. Legal ----- -Copyright (C) 2014, all contributors, see git://80x24.org/xtmalloc +Copyright (C) 2014, all contributors, see git://80x24.org/femalloc License: LGPLv2.1 or later -xtmalloc is based on a version (aka dlmalloc 2.8.6) of malloc/free/realloc -written by Doug Lea and released to the public domain, as explained at -http://creativecommons.org/publicdomain/zero/1.0/ +femalloc is based on a public domain (explained at [CC0]) version +of malloc/free/realloc written by Doug Lea (dlmalloc 2.8.6) The original version of dlmalloc is available at ftp://gee.cs.oswego.edu/pub/misc/ -xtmalloc chooses the LGPL to allow static linking with Userspace RCU -library . Non-URCU-related improvements are -encouraged to be placed in the public domain so they may be used -in future version of dlmalloc by Doug Lea. +femalloc chooses the LGPL in order to use static inline functions +exported by the Userspace RCU library . +Non-concurrency-related improvements are encouraged to be placed in the +public domain[CC0] so they may be used in future versions of dlmalloc +by Doug Lea. + +[CC0] - http://creativecommons.org/publicdomain/zero/1.0/ + +Etymology +--------- +fe = fool's errand. That is what working on memory management feels like :P diff --git a/build-aux/static-deps.mk b/build-aux/static-deps.mk index c326f21..a837bd5 100644 --- a/build-aux/static-deps.mk +++ b/build-aux/static-deps.mk @@ -19,7 +19,7 @@ TOP_BUILDDIR = . prefix = $(CURDIR)/local # default build target -all:: xtmalloc-conf +all:: femalloc-conf build:: install:: @@ -33,25 +33,25 @@ ifneq ($(SKIP_URCU),yes) build:: urcu-build install:: urcu-install # not needed at the moment, only using headers -# xtmalloc_libs += $(prefix)/lib/liburcu-cds.a +# femalloc_libs += $(prefix)/lib/liburcu-cds.a endif -xtmalloc_conf_opts = $(CONF_OPTS) -xtmalloc_conf_opts += CPPFLAGS=-I$(prefix)/include +femalloc_conf_opts = $(CONF_OPTS) +femalloc_conf_opts += CPPFLAGS=-I$(prefix)/include $(TOP_SRCDIR)/configure: $(TOP_SRCDIR)/configure.ac $(TOP_SRCDIR)/configure: $(TOP_SRCDIR)/Makefile.am cd $(TOP_SRCDIR) && ./bootstrap -xtmalloc-conf:: install $(TOP_SRCDIR)/configure - cd $(TOP_BUILDDIR) && $(TOP_SRCDIR)/configure $(xtmalloc_conf_opts) +femalloc-conf:: install $(TOP_SRCDIR)/configure + cd $(TOP_BUILDDIR) && $(TOP_SRCDIR)/configure $(femalloc_conf_opts) ck_dir := $(prefix)/src/ck -$(ck_dir)/.git/xtmalloc-stamp: +$(ck_dir)/.git/femalloc-stamp: @mkdir -p $(prefix)/src git clone $(CK_GIT_URL) $(ck_dir) > $@ ck_commit := b45f94a61186fccdd2997a4dae13669d2a52d047 -ck-uptodate: $(ck_dir)/.git/xtmalloc-stamp +ck-uptodate: $(ck_dir)/.git/femalloc-stamp ( cd $(ck_dir) && \ test "$(ck_commit)" = "$$(git rev-parse HEAD^0)" || git fetch ) cd $(ck_dir) && git reset --hard $(ck_commit) @@ -66,14 +66,14 @@ ck-install: ck-build $(MAKE) -C $(ck_dir) install urcu_dir := $(prefix)/src/urcu -$(urcu_dir)/.git/xtmalloc-stamp: +$(urcu_dir)/.git/femalloc-stamp: @mkdir -p $(prefix)/src git clone $(URCU_GIT_URL) $(urcu_dir) > $@ urcu_ref := refs/remotes/origin/stable-0.8 urcu_commit := 60e5f96dc8e2ca1dc07c0ab92385fa5c3bad77d0 -urcu-uptodate: $(urcu_dir)/.git/xtmalloc-stamp +urcu-uptodate: $(urcu_dir)/.git/femalloc-stamp ( cd $(urcu_dir) && \ test "$(urcu_commit)" = "$$(git rev-parse $(urcu_ref))" || git fetch ) cd $(urcu_dir) && git reset --hard $(urcu_commit) diff --git a/configure.ac b/configure.ac index 6aa7c53..0f0b284 100644 --- a/configure.ac +++ b/configure.ac @@ -1,9 +1,9 @@ -AC_INIT([xtmalloc], +AC_INIT([femalloc], m4_esyscmd([build-aux/git-version-gen .tarball-version]), - [xtmalloc-public@80x24.org], - [xtmalloc], - [http://xtmalloc.80x24.net/]) -AC_CONFIG_SRCDIR([xtmalloc.c]) + [mm@80x24.org], + [femalloc], + [http://femalloc.80x24.net/]) +AC_CONFIG_SRCDIR([femalloc.c]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign silent-rules parallel-tests subdir-objects -Wall]) AM_SILENT_RULES([yes]) diff --git a/xtmalloc.c b/femalloc.c similarity index 99% rename from xtmalloc.c rename to femalloc.c index 0fd67be..83ca672 100644 --- a/xtmalloc.c +++ b/femalloc.c @@ -1,8 +1,8 @@ /* - xtmalloc is malloc implementation designed for applications which + femalloc is malloc implementation designed for applications which communicate and share allocations across different threads. - Copyright (C) 2014, all contributors, see git://80x24.org/xtmalloc + Copyright (C) 2014, all contributors, see git://80x24.org/femalloc License: LGPLv2.1 or later This is based on a version (aka dlmalloc 2.8.6) of malloc/free/realloc @@ -11,7 +11,7 @@ The original version of dlmalloc is available at ftp://gee.cs.oswego.edu/pub/misc/ - xtmalloc chooses the LGPL to allow static linking with Userspace RCU + femalloc chooses the LGPL to allow static linking with Userspace RCU library . Non-URCU-related improvements are encouraged to be placed in the public domain so they may be used in future version of dlmalloc by Doug Lea. @@ -444,7 +444,7 @@ DLMALLOC_EXPORT void mspace_free(mspace msp, void* mem); ======================================================================== */ -#include "xtmalloc.h" +#include "femalloc.h" /*------------------------------ internal #includes ---------------------- */ diff --git a/xtmalloc.h b/femalloc.h similarity index 100% rename from xtmalloc.h rename to femalloc.h diff --git a/test/.gitignore b/test/.gitignore index ed38d50..2e955ef 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1 +1 @@ -t-xtmalloc +t-femalloc diff --git a/test/t-xtmalloc.c b/test/t-femalloc.c similarity index 100% rename from test/t-xtmalloc.c rename to test/t-femalloc.c -- EW