diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 93baebcc06f3..2cb9eb71e282 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -97,6 +97,14 @@ EXPORT_SYMBOL(node_states); | |||
97 | 97 | ||
98 | unsigned long totalram_pages __read_mostly; | 98 | unsigned long totalram_pages __read_mostly; |
99 | unsigned long totalreserve_pages __read_mostly; | 99 | unsigned long totalreserve_pages __read_mostly; |
100 | /* | ||
101 | * When calculating the number of globally allowed dirty pages, there | ||
102 | * is a certain number of per-zone reserves that should not be | ||
103 | * considered dirtyable memory. This is the sum of those reserves | ||
104 | * over all existing zones that contribute dirtyable memory. | ||
105 | */ | ||
106 | unsigned long dirty_balance_reserve __read_mostly; | ||
107 | |||
100 | int percpu_pagelist_fraction; | 108 | int percpu_pagelist_fraction; |
101 | gfp_t gfp_allowed_mask __read_mostly = GFP_BOOT_MASK; | 109 | gfp_t gfp_allowed_mask __read_mostly = GFP_BOOT_MASK; |
102 | 110 | ||
@@ -4822,8 +4830,19 @@ static void calculate_totalreserve_pages(void) | |||
4822 | if (max > zone->present_pages) | 4830 | if (max > zone->present_pages) |
4823 | max = zone->present_pages; | 4831 | max = zone->present_pages; |
4824 | reserve_pages += max; | 4832 | reserve_pages += max; |
4833 | /* | ||
4834 | * Lowmem reserves are not available to | ||
4835 | * GFP_HIGHUSER page cache allocations and | ||
4836 | * kswapd tries to balance zones to their high | ||
4837 | * watermark. As a result, neither should be | ||
4838 | * regarded as dirtyable memory, to prevent a | ||
4839 | * situation where reclaim has to clean pages | ||
4840 | * in order to balance the zones. | ||
4841 | */ | ||
4842 | zone->dirty_balance_reserve = max; | ||
4825 | } | 4843 | } |
4826 | } | 4844 | } |
4845 | dirty_balance_reserve = reserve_pages; | ||
4827 | totalreserve_pages = reserve_pages; | 4846 | totalreserve_pages = reserve_pages; |
4828 | } | 4847 | } |
4829 | 4848 | ||