- Jan 01, 2013
-
-
Avi Kivity authored
We currently leak a pool page, because we cannot unlink the free objects belonging to the page from the pool's free list. Fix by having a per-page free list (containing objects only from that page). The pages are themselves placed on a doubly linked list. When we identify an empty page, we can now easily drop it since the local free list only point within the page.
-
Avi Kivity authored
We kept pool::_free pointing at a freed object. Naturally things did not work well. Fix by nulling the pointer for now, however this leaks the rest of the free list.
-
Avi Kivity authored
Must be large enough to hold a free_object.
-
Avi Kivity authored
Pages allocated with alloc_page() have no metadata, so we must format the header before returing it to the free range tree.
-
- Dec 28, 2012
-
-
Avi Kivity authored
-
- Dec 27, 2012
-
-
Avi Kivity authored
-
Avi Kivity authored
-
- Dec 26, 2012
-
-
Avi Kivity authored
This implementation stores small objects in pools of similar-sized objects, while large objects are allocated using a first-fit algorithm. There is also a specialized interface for allocating aligned pages.
-