On Fri, Feb 23, 2007 at 04:19:37PM -0500, Dave Anderson wrote:
 Josef Whiter wrote:
 
 > On Fri, Feb 23, 2007 at 04:00:09PM -0500, Dave Anderson wrote:
 > > if you do this with your kernel:
 > >
 > >   # gdb vmlinux
 > >   ...
 > >   (gdb) ptype struct zone
 > >
 > > What do you see?
 > >
 >
 > (gdb) ptype struct zone
 > type = struct zone {
 >     long unsigned int pages_min;
 >     long unsigned int pages_low;
 >     long unsigned int pages_high;
 >     long unsigned int lowmem_reserve[3];
 >     struct per_cpu_pageset pageset[32];
 >     spinlock_t lock;
 >     struct free_area free_area[11];
 >     struct zone_padding _pad1_;
 >     spinlock_t lru_lock;
 >     struct list_head active_list;
 >     struct list_head inactive_list;
 >     long unsigned int nr_scan_active;
 >     long unsigned int nr_scan_inactive;
 >     long unsigned int pages_scanned;
 >     int all_unreclaimable;
 >     atomic_t reclaim_in_progress;
 >     atomic_long_t vm_stat[14];
 >     int prev_priority;
 >     struct zone_padding _pad2_;
 >     wait_queue_head_t *wait_table;
 >     long unsigned int wait_table_hash_nr_entries;
 >     long unsigned int wait_table_bits;
 >     struct pglist_data *zone_pgdat;
 >     long unsigned int zone_start_pfn;
 >     long unsigned int spanned_pages;
 >     long unsigned int present_pages;
 >     const char *name;
 > }
 >
 > It looks like free_pages has been removed altogether.
 
 That appears to be a very recent change -- 2.6.20.1 still has it:
 
 struct zone {
         /* Fields commonly accessed by the page allocator */
         unsigned long           free_pages;
         unsigned long           pages_min, pages_low, pages_high;
         ...
 
 What version are you using?  Are you running 2.6.21-rc1?
  
No, I pulled linus's git tree down maybe a week ago, so its close to -rc1.
Josef