Re: [RFC] buddy allocator without bitmap(2) [1/3]
From: Dave Hansen <hidden>
Date: 2004-08-31 16:33:08
Also in:
lkml
On Tue, 2004-08-31 at 03:41, Hiroyuki KAMEZAWA wrote:
+static void __init calculate_aligned_end(struct zone *zone, + unsigned long start_pfn, + int nr_pages)
...
+ end_address = (zone->zone_start_pfn + end_idx) << PAGE_SHIFT; +#ifndef CONFIG_DISCONTIGMEM + reserve_bootmem(end_address,PAGE_SIZE); +#else + reserve_bootmem_node(zone->zone_pgdat,end_address,PAGE_SIZE); +#endif + } + return; +}
What if someone has already reserved that address? You might not be able to grow the zone, right?
quoted hunk ↗ jump to hunk
/* * Initially all pages are reserved - free ones are freed@@ -1510,7 +1574,9 @@ void __init memmap_init_zone(unsigned lo { struct page *start = pfn_to_page(start_pfn); struct page *page; - + unsigned long saved_start_pfn = start_pfn; + struct zone *zonep = zone_table[NODEZONE(nid, zone)];
If you're going to calculate NODEZONE() twice, you might as well just move it into its own variable.
+ /* Because memmap_init_zone() is called in suitable way + * even if zone has memory holes, + * calling calculate_aligned_end(zone) here is reasonable + */ + calculate_aligned_end(zonep, saved_start_pfn, size);
Could you please elaborate on "suitable way". That comment really doesn't say anything. -- Dave -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>