Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757907AbbFQINx (ORCPT ); Wed, 17 Jun 2015 04:13:53 -0400 Received: from TYO201.gate.nec.co.jp ([210.143.35.51]:65164 "EHLO tyo201.gate.nec.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757670AbbFQINr convert rfc822-to-8bit (ORCPT ); Wed, 17 Jun 2015 04:13:47 -0400 X-Greylist: delayed 842 seconds by postgrey-1.27 at vger.kernel.org; Wed, 17 Jun 2015 04:13:47 EDT From: Naoya Horiguchi To: Konstantin Khlebnikov CC: "linux-mm@kvack.org" , Andrew Morton , "linux-api@vger.kernel.org" , Mark Williamson , "linux-kernel@vger.kernel.org" , "Kirill A. Shutemov" Subject: Re: [PATCH v3 2/4] pagemap: add mmap-exclusive bit for marking pages mapped only here Thread-Topic: [PATCH v3 2/4] pagemap: add mmap-exclusive bit for marking pages mapped only here Thread-Index: AQHQqNVDpwWDARaICkaZuyttFqGN0A== Date: Wed, 17 Jun 2015 08:11:51 +0000 Message-ID: <20150617081151.GD384@hori1.linux.bs1.fc.nec.co.jp> References: <20150609195333.21971.58194.stgit@zurg> <20150609200017.21971.23391.stgit@zurg> In-Reply-To: <20150609200017.21971.23391.stgit@zurg> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.128.101.22] Content-Type: text/plain; charset="iso-2022-jp" Content-ID: Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2049 Lines: 51 On Tue, Jun 09, 2015 at 11:00:17PM +0300, Konstantin Khlebnikov wrote: > From: Konstantin Khlebnikov > > This patch sets bit 56 in pagemap if this page is mapped only once. > It allows to detect exclusively used pages without exposing PFN: > > present file exclusive state > 0 0 0 non-present > 1 1 0 file page mapped somewhere else > 1 1 1 file page mapped only here > 1 0 0 anon non-CoWed page (shared with parent/child) > 1 0 1 anon CoWed page (or never forked) > > CoWed pages in MAP_FILE|MAP_PRIVATE areas are anon in this context. > > Mmap-exclusive bit doesn't reflect potential page-sharing via swapcache: > page could be mapped once but has several swap-ptes which point to it. > Application could detect that by swap bit in pagemap entry and touch > that pte via /proc/pid/mem to get real information. > > Signed-off-by: Konstantin Khlebnikov > Link: http://lkml.kernel.org/r/CAEVpBa+_RyACkhODZrRvQLs80iy0sqpdrd0AaP_-tgnX3Y9yNQ@mail.gmail.com > > --- > > v2: > * handle transparent huge pages > * invert bit and rename shared -> exclusive (less confusing name) > --- ... > @@ -1119,6 +1122,13 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, > else > pmd_flags2 = 0; > > + if (pmd_present(*pmd)) { > + struct page *page = pmd_page(*pmd); > + > + if (page_mapcount(page) == 1) > + pmd_flags2 |= __PM_MMAP_EXCLUSIVE; > + } > + Could you do the same thing for huge_pte_to_pagemap_entry(), too? Thanks, Naoya Horiguchi -- 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/