memory hotplug prototype for ia64
Subsystems (2)
PATCH 1/2 memory hotplug prototype for ia64
This is a main patch of memory hotplug prototype for ia64.
arch/ia64/Kconfig +5 -1
@@ -182,10 +182,14 @@ config VIRTUAL_MEM_MAP require the DISCONTIGMEM option for your machine. If you are unsure, say Y. +config MEMHOTPLUG + bool "Memory hotplug test" + default n + config DISCONTIGMEM bool "Discontiguous memory support" depends on (IA64_DIG || IA64_SGI_SN2 || IA64_GENERIC) && NUMA && VIRTUAL_MEM_MAP - default y if (IA64_SGI_SN2 || IA64_GENERIC) && NUMA + default y if (IA64_SGI_SN2 || IA64_GENERIC) && (NUMA || MEMHOTPLUG) help Say Y to support efficient handling of discontiguous physical memory, for architectures which are either NUMA (Non-Uniform Memory Access)
arch/ia64/mm/discontig.c +63 -0
70 lines not on this page · raw message
mm/page_alloc.c +6 -0
@@ -1148,6 +1148,7 @@ static int build_zonelists_node(pg_data_ }#ifdef CONFIG_NUMA +#if 0 #define MAX_NODE_LOAD (numnodes)static int __initdata node_load[MAX_NUMNODES ];/**
@@ -1252,6 +1253,7 @@ static void __init build_zonelists(pg_da }#else /* CONFIG_NUMA */ +#endif static void build_zonelists (pg_data_t *pgdat) {
@@ -1553,6 +1555,7 @@ free_area_init_core(struct pglist_data * zone->wait_table_size =wait_table_size (size); zone->wait_table_bits =wait_table_bits (zone->wait_table_size); +#if 0 #ifdef CONFIG_MEMHOTPLUG if (! cold) zone->wait_table = (wait_queue_head_t *)
@@ -1560,6 +1563,7 @@ free_area_init_core(struct pglist_data * * sizeof(wait_queue_head_t), GFP_KERNEL); else#endif +#endif zone->wait_table = (wait_queue_head_t *)alloc_bootmem_node (pgdat, zone->wait_table_size *sizeof (wait_queue_head_t));
@@ -1614,6 +1618,7 @@ free_area_init_core(struct pglist_data **/ bitmap_size = (size-1 ) >> (i+4 ); bitmap_size =LONG_ALIGN (bitmap_size+1 ); +#if 0 #ifdef CONFIG_MEMHOTPLUG if (! cold) { zone->free_area[i].map =
@@ -1621,6 +1626,7 @@ free_area_init_core(struct pglist_data *memset (zone->free_area[i].map,0 , bitmap_size); } else#endif +#endif zone->free_area[i].map = (unsigned long *)alloc_bootmem_node (pgdat, bitmap_size); }