Date: Thu, 09 Dec 1999 11:24:13 -0600 From: Emery Berger <emery@cs.utexas.edu> To: freebsd-hackers@FreeBSD.ORG Cc: Rayson Ho <raysonlogin@yahoo.com> Subject: Re: Faster Malloc Message-ID: <384FE5BD.8C0B4A88@cs.utexas.edu>
next in thread | raw e-mail | index | archive | help
Alfred Perlstein <bright@wintelcom.net> wrote: (regarding Hoard: <http://www.cs.utexas.edu/users/emery/hoard>) > This allocator is pretty much what the Dynix allocator is, it wouldn't be > difficult to clean-room implement this with a BSD license. > > They should have given credit to Dynix or at least Uresh Vahalia > (discussed on page 390 of his book Unix Internals section 12.9). Hi all, The DYNIX kernel allocator was by McKenney and Slingwine, and I'll be citing them in a revised version of the paper. While there are a number of differences between my allocator (Hoard) and theirs, the most important are locality related. I'll just bring up one here: false sharing. Using the McKenney & Slingwine allocator (or the new Cilk allocator, discussed in my paper), a cache line can end up distributed across every CPU's free list and repeatedly re-used. This happens because freed blocks are placed back on a CPU's own freelist. This effect has been observed in practice and can dramatically worsen application performance. Hoard prevents this effect. Each superblock is owned by exactly one processor. When processor A free()'s a block from another CPU's superblock, it is put back in the superblock, and so will not be re-used by processor A's next malloc(). Regards, -- Emery -- Emery Berger | Parallel Programming emery@cs.utexas.edu | & Multiprogramming MP Groups <http://www.cs.utexas.edu/users/emery> | University of Texas at Austin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?384FE5BD.8C0B4A88>