Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Jan 2002 12:42:59 -0800
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Alfred Perlstein <bright@mu.org>
Cc:        smp@freebsd.org, jhb@freebsd.org, dillon@freebsd.org
Subject:   Re: making malloc(9) smp safe?
Message-ID:  <3C41F153.DCA0A4F3@mindspring.com>
References:  <20020113050836.Q7984@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Alfred Perlstein wrote:
> Malloc has its own mutex, however when it needs to do page allocations
> via kmem_malloc() it drops the mutex and calls it.
> 
> kmem_malloc() needs giant.
> 
> what do I do?
> 
> Do I grab giant before calling malloc(9)?
> Do I make malloc(9) aquire or recurse on giant automatically?
>   (basically grab giant around kmem_malloc() call in malloc(9))
> 
> ?


The way Dynix does this (see UNIX Internals: The New Frontiers,
Uresh Vahalia, Chapter 12 Kernel Memory Allocation, 12.9 A
Hierarchical Allocator for Multiprocessors) is to seperate the
memory into a global pool, and per CPU pools, with a seperate
Coelesce-to-Page layer.

Here are some nice papers:

	http://www.research.ibm.com/K42/full-hotos-01.ps
	http://citeseer.nj.nec.com/mckenney96selecting.html
	http://citeseer.nj.nec.com/54799.html
	http://citeseer.nj.nec.com/bonwick94slab.html
	http://citeseer.nj.nec.com/wilson95dynamic.html
	http://citeseer.nj.nec.com/gamsa99tornado.html

Yyou can get a copy of the original paper:

	"Efficient Kernel Memory Allocation on Shared-Memory
	 Multiprocessors"
	P.E. McKenney, J. Slingwine
	Processdings of Usenix, Winter, 1993 (p295-305).

Paul's current email address is: pmckenne@us.ibm.com (he works
in the Linux Technology Center at IBM Watson Research).  You
can get the mother of all papers on SMP kernel memory allocation
from his home page at:

	http://www.rdrop.com/users/paulmck

He has quite a nice set of papers on SMP, locking, and memory
allocation.

Here is another paper he's been involved with recently; it's also
quite applicable to the problem at hand:

	http://lwn.net/2001/features/OLS/pdf/pdf/read-copy.pdf

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C41F153.DCA0A4F3>