Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 Dec 2005 16:26:02 +0800
From:      David Xu <davidxu@freebsd.org>
To:        Jason Evans <jasone@canonware.com>
Cc:        current@freebsd.org
Subject:   Re: New libc malloc patch
Message-ID:  <4391569A.7080808@freebsd.org>
In-Reply-To: <0B746373-8C29-4ADF-9218-311AE08F3834@canonware.com>
References:  <B6653214-2181-4342-854D-323979D23EE8@canonware.com>	<Pine.LNX.4.53.0511291121360.27754@regurgitate.ugcs.caltech.edu> <0B746373-8C29-4ADF-9218-311AE08F3834@canonware.com>

index | next in thread | previous in thread | raw e-mail

Jason Evans wrote:
> On Nov 29, 2005, at 12:06 PM, Jon Dama wrote:
> 
>> There exists a problem right now--localized to i386 and any other arch
>> based on 32-bit pointers: address space is simply too scarce.
>>
>> Your decision to switch to using mmap as the exclusive source of  malloc
>> buckets is admirable for its modernity but it simply cannot stand  unless
>> someone steps up to change the way mmap and brk interact within the
>> kernel.
> 
> 
> There's a new version of the patch available at:
> 
> http://www.canonware.com/~jasone/jemalloc/jemalloc_20051202b.diff
> 
> This version of the patch adds the following:
> 
> * Prefer to use sbrk() rather than mmap() for the 32-bit platforms.
> 
> * Lazily create arenas, so that single-threaded applications don't  
> dedicate space to arenas they never use.
> 
> * Add the '*' and '/' MALLOC_OPTIONS flags, which allow control over  
> the number of arenas.
> 
> As of this patch, all of the issues that were brought to my attention  
> have been addressed.  This is a good time for additional review and  
> serious benchmarking.
> 
> Thanks,
> Jason

I have a question about mutex used in the patch, you are using
a spin loop, isn't it suboptimal ? and a thread library like libpthread
supports static priority scheduling, this mutex does not work, it
will causes a dead lock, if a lower priority thread locked the mutex,
and preempted by a higher priority thread, and the higher priority
thread also calls malloc, it will spin there to wait lower
priority thread to complete, but that will never happen.

David Xu




home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4391569A.7080808>