Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp4810335ybe; Mon, 16 Sep 2019 19:58:25 -0700 (PDT) X-Google-Smtp-Source: APXvYqwBHqD2izWYMCrdnqOkqATZqJZPtFdxr1FcrcntE+Usv7SrFK21sHUf3CHLjza9dB1EfxJE X-Received: by 2002:a50:8933:: with SMTP id e48mr2409533ede.51.1568689104975; Mon, 16 Sep 2019 19:58:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568689104; cv=none; d=google.com; s=arc-20160816; b=HZHhZR322NwGvhXwNkeD80JwEgO+MHUldCR64iVN2xvgu5qq/Q5MepRQU5FLPI1HhL 2qvNzlwZvC1iKPNpGmIZX+st5Xp66phXdlVHbMxrwRhRZs1gDJkO4AS59aNJfbIiCOs9 vRXpATyfDCuflVXqHxgiahHNeRsuRabB+d0SUfUlLzvcra7nErCF0iBxiAhhiHKTW5Bu KKHjbbABnkGCQjfcvH0yIQaSoyXXuDuW2YSp3oh2agJiXAT/adHttqWaGdDiNhumPYhD Makk6P7xu3spjedP0AapKhDwcqoDzQB2GE7lq5ykQqBDVleaHAqYfBLec7kVZMfPDFdD Rsow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=rDB8uHDkgWN7+yrcA0FfYLtoe+OjSqFeu+VWqQjDn9I=; b=l+ZA7aI8n9T1D/R7m7otuocEk2iogyLd3X9r0h+vSuIw+M35Y7UG1TmWSZK9+HL3mB dB5hO7c7XV/TczN78wAAd+NUhhmo9wWrXV0dwkN3feJdeG2FHPjqoN8vJSldp6VzZj1+ YLHXHA17AWdXUSimZ/Ip4LycVJm0rnKQeV/u1+VwD8PwYZVWf4aFnJ0Vd1UREGy70b6A ZgZtcsbBAu60VLM+sLANV+EGe0Ue3vfpoNd4VYh4MYh/Q1l+xlcPgyWDRECu5feJyAsB Qt+9FptwsUsDVu8y44tEC6geB06W5QwCGwrH8gFLIGlNsqazR9o2mt873fRtwxiRa4yH 0Tpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=itokVSgl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id h28si528000edh.278.2019.09.16.19.58.00; Mon, 16 Sep 2019 19:58:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=itokVSgl; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1732191AbfIPRWg (ORCPT + 99 others); Mon, 16 Sep 2019 13:22:36 -0400 Received: from mail-qt1-f196.google.com ([209.85.160.196]:38412 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732010AbfIPRWg (ORCPT ); Mon, 16 Sep 2019 13:22:36 -0400 Received: by mail-qt1-f196.google.com with SMTP id j31so772583qta.5 for ; Mon, 16 Sep 2019 10:22:35 -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=rDB8uHDkgWN7+yrcA0FfYLtoe+OjSqFeu+VWqQjDn9I=; b=itokVSglbnepYieFIOvlt/0B3BXlO2wgztzBJWDXit/kUzBppinOuLRUPbgVctrnlE Xs+7vvbrQmv5LYTPN8Wi3loVrc108cIzN/YQvdjW58ZaCN1lxKsfH755TlliYEDnabFH A6WLXRApELiiGrDYIhNaJmFqjk1rRQj8JGsvkRpjxxt/+4wIR/RL6IlQ+xsmQcufDL7o ZDPk0v3tELCnCOKzUeZ18e+1iUzx5Em5giLoGWX8xcf5XUa0y/2VtVvSwBdNKuksYWWv 7whgoxnQEbZaqzK6mw2wouJQuGpYXPtqo/fSx/BrIsKjoa1325vMHR+2yfKQL6/nV+WS FIwg== 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=rDB8uHDkgWN7+yrcA0FfYLtoe+OjSqFeu+VWqQjDn9I=; b=gRb6gBMSD58iPknYJwYgfmgIAY1S+XrEyc540Dq6iMCxfKHNruw7bsLMV422dcuMgo isAoXaaqM8VHALydaNgDCyi2kJngsSe9JwG5lABqZJrs/SgDFuoZsxPlIXSeXkfgTk7S ug/Yx7vZB0Q5rueqo4fo52gSLpAE3oyW972H+cvkMSsntALubIIIQXrPr8ad+iJQYUm5 2T+ybF9pFCX5AuxW0z9dQucICUbjaSIc+CGjDjvXYU0W+XW+XLj4K4aeu3hKAWS323vJ BeGXX0sK4KOTnnFrp/WIbPgjLIc+ec0V8GM15KvmnqLPhAsbd/AgJygwRP9ev8zTKhsI 8qdg== X-Gm-Message-State: APjAAAUQO+dF3YdrLLCmsVYlmY8xGtMIAmSbwe4kscdeh0NIECgnYbGn ceFpXeouc/jelldIVlNVzgdBRz20jINd9rzL05Q= X-Received: by 2002:ac8:f33:: with SMTP id e48mr720765qtk.123.1568654555208; Mon, 16 Sep 2019 10:22:35 -0700 (PDT) MIME-Version: 1.0 References: <20190913091849.11151-1-kirill.shutemov@linux.intel.com> In-Reply-To: <20190913091849.11151-1-kirill.shutemov@linux.intel.com> From: Yang Shi Date: Mon, 16 Sep 2019 10:22:18 -0700 Message-ID: Subject: Re: [PATCH] mm, thp: Do not queue fully unmapped pages for deferred split To: "Kirill A. Shutemov" Cc: Andrew Morton , Michal Hocko , Linux MM , Linux Kernel Mailing List , "Kirill A. Shutemov" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 13, 2019 at 2:18 AM Kirill A. Shutemov wrote: > > Adding fully unmapped pages into deferred split queue is not productive: > these pages are about to be freed or they are pinned and cannot be split > anyway. This change looks good to me. Reviewed-by: Yang Shi > > Signed-off-by: Kirill A. Shutemov > --- > mm/rmap.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/mm/rmap.c b/mm/rmap.c > index 003377e24232..45388f1bf317 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1271,12 +1271,20 @@ static void page_remove_anon_compound_rmap(struct page *page) > if (TestClearPageDoubleMap(page)) { > /* > * Subpages can be mapped with PTEs too. Check how many of > - * themi are still mapped. > + * them are still mapped. > */ > for (i = 0, nr = 0; i < HPAGE_PMD_NR; i++) { > if (atomic_add_negative(-1, &page[i]._mapcount)) > nr++; > } > + > + /* > + * Queue the page for deferred split if at least one small > + * page of the compound page is unmapped, but at least one > + * small page is still mapped. > + */ > + if (nr && nr < HPAGE_PMD_NR) > + deferred_split_huge_page(page); > } else { > nr = HPAGE_PMD_NR; > } > @@ -1284,10 +1292,8 @@ static void page_remove_anon_compound_rmap(struct page *page) > if (unlikely(PageMlocked(page))) > clear_page_mlock(page); > > - if (nr) { > + if (nr) > __mod_node_page_state(page_pgdat(page), NR_ANON_MAPPED, -nr); > - deferred_split_huge_page(page); > - } > } > > /** > -- > 2.21.0 > >