mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 16:14:13 +08:00
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: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
This commit is contained in:
parent
e04195644e
commit
9be4d45759
@ -119,7 +119,7 @@ static void scrub_page(struct page *page)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* balloon_append: add the given page to the balloon. */
|
/* 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. */
|
/* Lowmem is re-populated first, so highmem pages go at list tail. */
|
||||||
if (PageHighMem(page)) {
|
if (PageHighMem(page)) {
|
||||||
@ -130,7 +130,11 @@ static void balloon_append(struct page *page)
|
|||||||
list_add(&page->lru, &ballooned_pages);
|
list_add(&page->lru, &ballooned_pages);
|
||||||
balloon_stats.balloon_low++;
|
balloon_stats.balloon_low++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void balloon_append(struct page *page)
|
||||||
|
{
|
||||||
|
__balloon_append(page);
|
||||||
totalram_pages--;
|
totalram_pages--;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -416,10 +420,13 @@ static int __init balloon_init(void)
|
|||||||
register_balloon(&balloon_sysdev);
|
register_balloon(&balloon_sysdev);
|
||||||
|
|
||||||
/* Initialise the balloon with excess memory space. */
|
/* 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);
|
page = pfn_to_page(pfn);
|
||||||
if (!PageReserved(page))
|
/* totalram_pages doesn't include the boot-time
|
||||||
balloon_append(page);
|
balloon extension, so don't subtract from it. */
|
||||||
|
__balloon_append(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
target_watch.callback = watch_target;
|
target_watch.callback = watch_target;
|
||||||
|
@ -1 +1,8 @@
|
|||||||
|
#ifndef _XEN_PAGE_H
|
||||||
|
#define _XEN_PAGE_H
|
||||||
|
|
||||||
#include <asm/xen/page.h>
|
#include <asm/xen/page.h>
|
||||||
|
|
||||||
|
extern phys_addr_t xen_extra_mem_start, xen_extra_mem_size;
|
||||||
|
|
||||||
|
#endif /* _XEN_PAGE_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user