r3216 - in trunk/varnish-cache: . bin/varnishd lib lib/libjemalloc

tfheen at projects.linpro.no tfheen at projects.linpro.no
Wed Sep 24 14:41:29 CEST 2008


Author: tfheen
Date: 2008-09-24 14:41:29 +0200 (Wed, 24 Sep 2008)
New Revision: 3216

Added:
   trunk/varnish-cache/lib/libjemalloc/Makefile.am
Removed:
   trunk/varnish-cache/lib/libjemalloc/Makefile
Modified:
   trunk/varnish-cache/bin/varnishd/Makefile.am
   trunk/varnish-cache/configure.ac
   trunk/varnish-cache/lib/Makefile.am
Log:
Use jemalloc by default on Linux

We seem to run into trouble with regular glibc malloc on Linux, so use
jemalloc instead of glibc's malloc.

This can be disabled using --disable-jemalloc


Modified: trunk/varnish-cache/bin/varnishd/Makefile.am
===================================================================
--- trunk/varnish-cache/bin/varnishd/Makefile.am	2008-09-24 12:41:27 UTC (rev 3215)
+++ trunk/varnish-cache/bin/varnishd/Makefile.am	2008-09-24 12:41:29 UTC (rev 3216)
@@ -79,6 +79,7 @@
 	$(top_builddir)/lib/libvarnish/libvarnish.la \
 	$(top_builddir)/lib/libvarnishcompat/libvarnishcompat.la \
 	$(top_builddir)/lib/libvcl/libvcl.la \
+	@JEMALLOC_LDADD@ \
 	${DL_LIBS} ${PTHREAD_LIBS} ${NET_LIBS} ${LIBM}
 
 EXTRA_DIST = default.vcl

Modified: trunk/varnish-cache/configure.ac
===================================================================
--- trunk/varnish-cache/configure.ac	2008-09-24 12:41:27 UTC (rev 3215)
+++ trunk/varnish-cache/configure.ac	2008-09-24 12:41:29 UTC (rev 3216)
@@ -340,6 +340,28 @@
 
 AC_DEFINE_UNQUOTED([VCC_CC],"$VCC_CC",[C compiler command line for VCL code])
 
+# Use jemalloc on Linux
+JEMALLOC_SUBDIR=
+JEMALLOC_LDADD=
+AC_ARG_ENABLE(jemalloc,
+AS_HELP_STRING([--disable-jemalloc],[do not use jemalloc (default is yes on Linux, no everywhere else)]),
+[if "x$enableval" = "xyes"; then
+	JEMALLOC_SUBDIR=libjemalloc
+	JEMALLOC_LDADD='$(top_builddir)/lib/libjemalloc/libjemalloc_mt.la'
+fi],
+[case $host in #(
+*-*-linux*)
+	JEMALLOC_SUBDIR=libjemalloc
+	JEMALLOC_LDADD='$(top_builddir)/lib/libjemalloc/libjemalloc_mt.la'
+	;; #(
+*)
+	true
+	;;
+esac])
+
+AC_SUBST(JEMALLOC_SUBDIR)
+AC_SUBST(JEMALLOC_LDADD)
+
 # Generate output
 AC_CONFIG_FILES([
     Makefile
@@ -361,6 +383,7 @@
     lib/libvarnishapi/Makefile
     lib/libvarnishcompat/Makefile
     lib/libvcl/Makefile
+    lib/libjemalloc/Makefile
     man/Makefile
     redhat/Makefile
     varnishapi.pc

Modified: trunk/varnish-cache/lib/Makefile.am
===================================================================
--- trunk/varnish-cache/lib/Makefile.am	2008-09-24 12:41:27 UTC (rev 3215)
+++ trunk/varnish-cache/lib/Makefile.am	2008-09-24 12:41:29 UTC (rev 3216)
@@ -4,4 +4,5 @@
 	libvarnish \
 	libvarnishapi \
 	libvarnishcompat \
-	libvcl
+	libvcl \
+	@JEMALLOC_SUBDIR@

Deleted: trunk/varnish-cache/lib/libjemalloc/Makefile
===================================================================
--- trunk/varnish-cache/lib/libjemalloc/Makefile	2008-09-24 12:41:27 UTC (rev 3215)
+++ trunk/varnish-cache/lib/libjemalloc/Makefile	2008-09-24 12:41:29 UTC (rev 3216)
@@ -1,23 +0,0 @@
-CFLAGS := -O3 -g
-# See source code comments to avoid memory leaks when enabling MALLOC_MAG.
-#CPPFLAGS := -DMALLOC_PRODUCTION -DMALLOC_MAG
-CPPFLAGS := -DMALLOC_PRODUCTION
-
-all: libjemalloc.so.0 libjemalloc_mt.so.0
-
-jemalloc_linux_mt.o: jemalloc_linux.c
-	gcc $(CFLAGS) -c -DPIC -fPIC $(CPPFLAGS) -D__isthreaded=true -o $@ $+
-
-jemalloc_linux.o: jemalloc_linux.c
-	gcc $(CFLAGS) -c -DPIC -fPIC $(CPPFLAGS) -D__isthreaded=false -o $@ $+
-
-libjemalloc_mt.so.0: jemalloc_linux_mt.o
-	gcc -shared -lpthread -o $@ $+
-	ln -sf $@ libjemalloc_mt.so
-
-libjemalloc.so.0: jemalloc_linux.o
-	gcc -shared -lpthread -o $@ $+
-	ln -sf $@ libjemalloc.so
-
-clean:
-	rm -f *.o *.so.0 *.so

Added: trunk/varnish-cache/lib/libjemalloc/Makefile.am
===================================================================
--- trunk/varnish-cache/lib/libjemalloc/Makefile.am	                        (rev 0)
+++ trunk/varnish-cache/lib/libjemalloc/Makefile.am	2008-09-24 12:41:29 UTC (rev 3216)
@@ -0,0 +1,27 @@
+# See source code comments to avoid memory leaks when enabling MALLOC_MAG.
+#CPPFLAGS := -DMALLOC_PRODUCTION -DMALLOC_MAG
+AM_CPPFLAGS := -DMALLOC_PRODUCTION
+
+#all: libjemalloc.so.0 libjemalloc_mt.so.0
+
+noinst_LTLIBRARIES = libjemalloc_mt.la
+
+libjemalloc_mt_la_LIBADD = ${PTHREAD_LIBS}
+libjemalloc_mt_la_LDFLAGS = -version-info 0:0:0 -static
+libjemalloc_mt_la_CFLAGS = -D__isthreaded=true
+
+libjemalloc_mt_la_SOURCES = jemalloc_linux.c
+
+#jemalloc_linux.o: jemalloc_linux.c
+#	gcc $(CFLAGS) -c -DPIC -fPIC $(CPPFLAGS) -D__isthreaded=false -o $@ $+
+
+#libjemalloc_mt.so.0: jemalloc_linux_mt.o
+#	gcc -shared -lpthread -o $@ $+
+#	ln -sf $@ libjemalloc_mt.so
+
+#libjemalloc.so.0: jemalloc_linux.o
+#	gcc -shared -lpthread -o $@ $+
+#	ln -sf $@ libjemalloc.so
+
+#clean:
+#	rm -f *.o *.so.0 *.so




More information about the varnish-commit mailing list