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