[PATCH] Optimize free_one_page
Free one_page currently adds the page to a fake list and calls free_page_bulk. Fee_page_bulk takes it off again and then calles __free_one_page. Make free_one_page go directly to __free_one_page. Saves list on / off and a temporary list in free_one_page for higher ordered pages. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
46a82b2d55
Коммит
006d22d9bb
|
@ -448,9 +448,11 @@ static void free_pages_bulk(struct zone *zone, int count,
|
|||
|
||||
static void free_one_page(struct zone *zone, struct page *page, int order)
|
||||
{
|
||||
LIST_HEAD(list);
|
||||
list_add(&page->lru, &list);
|
||||
free_pages_bulk(zone, 1, &list, order);
|
||||
spin_lock(&zone->lock);
|
||||
zone->all_unreclaimable = 0;
|
||||
zone->pages_scanned = 0;
|
||||
__free_one_page(page, zone ,order);
|
||||
spin_unlock(&zone->lock);
|
||||
}
|
||||
|
||||
static void __free_pages_ok(struct page *page, unsigned int order)
|
||||
|
|
Загрузка…
Ссылка в новой задаче