Alfred Perlstein <[EMAIL PROTECTED]> 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
[EMAIL PROTECTED]                    | & Multiprogramming MP Groups 
<http://www.cs.utexas.edu/users/emery> | University of Texas at Austin


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to