Index: linux-2.6.13-rc6-mm2/include/linux/sched.h =================================================================== --- linux-2.6.13-rc6-mm2.orig/include/linux/sched.h 2005-08-24 16:57:43.000000000 -0700 +++ linux-2.6.13-rc6-mm2/include/linux/sched.h 2005-09-06 11:06:46.000000000 -0700 @@ -281,6 +281,11 @@ struct mm_struct { atomic_t mm_count; /* How many references to "struct mm_struct" (users count as 1) */ int map_count; /* number of VMAs */ struct rw_semaphore mmap_sem; + /* Special counters protected by the page_table_lock */ + mm_counter_t _nr_ptes; + mm_counter_t _rss; + mm_counter_t _anon_rss; + spinlock_t page_table_lock; /* Protects page tables and some counters */ struct list_head mmlist; /* List of maybe swapped mm's. These are globally strung @@ -294,11 +299,6 @@ struct mm_struct { unsigned long total_vm, locked_vm, shared_vm; unsigned long exec_vm, stack_vm, reserved_vm, def_flags; - /* Special counters protected by the page_table_lock */ - mm_counter_t _nr_ptes; - mm_counter_t _rss; - mm_counter_t _anon_rss; - unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */ unsigned dumpable:2;