Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751729Ab0KWJHW (ORCPT ); Tue, 23 Nov 2010 04:07:22 -0500 Received: from mail-iw0-f174.google.com ([209.85.214.174]:64491 "EHLO mail-iw0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750953Ab0KWJHU (ORCPT ); Tue, 23 Nov 2010 04:07:20 -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; b=vS25r5+kPDAn8LgKsGYuaZ2jvYXyk9Hs/CnI+jn07E4PfIgo4TN4Xp3VbDsIVw6I9W XLoJRr1Erua196CepY7SP+RS/yIEE6P9yhHea7e5MSgaBmXZz7G+QSnOWMrTqO1+GnNb eus612sqFYAptiBtdHKAWYhN66xVru5RYWB5M= MIME-Version: 1.0 In-Reply-To: References: <20101123165240.7BC2.A69D9226@jp.fujitsu.com> <20101123175948.7BD1.A69D9226@jp.fujitsu.com> Date: Tue, 23 Nov 2010 18:07:18 +0900 Message-ID: Subject: Re: [RFC 1/2] deactive invalidated pages From: Minchan Kim To: KOSAKI Motohiro Cc: Andrew Morton , linux-mm , LKML , Peter Zijlstra , Rik van Riel , Johannes Weiner , Nick Piggin Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2503 Lines: 66 On Tue, Nov 23, 2010 at 6:05 PM, Minchan Kim wrote: > On Tue, Nov 23, 2010 at 6:02 PM, KOSAKI Motohiro > wrote: >>> On Tue, Nov 23, 2010 at 5:01 PM, KOSAKI Motohiro >>> wrote: >>> >> Hi KOSAKI, >>> >> >>> >> 2010/11/23 KOSAKI Motohiro : >>> >> >> By Other approach, app developer uses POSIX_FADV_DONTNEED. >>> >> >> But it has a problem. If kernel meets page is writing >>> >> >> during invalidate_mapping_pages, it can't work. >>> >> >> It is very hard for application programmer to use it. >>> >> >> Because they always have to sync data before calling >>> >> >> fadivse(..POSIX_FADV_DONTNEED) to make sure the pages could >>> >> >> be discardable. At last, they can't use deferred write of kernel >>> >> >> so that they could see performance loss. >>> >> >> (http://insights.oetiker.ch/linux/fadvise.html) >>> >> > >>> >> > If rsync use the above url patch, we don't need your patch. >>> >> > fdatasync() + POSIX_FADV_DONTNEED should work fine. >>> >> >>> >> It works well. But it needs always fdatasync before calling fadvise. >>> >> For small file, it hurt performance since we can't use the deferred write. >>> > >>> > I doubt rsync need to call fdatasync. Why? >>> > >>> > If rsync continue to do following loop, some POSIX_FADV_DONTNEED >>> > may not drop some dirty pages. But they can be dropped at next loop's >>> > POSIX_FADV_DONTNEED. Then, It doesn't make serious issue. >>> > >>> > 1) read >>> > 2) write >>> > 3) POSIX_FADV_DONTNEED >>> > 4) goto 1 >>> >>> fadvise need pair (offset and len). >>> if the pair in next turn is different with one's previous turn, it >>> couldn't be dropped. >> >> invalidate_mapping_pages() are using pagevec_lookup() and pagevec_lookup() >> are using radix tree lookup. Then, Even if rsync always use [0, inf) pair, I don't think >> it makes much slowdown. >> > > I mean fdatasync causes slowdown, not fadvise. > if you fadvise(don't need) without fdatasync, you could loss the data. Oops sorry. Not lose data. Frequent fdatasync call doesn't use buffered write so that it causes slowdown than using deferred write. > -- > Kind regards, > Minchan Kim > -- 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/