Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933102AbbD1DDO (ORCPT ); Mon, 27 Apr 2015 23:03:14 -0400 Received: from out4133-34.mail.aliyun.com ([42.120.133.34]:29095 "EHLO out4133-34.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932239AbbD1DDK (ORCPT ); Mon, 27 Apr 2015 23:03:10 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R141e4;FP=0|-1|-1|-1|0|-1|-1|-1;HT=r41f05041;MF=hillf.zj@alibaba-inc.com;PH=DS;RN=4;RT=4;SR=0; Reply-To: "Hillf Danton" From: "Hillf Danton" To: "Kirill A. Shutemov" Cc: "Sasha Levin" , "linux-kernel" , References: <001901d0815e$f438b390$dcaa1ab0$@alibaba-inc.com> In-Reply-To: <001901d0815e$f438b390$dcaa1ab0$@alibaba-inc.com> Subject: Re: [PATCHv5 04/28] mm, thp: adjust conditions when we can reuse the page on WP fault Date: Tue, 28 Apr 2015 11:02:46 +0800 Message-ID: <002001d0815f$ce928750$6bb795f0$@alibaba-inc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQH4Djty2hjdbrd4VrtV1Q3HN9ErAJ0SoXhg Content-Language: zh-cn Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1033 Lines: 28 > > 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? Hillf -- 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/