repetitive reinitialization of active_list and inactive_list in free_area_init_core()
Subsystems (2)
inactive_list and active_list are global, yet they are repeatedly initialized using INIT_LIST_HEAD() in free_area_init_core(). This patch is originally due to Christoph Hellwig, and by some reports has been implementated before in 2.4-based trees by Andrea Arcangeli.
Against 2.5.19.
===== mm/page_alloc.c 1.63 vs edited =====
mm/page_alloc.c +2 -5
@@ -27,8 +27,8 @@unsigned long totalram_pages;unsigned long totalhigh_pages;int nr_swap_pages; -struct list_head inactive_list; -struct list_head active_list; +LIST_HEAD (active_list); +LIST_HEAD (inactive_list);pg_data_t *pgdat_list;/* Used to look up the address of the struct zone encoded in page->zone */
@@ -826,9 +826,6 @@ realtotalpages -= zholes_size[i];printk ("On node %d totalpages: %lu\n" , nid, realtotalpages); - -INIT_LIST_HEAD (&active_list); -INIT_LIST_HEAD (&inactive_list);/* * Some architectures (with lots of mem and discontinous memory