Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030465AbbD1Q1u (ORCPT ); Tue, 28 Apr 2015 12:27:50 -0400 Received: from mta-out1.inet.fi ([62.71.2.227]:54832 "EHLO jenni1.inet.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030220AbbD1Q1s (ORCPT ); Tue, 28 Apr 2015 12:27:48 -0400 Date: Tue, 28 Apr 2015 19:27:34 +0300 From: "Kirill A. Shutemov" To: Hillf Danton Cc: "Kirill A. Shutemov" , Sasha Levin , linux-kernel , linux-mm@kvack.org Subject: Re: [PATCHv5 04/28] mm, thp: adjust conditions when we can reuse the page on WP fault Message-ID: <20150428162734.GA2539@node.dhcp.inet.fi> References: <001901d0815e$f438b390$dcaa1ab0$@alibaba-inc.com> <002001d0815f$ce928750$6bb795f0$@alibaba-inc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <002001d0815f$ce928750$6bb795f0$@alibaba-inc.com> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1271 Lines: 34 On Tue, Apr 28, 2015 at 11:02:46AM +0800, Hillf Danton wrote: > > > > With new refcounting we will be able map the same compound page with > > PTEs and PMDs. It requires adjustment to conditions when we can reuse > > the page on write-protection fault. > > > > For PTE fault we can't reuse the page if it's part of huge page. > > > > For PMD we can only reuse the page if nobody else maps the huge page or > > it's part. We can do it by checking page_mapcount() on each sub-page, > > but it's expensive. > > > > The cheaper way is to check page_count() to be equal 1: every mapcount > > takes page reference, so this way we can guarantee, that the PMD is the > > only mapping. > > > > This approach can give false negative if somebody pinned the page, but > > that doesn't affect correctness. > > > Then we have to try more to allocate THP if pinned? > Are we adding new cost? Yes we do. But that shouldn't be often. Alternatively, we could iterate over all sub-pages and check their mapcount. -- Kirill A. Shutemov -- 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/