Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752338Ab3GXRmq (ORCPT ); Wed, 24 Jul 2013 13:42:46 -0400 Received: from mail-vb0-f50.google.com ([209.85.212.50]:40612 "EHLO mail-vb0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751008Ab3GXRmp (ORCPT ); Wed, 24 Jul 2013 13:42:45 -0400 MIME-Version: 1.0 In-Reply-To: <1374687373.7382.22.camel@dabdike> References: <20130724160826.GD24851@moon> <20130724163734.GE24851@moon> <20130724171728.GH8508@moon> <1374687373.7382.22.camel@dabdike> From: Andy Lutomirski Date: Wed, 24 Jul 2013 10:42:24 -0700 Message-ID: Subject: Re: [PATCH] mm: Save soft-dirty bits on swapped pages To: James Bottomley Cc: Cyrill Gorcunov , Linux MM , LKML , Pavel Emelyanov , Andrew Morton , Matt Mackall , Xiao Guangrong , Marcelo Tosatti , KOSAKI Motohiro , Stephen Rothwell 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: 2170 Lines: 42 On Wed, Jul 24, 2013 at 10:36 AM, James Bottomley wrote: > On Wed, 2013-07-24 at 21:17 +0400, Cyrill Gorcunov wrote: >> On Wed, Jul 24, 2013 at 10:06:53AM -0700, Andy Lutomirski wrote: >> > > Hi Andy, if I understand you correctly "file-backed pages" are carried >> > > in pte with _PAGE_FILE bit set and the swap soft-dirty bit won't be >> > > used on them but _PAGE_SOFT_DIRTY will be set on write if only I've >> > > not missed something obvious (Pavel?). >> > >> > If I understand this stuff correctly, the vmscan code calls >> > try_to_unmap when it reclaims memory, which makes its way into >> > try_to_unmap_one, which clears the pte (and loses the soft-dirty bit). >> >> Indeed, I was so stareing into swap that forgot about files. I'll do >> a separate patch for that, thanks! > > Lets just be clear about the problem first: the vmscan pass referred to > above happens only on clean pages, so the soft dirty bit could only be > set if the page was previously dirty and got written back. Now it's an > exercise for the reader whether we want to reinstantiate a cleaned > evicted page for the purpose of doing an iterative migration or whether > we want to flip the page in the migrated entity to be evicted (so if it > gets referred to, it pulls in an up to date copy) ... assuming the > backing file also gets transferred, of course. I think I understand your distinction. Nonetheless, given the loss of the soft-dirty bit, the migration tool could fail to notice that the pages was dirtied and subsequently cleaned and evicted. I'm unconvinced that doing this on a per-PTE basis is the right way, though. I've long wanted a feature to efficiently see what changed on a filesystem by comparing, say, a hash tree. NTFS can do this (sort of), but I don't think that anything else can. I think that btrfs should be able to, but there's no API that I've ever seen. --Andy -- 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/