--- d228de32ebd16603009cfc1ac11c9ce9b64b5536 +++ d3dcc09b68b05c08e261cb93be1719eb774d15e0 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -173,12 +174,14 @@ enum zone_watermarks { WMARK_MIN, WMARK_LOW, WMARK_HIGH, + WMARK_LOTS, NR_WMARK }; #define min_wmark_pages(z) (z->watermark[WMARK_MIN]) #define low_wmark_pages(z) (z->watermark[WMARK_LOW]) #define high_wmark_pages(z) (z->watermark[WMARK_HIGH]) +#define lots_wmark_pages(z) (z->watermark[WMARK_LOTS]) struct per_cpu_pages { int count; /* number of pages in the list */ @@ -350,7 +353,7 @@ struct zone { ZONE_PADDING(_pad1_) /* Fields commonly accessed by the page reclaim scanner */ - spinlock_t lru_lock; + spinlock_t lru_lock; struct zone_lru { struct list_head list; } lru[NR_LRU_LISTS]; @@ -652,6 +655,7 @@ typedef struct pglist_data { wait_queue_head_t kswapd_wait; struct task_struct *kswapd; int kswapd_max_order; + struct timer_list watermark_timer; enum zone_type classzone_idx; } pg_data_t;