Re: [PATCH] shrink_list: Use of && instead || leads to unintended writing of pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christoph Lameter <[email protected]> wrote:
>
> [PATCH] Implement sane function of sc->may_writepage
> 
>  Make sc->may_writepage control the writeout behavior of shrink_list.
> 
>  Remove the laptop_mode trick from shrink_list and instead set may_writepage in
>  try_to_free_pages properly.
> 
>  Signed-off-by: Christoph Lameter <[email protected]>
> 
>  Index: linux-2.6.16-rc1-mm1/mm/vmscan.c
>  ===================================================================
>  --- linux-2.6.16-rc1-mm1.orig/mm/vmscan.c	2006-01-19 15:50:19.000000000 -0800
>  +++ linux-2.6.16-rc1-mm1/mm/vmscan.c	2006-01-19 17:42:07.000000000 -0800
>  @@ -491,7 +491,7 @@ static int shrink_list(struct list_head 
>   				goto keep_locked;
>   			if (!may_enter_fs)
>   				goto keep_locked;
>  -			if (laptop_mode && !sc->may_writepage)
>  +			if (!sc->may_writepage)
>   				goto keep_locked;
>   
>   			/* Page is dirty, try to write it out here */
>  @@ -1409,7 +1409,7 @@ int try_to_free_pages(struct zone **zone
>   	int i;
>   
>   	sc.gfp_mask = gfp_mask;
>  -	sc.may_writepage = 0;
>  +	sc.may_writepage = !laptop_mode;
>   	sc.may_swap = 1;
>   
>   	inc_page_state(allocstall);
>  @@ -1512,7 +1512,7 @@ loop_again:
>   	total_scanned = 0;
>   	total_reclaimed = 0;
>   	sc.gfp_mask = GFP_KERNEL;
>  -	sc.may_writepage = 0;
>  +	sc.may_writepage = 1;
>   	sc.may_swap = 1;
>   	sc.nr_mapped = read_page_state(nr_mapped);

The balance_pgdat() change is wrong, surely?  We want !laptop_mode.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux