Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751207Ab0KWFpS (ORCPT ); Tue, 23 Nov 2010 00:45:18 -0500 Received: from mail-iw0-f174.google.com ([209.85.214.174]:55967 "EHLO mail-iw0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750699Ab0KWFpQ convert rfc822-to-8bit (ORCPT ); Tue, 23 Nov 2010 00:45:16 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=tVYtoJcyFccfgF8H3gJ/orKdnXP4YH2jmZAeRFfs9SpTR/tLHrRqc89/acrRnKAQOP M1a8qw9XpadFzotgo95OgPVF8HWg5d5vPyF8AZxQ6x7Yl6jRx/NQyFma92CDUYl0vOXO aVXjVsbq2x/6CX429WSD8SGzPerIFiPpMJb48= MIME-Version: 1.0 In-Reply-To: <20101122212220.ae26d9a5.akpm@linux-foundation.org> References: <20101122141449.9de58a2c.akpm@linux-foundation.org> <20101122210132.be9962c7.akpm@linux-foundation.org> <20101122212220.ae26d9a5.akpm@linux-foundation.org> Date: Tue, 23 Nov 2010 14:45:15 +0900 Message-ID: Subject: Re: [RFC 1/2] deactive invalidated pages From: Minchan Kim To: Andrew Morton Cc: linux-mm , LKML , Peter Zijlstra , Rik van Riel , KOSAKI Motohiro , Johannes Weiner , Nick Piggin Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2791 Lines: 74 On Tue, Nov 23, 2010 at 2:22 PM, Andrew Morton wrote: > On Tue, 23 Nov 2010 14:23:33 +0900 Minchan Kim wrote: > >> On Tue, Nov 23, 2010 at 2:01 PM, Andrew Morton >> wrote: >> > On Tue, 23 Nov 2010 13:52:05 +0900 Minchan Kim wrote: >> > >> >> >> +/* >> >> >> + * Function used to forecefully demote a page to the head of the inactive >> >> >> + * list. >> >> >> + */ >> >> > >> >> > This comment is wrong? __The page gets moved to the _tail_ of the >> >> > inactive list? >> >> >> >> No. I add it in _head_ of the inactive list intentionally. >> >> Why I don't add it to _tail_ is that I don't want to be aggressive. >> >> The page might be real working set. So I want to give a chance to >> >> activate it again. >> > >> > Well.. __why? __The user just tried to toss the page away altogether. __If >> > the kernel wasn't able to do that immediately, the best it can do is to >> > toss the page away asap? >> > >> >> If it's not working set, it can be reclaimed easily and it can prevent >> >> active page demotion since inactive list size would be big enough for >> >> not calling shrink_active_list. >> > >> > What is "working set"? __Mapped and unmapped pagecache, or are you >> > referring solely to mapped pagecache? >> >> I mean it's mapped by other processes. >> >> > >> > If it's mapped pagecache then the user was being a bit silly (or didn't >> > know that some other process had mapped the file). __In which case we >> > need to decide what to do - leave the page alone, deactivate it, or >> > half-deactivate it as this patch does. >> >> >> What I want is the half-deactivate. >> >> Okay. We will use the result of invalidate_inode_page. >> If fail happens by page_mapped, we can do half-deactivate. >> But if fail happens by dirty(ex, writeback), we can add it to tail. >> Does it make sense? > > Spose so. ?It's unobvious. > > If the page is dirty or under writeback then reclaim will immediately > move it to the head of the LRU anyway. ?But given that the user has Why does it move into head of LRU? If the page which isn't mapped doesn't have PG_referenced, it would be reclaimed. > just freed a bunch of pages with invalidate(), it's unlikely that > reclaim will be running soon. If reclaim doesn't start soon, it's good. That's because we have a time to activate it and when reclaim happens, reclaimer can reclaim pages easily. If I don't understand your point, could you elaborate on it? -- Kind regards, Minchan Kim -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/