Josef Whiter wrote:
 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 
Ok -- it should be easy enough to fix, the free_pages count looks to
have been moved into the zone's embedded vm_stat[] array.
Thanks for reporting this.
Dave