From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S267242AbUGNFUY (ORCPT ); Wed, 14 Jul 2004 01:20:24 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S267219AbUGNFUY (ORCPT ); Wed, 14 Jul 2004 01:20:24 -0400 Received: from holomorphy.com ([207.189.100.168]:17050 "EHLO holomorphy.com") by vger.kernel.org with ESMTP id S267269AbUGNFUS (ORCPT ); Wed, 14 Jul 2004 01:20:18 -0400 Date: Tue, 13 Jul 2004 22:20:10 -0700 From: William Lee Irwin III To: Peter Osterlund Cc: Nick Piggin , Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: Can't make use of swap memory in 2.6.7-bk19 Message-ID: <20040714052010.GE3411@holomorphy.com> Mail-Followup-To: William Lee Irwin III , Peter Osterlund , Nick Piggin , Andrew Morton , linux-kernel@vger.kernel.org References: <40ECADF8.7010207@yahoo.com.au> <20040708012005.6232a781.akpm@osdl.org> <40ED049B.2020406@yahoo.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.6+20040523i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 08, 2004 at 11:30:45AM +0200, Peter Osterlund wrote: > swappiness is set to 60. > However, I realized that I had set /proc/sys/vm/laptop_mode to 1. If I set > it to 0, 2.6.7-bk10 starts to work. Probably not what will get merged, but does the following brutal hack do anything for you? Index: laptop-2.6.8-rc1/mm/vmscan.c =================================================================== --- laptop-2.6.8-rc1.orig/mm/vmscan.c 2004-07-11 10:33:55.000000000 -0700 +++ laptop-2.6.8-rc1/mm/vmscan.c 2004-07-13 22:18:04.193959968 -0700 @@ -902,7 +902,7 @@ sc.may_writepage = 0; inc_page_state(allocstall); - +retry: for (i = 0; zones[i] != 0; i++) zones[i]->temp_priority = DEF_PRIORITY; @@ -940,8 +940,14 @@ if (sc.nr_scanned && priority < DEF_PRIORITY - 2) blk_congestion_wait(WRITE, HZ/10); } - if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY)) - out_of_memory(); + if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY)) { + if (!laptop_mode || sc.may_writepage) + out_of_memory(); + else { + sc.may_writepage = 1; + goto retry; + } + } out: for (i = 0; zones[i] != 0; i++) zones[i]->prev_priority = zones[i]->temp_priority;