Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp4858532pxy; Tue, 27 Apr 2021 14:25:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx/IiD5roywl2nVCbOqlHtKFaGoTuyZq6WOt+V3B0Aei5olMiKBi+A5mveB5tHA6zKFMvPc X-Received: by 2002:a17:902:d4c2:b029:ed:4a62:abda with SMTP id o2-20020a170902d4c2b02900ed4a62abdamr8224952plg.5.1619558744529; Tue, 27 Apr 2021 14:25:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619558744; cv=none; d=google.com; s=arc-20160816; b=0oSSEESRCOr8YQVpZ8P2qjtPJ3Blo0fxyUpxIuAB9AwO86hz8xmD7ajreNYiJT5KSd DMFvVLtA3fb/trjlrD9LI2nk65nEh1cGEoAZkeuVPe3jGeL6a3t0u7grxZEZo3cvpS4M ToFAyQJ9xo/Hl++BB8CMlK75hUOWjK2G9nH3xdY/HMws1p9e3U6hBkAIMg0ZflpZ2cUa ASbqRyFgs+xVLJKLJxRO8/Xky+gX0eg2NLgcpmBOqInPZv2VINwTTGzxhFK/eHD+Poe9 7JmEUbgz7zhcIJvDkLD+fu6qHfhbFt6USej9TPmU/7egtRqJbLMBJwNBlRXxbkHfel+Z +IAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=hnD8S3GSKseiEg2y//OaeV3NCBwwk6P677uvsqZialc=; b=mw7z+O2LFX8luUaJc6EKJ/U03oOjX34JPfIA6TgfqIWx//LZi3KRGWzzGbV5pCJ9ew sVNgPMeqqq9CA6IpXQsdRtYz8ry4oHV6H7h1t3trRPbtnHaXk1NUkrw4jC81JORbh/TL qmHWxONwoSVy9UY2KhS1wxr5dVHUDSubSkWyp5xAOg6ildinqNTUBHLSX0PoztR4/WvB HDdskq+rdXW9l2DT1aCA5Ma0qCuS7oJmdobP+JBky4IBJwDSm/XRPpp68uxigDbh4Lm8 R0+fCZ1DOPtqIVItwpYksNcMOyF71EATrqjwkwL5wMtvS/0x415blsT4hNtrRCw0E1E+ 1ahw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=C375Eiux; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v26si52537pfi.333.2021.04.27.14.25.32; Tue, 27 Apr 2021 14:25:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=C375Eiux; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239439AbhD0VXt (ORCPT + 99 others); Tue, 27 Apr 2021 17:23:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238817AbhD0VXq (ORCPT ); Tue, 27 Apr 2021 17:23:46 -0400 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2678BC061574 for ; Tue, 27 Apr 2021 14:23:01 -0700 (PDT) Received: by mail-ej1-x632.google.com with SMTP id u21so91522365ejo.13 for ; Tue, 27 Apr 2021 14:23:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hnD8S3GSKseiEg2y//OaeV3NCBwwk6P677uvsqZialc=; b=C375EiuxQe+q6YfYFPhoQmMqYCj0G5EsXD4JzemmRV3XdpXM/vpTm6ZS6y5rHissSA iZp9GCyeIC1zV7co6V0yzuWx7vaFVSUE/CBcTT2Dd/lWkN5r3NHA9eF59bIYO51n2tBQ TEubXGgqSVg16ljLAZx2cnQnm8RdU3uRb60UVtuiwmSqgWbtiK43g/YtCbeAz8mbglvQ +QX+6u3cXPZbcXgTEcK30JP7KUxIsbQXh2QB85CGY5D4htFPacKXQ1V99XkZYG/TmqFu E/Gm4/Wek1jfQ06PsK7XfuxlbyqlmQTu1/QWK5YMnjwVjY+KpWKP7Kwm/0jLcYnvgh0y WCfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hnD8S3GSKseiEg2y//OaeV3NCBwwk6P677uvsqZialc=; b=tVOx9T5Hjn/y92HaUSWDawS0FZZdXUjGyUchicWRYY2M4lC18Bmw7iIjrqbcS9DRpX tiM00p20cnuToAAuodHvgDI/V5dhuTL2yYs9/I2MibUSpOyRn3QgUm/UevRrhNeqKKFt RcK1zHoei7KMKQMsQ3YbGHRW1csjjZx7yLNLrceQOkwjiiq4ToXCL85khEpYgchViBLP 65b1ckNj3GbTWUWFGPsKKBNQvC4IFBOXuUujB9rovkKL8zNSoBf0azcIcjoE+vlgy5sE u2FcM8rjGUmaVZkP2sUjc2nfS/U6H16eN7InbcjSL6M0TI0FZqGI3cWYb2pbSK/POsjC 6eYg== X-Gm-Message-State: AOAM532vkJBf6Qu2kC52uD0aj8NxpXyBBbjG5pm34pYhz6Q5+NyCo+Ml zkbn+zJrAFZSjBnd46aflYk6OYozR7NuIe4k0EI= X-Received: by 2002:a17:906:ece4:: with SMTP id qt4mr25719376ejb.514.1619558579904; Tue, 27 Apr 2021 14:22:59 -0700 (PDT) MIME-Version: 1.0 References: <20210427133214.2270207-1-linmiaohe@huawei.com> <20210427133214.2270207-6-linmiaohe@huawei.com> In-Reply-To: <20210427133214.2270207-6-linmiaohe@huawei.com> From: Yang Shi Date: Tue, 27 Apr 2021 14:22:48 -0700 Message-ID: Subject: Re: [PATCH 5/5] mm/huge_memory.c: don't discard hugepage if other processes are mapping it To: Miaohe Lin Cc: Andrew Morton , Zi Yan , william.kucharski@oracle.com, Matthew Wilcox , Yang Shi , aneesh.kumar@linux.ibm.com, Ralph Campbell , Song Liu , "Kirill A. Shutemov" , Rik van Riel , Johannes Weiner , Minchan Kim , Linux Kernel Mailing List , Linux MM Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 27, 2021 at 6:32 AM Miaohe Lin wrote: > > If other processes are mapping any other subpages of the hugepage, i.e. in > pte-mapped thp case, page_mapcount() will return 1 incorrectly. Then we > would discard the page while other processes are still mapping it. Fix it > by using total_mapcount() which can tell whether other processes are still > mapping it. Seems correct to me. It is possible that the THP is PTE-mapped by the other processes. Reviewed-by: Yang Shi > > Fixes: b8d3c4c3009d ("mm/huge_memory.c: don't split THP page when MADV_FREE syscall is called") > Signed-off-by: Miaohe Lin > --- > mm/huge_memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index f652be6ecca3..d14fecb8cd00 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1604,7 +1604,7 @@ bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, > * If other processes are mapping this page, we couldn't discard > * the page unless they all do MADV_FREE so let's skip the page. > */ > - if (page_mapcount(page) != 1) > + if (total_mapcount(page) != 1) > goto out; > > if (!trylock_page(page)) > -- > 2.23.0 > >