mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	page-writeback.c: subtract min_free_kbytes from dirtyable memory
When calculating amount of dirtyable memory, min_free_kbytes should be subtracted because it is not intended for dirty pages. Addresses http://bugs.debian.org/695182 [akpm@linux-foundation.org: fix up min_free_kbytes extern declarations] [akpm@linux-foundation.org: fix min() warning] Signed-off-by: Paul Szabo <psz@maths.usyd.edu.au> Acked-by: Rik van Riel <riel@redhat.com> Cc: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									08b52706d5
								
							
						
					
					
						commit
						75f7ad8e04
					
				
					 4 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -1393,6 +1393,9 @@ extern void setup_per_cpu_pageset(void);
 | 
			
		|||
extern void zone_pcp_update(struct zone *zone);
 | 
			
		||||
extern void zone_pcp_reset(struct zone *zone);
 | 
			
		||||
 | 
			
		||||
/* page_alloc.c */
 | 
			
		||||
extern int min_free_kbytes;
 | 
			
		||||
 | 
			
		||||
/* nommu.c */
 | 
			
		||||
extern atomic_long_t mmap_pages_allocated;
 | 
			
		||||
extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,7 +105,6 @@ extern char core_pattern[];
 | 
			
		|||
extern unsigned int core_pipe_limit;
 | 
			
		||||
#endif
 | 
			
		||||
extern int pid_max;
 | 
			
		||||
extern int min_free_kbytes;
 | 
			
		||||
extern int pid_max_min, pid_max_max;
 | 
			
		||||
extern int sysctl_drop_caches;
 | 
			
		||||
extern int percpu_pagelist_fraction;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,7 +105,6 @@ static int set_recommended_min_free_kbytes(void)
 | 
			
		|||
	struct zone *zone;
 | 
			
		||||
	int nr_zones = 0;
 | 
			
		||||
	unsigned long recommended_min;
 | 
			
		||||
	extern int min_free_kbytes;
 | 
			
		||||
 | 
			
		||||
	if (!khugepaged_enabled())
 | 
			
		||||
		return 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -241,6 +241,9 @@ static unsigned long global_dirtyable_memory(void)
 | 
			
		|||
	if (!vm_highmem_is_dirtyable)
 | 
			
		||||
		x -= highmem_dirtyable_memory(x);
 | 
			
		||||
 | 
			
		||||
	/* Subtract min_free_kbytes */
 | 
			
		||||
	x -= min_t(unsigned long, x, min_free_kbytes >> (PAGE_SHIFT - 10));
 | 
			
		||||
 | 
			
		||||
	return x + 1;	/* Ensure that we never return 0 */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue