patch-2.4.0-test6 linux/mm/page_alloc.c
Next file: linux/mm/page_io.c
Previous file: linux/mm/numa.c
Back to the patch index
Back to the overall index
- Lines: 95
- Date:
Mon Aug 7 21:01:36 2000
- Orig file:
v2.4.0-test5/linux/mm/page_alloc.c
- Orig date:
Thu Jul 27 17:38:02 2000
diff -u --recursive --new-file v2.4.0-test5/linux/mm/page_alloc.c linux/mm/page_alloc.c
@@ -29,7 +29,7 @@
pg_data_t *pgdat_list;
static char *zone_names[MAX_NR_ZONES] = { "DMA", "Normal", "HighMem" };
-static int zone_balance_ratio[MAX_NR_ZONES] = { 128, 128, 128, };
+static int zone_balance_ratio[MAX_NR_ZONES] = { 32, 128, 128, };
static int zone_balance_min[MAX_NR_ZONES] = { 10 , 10, 10, };
static int zone_balance_max[MAX_NR_ZONES] = { 255 , 255, 255, };
@@ -86,7 +86,7 @@
BUG();
if (page->mapping)
BUG();
- if (page-mem_map >= max_mapnr)
+ if (!VALID_PAGE(page))
BUG();
if (PageSwapCache(page))
BUG();
@@ -326,7 +326,7 @@
page = alloc_pages(gfp_mask, order);
if (!page)
return 0;
- return page_address(page);
+ return (unsigned long) page_address(page);
}
unsigned long get_zeroed_page(int gfp_mask)
@@ -335,9 +335,9 @@
page = alloc_pages(gfp_mask, 0);
if (page) {
- unsigned long address = page_address(page);
- clear_page((void *)address);
- return address;
+ void *address = page_address(page);
+ clear_page(address);
+ return (unsigned long) address;
}
return 0;
}
@@ -350,14 +350,14 @@
void free_pages(unsigned long addr, unsigned long order)
{
- unsigned long map_nr;
+ struct page *fpage;
#ifdef CONFIG_DISCONTIGMEM
if (addr == 0) return;
#endif
- map_nr = MAP_NR(addr);
- if (map_nr < max_mapnr)
- __free_pages(mem_map + map_nr, order);
+ fpage = virt_to_page(addr);
+ if (VALID_PAGE(fpage))
+ __free_pages(fpage, order);
}
/*
@@ -385,7 +385,7 @@
zone_t *zone;
int i;
- sum = nr_lru_pages;
+ sum = nr_lru_pages / 3;
for (i = 0; i < NUMNODES; i++)
for (zone = NODE_DATA(i)->node_zones; zone <= NODE_DATA(i)->node_zones+ZONE_NORMAL; zone++)
sum += zone->free_pages;
@@ -430,7 +430,16 @@
zone_t *zone = NODE_DATA(nid)->node_zones + type;
unsigned long nr, total, flags;
- printk(" %s: ", zone->name);
+ printk(" %c%d%d %s: ",
+ (zone->free_pages > zone->pages_low
+ ? (zone->free_pages > zone->pages_high
+ ? ' '
+ : 'H')
+ : (zone->free_pages > zone->pages_min
+ ? 'M'
+ : 'L')),
+ zone->zone_wake_kswapd, zone->low_on_memory,
+ zone->name);
total = 0;
if (zone->size) {
@@ -630,7 +639,7 @@
struct page *page = mem_map + offset + i;
page->zone = zone;
if (j != ZONE_HIGHMEM) {
- page->virtual = (unsigned long)(__va(zone_start_paddr));
+ page->virtual = __va(zone_start_paddr);
zone_start_paddr += PAGE_SIZE;
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)