ia64/xen-unstable

view xen/common/Makefile @ 18645:48fba1dbcfaf

xmalloc: use tlsf algorithm

This patch replaces the Xen xmalloc engine with tlsf, an allocation
engine that is both more space efficient and time-bounded, especially
for allocation sizes between PAGE_SIZE/2 and PAGE_SIZE.

The file xmalloc.c is deprecated but not yet deleted. A simple
changein common/Makefile will change back to the legacy xmalloc/xfree
if needed for testing.

Code adapted from Nitin Gupta's tlsf-kmod, rev 229, found here:
http://code.google.com/p/compcache/source/browse/trunk/sub-projects/allocat=
ors/tlsf-kmod
with description and performance details here:
http://code.google.com/p/compcache/wiki/TLSFAllocator
(new Xen code uses 4K=3DPAGE_SIZE for the region size)

For detailed info on tlsf, see:
http://rtportal.upv.es/rtmalloc/

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Oct 16 11:09:50 2008 +0100 (2008-10-16)
parents 750788fdd42f
children c003e5a23a4e
line source
1 obj-y += bitmap.o
2 obj-y += domctl.o
3 obj-y += domain.o
4 obj-y += event_channel.o
5 obj-y += grant_table.o
6 obj-y += kernel.o
7 obj-y += keyhandler.o
8 obj-y += kexec.o
9 obj-y += lib.o
10 obj-y += memory.o
11 obj-y += multicall.o
12 obj-y += page_alloc.o
13 obj-y += rangeset.o
14 obj-y += sched_credit.o
15 obj-y += sched_sedf.o
16 obj-y += schedule.o
17 obj-y += shutdown.o
18 obj-y += softirq.o
19 obj-y += stop_machine.o
20 obj-y += string.o
21 obj-y += symbols.o
22 obj-y += sysctl.o
23 obj-y += time.o
24 obj-y += timer.o
25 obj-y += trace.o
26 obj-y += version.o
27 obj-y += vsprintf.o
28 obj-y += xmalloc_tlsf.o
29 obj-y += rcupdate.o
31 obj-$(perfc) += perfc.o
32 obj-$(crash_debug) += gdbstub.o
33 obj-$(xenoprof) += xenoprof.o
35 obj-$(CONFIG_XENCOMM) += xencomm.o
37 subdir-$(CONFIG_COMPAT) += compat
39 subdir-$(x86_32) += hvm
40 subdir-$(x86_64) += hvm
41 subdir-$(ia64) += hvm
43 subdir-y += libelf
45 # Object file contains changeset and compiler information.
46 version.o: $(BASEDIR)/include/xen/compile.h
48 ifeq ($(CONFIG_COMPAT),y)
49 # extra dependencies
50 grant_table.o: compat/grant_table.c
51 schedule.o: compat/schedule.c
52 xenoprof.o: compat/xenoprof.c
53 endif