; ** This diff was from earlier tests in the day on 2011-04-28 **: diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c index a065fda..d8f206c 100644 --- a/drivers/xen/balloon.c +++ b/drivers/xen/balloon.c @@ -163,10 +163,12 @@ static void __balloon_append(struct page *page) { /* Lowmem is re-populated first, so highmem pages go at list tail. */ if (PageHighMem(page)) { + pr_info("(HighMem) &page->lru: 0x%p, ballooned_pages: 0x%p\n", &page->lru, &ballooned_pages); list_add_tail(&page->lru, &ballooned_pages); balloon_stats.balloon_high++; dec_totalhigh_pages(); } else { + pr_info("(LowMem) &page->lru: 0x%p, ballooned_pages: 0x%p\n", &page->lru, &ballooned_pages); list_add(&page->lru, &ballooned_pages); balloon_stats.balloon_low++; } @@ -488,10 +490,12 @@ static int __init balloon_init(void) */ extra_pfn_end = min(min(max_pfn, e820_end_of_ram_pfn()), (unsigned long)PFN_DOWN(xen_extra_mem_start + xen_extra_mem_size)); + pr_info("extra_pfn_end: 0x%lx", extra_pfn_end); /* debug */ for (pfn = PFN_UP(xen_extra_mem_start); pfn < extra_pfn_end; pfn += balloon_npages) { page = pfn_to_page(pfn); + pr_info("pfn: 0x%lx, page: 0x%p\n", pfn, page); /* debug */ /* totalram_pages doesn't include the boot-time balloon extension, so don't subtract from it. */ __balloon_append(page); ********************************* ********************************* ; ** I removed the pr_info() lines from within the for() loop after ** ; ** hexediting the "multiply pfn by 0x38" instruction to multiply by 1 ** ; ** instead. I put one outside of the loop, so what ends up being ** ; ** shown by it is still the one that is multiplied by 0x38 while the ** ; ** value of the one actually being operated on is multiplied by 0x1 ** diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c index a065fda..c02be96 100644 --- a/drivers/xen/balloon.c +++ b/drivers/xen/balloon.c @@ -488,6 +488,8 @@ static int __init balloon_init(void) */ extra_pfn_end = min(min(max_pfn, e820_end_of_ram_pfn()), (unsigned long)PFN_DOWN(xen_extra_mem_start + xen_extra_mem_size)); + pfn = PFN_UP(xen_extra_mem_start); /* debug */ + pr_info("extra_pfn_end: 0x%lx, pfn: %lx, page: %p\n", extra_pfn_end, pfn, pfn_to_page(pfn)); /* debug */ for (pfn = PFN_UP(xen_extra_mem_start); pfn < extra_pfn_end; pfn += balloon_npages) {