Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9be4d457 authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge
Browse files

xen: add extra pages to balloon



Add extra pages in the pseudo-physical address space to the balloon
so we can extend into them later.

Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
parent e0419564
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ static void scrub_page(struct page *page)
}

/* balloon_append: add the given page to the balloon. */
static void balloon_append(struct page *page)
static void __balloon_append(struct page *page)
{
	/* Lowmem is re-populated first, so highmem pages go at list tail. */
	if (PageHighMem(page)) {
@@ -130,7 +130,11 @@ static void balloon_append(struct page *page)
		list_add(&page->lru, &ballooned_pages);
		balloon_stats.balloon_low++;
	}
}

static void balloon_append(struct page *page)
{
	__balloon_append(page);
	totalram_pages--;
}

@@ -416,10 +420,13 @@ static int __init balloon_init(void)
	register_balloon(&balloon_sysdev);

	/* Initialise the balloon with excess memory space. */
	for (pfn = xen_start_info->nr_pages; pfn < max_pfn; pfn++) {
	for (pfn = PFN_UP(xen_extra_mem_start);
	     pfn < PFN_DOWN(xen_extra_mem_start + xen_extra_mem_size);
	     pfn++) {
		page = pfn_to_page(pfn);
		if (!PageReserved(page))
			balloon_append(page);
		/* totalram_pages doesn't include the boot-time
		   balloon extension, so don't subtract from it. */
		__balloon_append(page);
	}

	target_watch.callback = watch_target;
+7 −0
Original line number Diff line number Diff line
#ifndef _XEN_PAGE_H
#define _XEN_PAGE_H

#include <asm/xen/page.h>

extern phys_addr_t xen_extra_mem_start, xen_extra_mem_size;

#endif	/* _XEN_PAGE_H */