Merge x86-64 update from Andi
This commit is contained in:
@@ -60,8 +60,11 @@ long nr_swap_pages;
|
||||
* NORMAL allocation will leave 784M/256 of ram reserved in the ZONE_DMA
|
||||
* HIGHMEM allocation will leave 224M/32 of ram reserved in ZONE_NORMAL
|
||||
* HIGHMEM allocation will (224M+784M)/256 of ram reserved in ZONE_DMA
|
||||
*
|
||||
* TBD: should special case ZONE_DMA32 machines here - in those we normally
|
||||
* don't need any ZONE_NORMAL reservation
|
||||
*/
|
||||
int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1] = { 256, 32 };
|
||||
int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1] = { 256, 256, 32 };
|
||||
|
||||
EXPORT_SYMBOL(totalram_pages);
|
||||
|
||||
@@ -72,7 +75,7 @@ EXPORT_SYMBOL(totalram_pages);
|
||||
struct zone *zone_table[1 << ZONETABLE_SHIFT] __read_mostly;
|
||||
EXPORT_SYMBOL(zone_table);
|
||||
|
||||
static char *zone_names[MAX_NR_ZONES] = { "DMA", "Normal", "HighMem" };
|
||||
static char *zone_names[MAX_NR_ZONES] = { "DMA", "DMA32", "Normal", "HighMem" };
|
||||
int min_free_kbytes = 1024;
|
||||
|
||||
unsigned long __initdata nr_kernel_pages;
|
||||
@@ -124,7 +127,7 @@ static void bad_page(const char *function, struct page *page)
|
||||
printk(KERN_EMERG "Bad page state at %s (in process '%s', page %p)\n",
|
||||
function, current->comm, page);
|
||||
printk(KERN_EMERG "flags:0x%0*lx mapping:%p mapcount:%d count:%d\n",
|
||||
(int)(2*sizeof(page_flags_t)), (unsigned long)page->flags,
|
||||
(int)(2*sizeof(unsigned long)), (unsigned long)page->flags,
|
||||
page->mapping, page_mapcount(page), page_count(page));
|
||||
printk(KERN_EMERG "Backtrace:\n");
|
||||
dump_stack();
|
||||
@@ -1421,6 +1424,10 @@ static int __init build_zonelists_node(pg_data_t *pgdat, struct zonelist *zoneli
|
||||
zone = pgdat->node_zones + ZONE_NORMAL;
|
||||
if (zone->present_pages)
|
||||
zonelist->zones[j++] = zone;
|
||||
case ZONE_DMA32:
|
||||
zone = pgdat->node_zones + ZONE_DMA32;
|
||||
if (zone->present_pages)
|
||||
zonelist->zones[j++] = zone;
|
||||
case ZONE_DMA:
|
||||
zone = pgdat->node_zones + ZONE_DMA;
|
||||
if (zone->present_pages)
|
||||
@@ -1435,6 +1442,8 @@ static inline int highest_zone(int zone_bits)
|
||||
int res = ZONE_NORMAL;
|
||||
if (zone_bits & (__force int)__GFP_HIGHMEM)
|
||||
res = ZONE_HIGHMEM;
|
||||
if (zone_bits & (__force int)__GFP_DMA32)
|
||||
res = ZONE_DMA32;
|
||||
if (zone_bits & (__force int)__GFP_DMA)
|
||||
res = ZONE_DMA;
|
||||
return res;
|
||||
@@ -1846,11 +1855,10 @@ static int __devinit pageset_cpuup_callback(struct notifier_block *nfb,
|
||||
if (process_zones(cpu))
|
||||
ret = NOTIFY_BAD;
|
||||
break;
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
case CPU_UP_CANCELED:
|
||||
case CPU_DEAD:
|
||||
free_zone_pagesets(cpu);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1955,7 +1963,7 @@ static void __init free_area_init_core(struct pglist_data *pgdat,
|
||||
if (zholes_size)
|
||||
realsize -= zholes_size[j];
|
||||
|
||||
if (j == ZONE_DMA || j == ZONE_NORMAL)
|
||||
if (j < ZONE_HIGHMEM)
|
||||
nr_kernel_pages += realsize;
|
||||
nr_all_pages += realsize;
|
||||
|
||||
|
Reference in New Issue
Block a user