--- 26360cced2cf4fe47cad7f34103e7a737e165f20 +++ fac6ecae8c3002c94dc636ca7089b19e016e0a24 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -162,12 +163,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 */ @@ -339,7 +342,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]; @@ -641,6 +644,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;