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?
Dave