Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp561524ybe; Fri, 13 Sep 2019 02:24:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqzTrYIcUCPujb9Z8lyGjSXbYi5rqRIGXbwIJvqpjLG1PYsSJTv3cmMRbwJl7FOSqDKYVVPb X-Received: by 2002:a17:906:4cca:: with SMTP id q10mr6798897ejt.236.1568366654996; Fri, 13 Sep 2019 02:24:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568366654; cv=none; d=google.com; s=arc-20160816; b=ZzJZuIhXlkdEETKEMMAB48F7vhkxFSBsfuDQCBYf5ElRqbPJBgP4MI006CGsa3PcPD RhkpsmF61oHNMV+tu0nibzmEXcU96QhSgpZO0wKAtihUNtEjrAv1ojCMHYO5sCrMTYw7 1Ug74ptw6q1Pv5nU4v24vQ1S4sTabtBwY8PxZ9hNvo7OJQ0gznEYNfmZhHumZiY29Ejq qTaiLmo/6fmkWEWkGwg8Ex9BVTWkap76LMo8TPxzXJ+UOyuoAbJB7zrSWu/H7G184lH8 TfuN20N3hkz/ENpMvbKCttOk0C5FZ5BDkqAn34MT4Y8G3yMwPqElJ8IxQnZLChZBbsw+ OVPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=P+McjP7Vs/8Fdw818QwhQTYN2XV5u34Z3buqpTv4oXc=; b=m4HzkF7g/aXQn2tm8RG8GK32PLRUjLm9HsaXf2s7x47g8bh6pGCOK5SWkKI+BAtlEc Tc4j6m31ETozo+XI8SPrZIPcQ++aZSClk0EABRGuHe22xc1+URW2+0R7+0NTTpi7wARg mUL0Z3ktB7QYFAy4IRvTDRsyH3R/RXW0l/IH/XjLCyaZFB5OLBFloCBicfaPsAorIyCX 9AoaF1c8gMyXO7q/bFV+QVsC1m3fLKqvsytOj0Ws/O4J9y9jtqa30gOP89BsZfiAI3hV 7TAvrJNZIDeCuzuAYY3BJjN4OPGBNFlnReVL5HvEvJJAMPem3lyF9rVgLZhzySgkY+Ta 3nKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@shutemov-name.20150623.gappssmtp.com header.s=20150623 header.b=Yd8XmSUa; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k4si13896690ejd.325.2019.09.13.02.23.51; Fri, 13 Sep 2019 02:24:14 -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=@shutemov-name.20150623.gappssmtp.com header.s=20150623 header.b=Yd8XmSUa; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387860AbfIMJS5 (ORCPT + 99 others); Fri, 13 Sep 2019 05:18:57 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:40780 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387424AbfIMJS5 (ORCPT ); Fri, 13 Sep 2019 05:18:57 -0400 Received: by mail-ed1-f68.google.com with SMTP id v38so26428503edm.7 for ; Fri, 13 Sep 2019 02:18:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov-name.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=P+McjP7Vs/8Fdw818QwhQTYN2XV5u34Z3buqpTv4oXc=; b=Yd8XmSUaTaf5ZXgKPRqAuXJjkPnnIKhtkUDGK4eSkYWR2z+WrZsHrkfoEoYge1pAwM O/9uvHx98sl6+wB8+0mZewgDrizHc6Y40mM2Vil7twDyF3v9EabEVJD+ytCFQe63erMX cJU3UlfGLt5Nkbmnt2u/lrGZwZQt/MyteUxnz+N8+8PTtjBumNMjS2GygxXoPBjtNKIu Qx4uNIPEV6oFHzd5xUoMrkdM/07AQaZ0n+Cl0xs6QOYmtdAdQezQWuEio2R6Xvvz4NFB O9zIEae/QqfUSiWX9+uc+Vr4thoL6wlrqqs/TqdTe2s/UmYz5D0XXa/HirqYkU3UreWM tdig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=P+McjP7Vs/8Fdw818QwhQTYN2XV5u34Z3buqpTv4oXc=; b=DW2A/iPmWnqak8aDqHYD158yrm1tYrXaNxPbp4R0Ewu9U4aeLb7ukTaXcbl2jb2ISz ZsHLjekF0/m1HyqzSCmR9Eb+VYonrDJAz4fdy4lAtwKAO9jar7LbBbBLxh3eQ2mDT0qd /QIzn2CUrfHxF8zQhHbEcC2chzU2hkXa1VHSnZ30OWRNXk7aeoWpa2cSoSBMADri029r VtsSWzUXwMZtM+jw6DWlXpgrvQ9ynU4652QHt1o0NY1wM/vY5KP9JIgmAmfQfSo8vw8n 0uiPcxq6Pv4MjN5+UdrizEmWLFGTkXNASUVf9g8bIokLM1t6v5pTlchNZB26DFzmQaOs unVA== X-Gm-Message-State: APjAAAWVrZoyjSFV5g06b1Mr7G2tLEpjSekpaklIhum7Dx/OXrZ4uCX5 SYvjvaIytZ+wRxS+cOzZ8Sr44LN6TvhNKg== X-Received: by 2002:a50:c351:: with SMTP id q17mr9016890edb.123.1568366333883; Fri, 13 Sep 2019 02:18:53 -0700 (PDT) Received: from box.localdomain ([86.57.175.117]) by smtp.gmail.com with ESMTPSA id j20sm5201057edy.95.2019.09.13.02.18.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Sep 2019 02:18:53 -0700 (PDT) From: "Kirill A. Shutemov" X-Google-Original-From: "Kirill A. Shutemov" Received: by box.localdomain (Postfix, from userid 1000) id 3A8F510160B; Fri, 13 Sep 2019 12:18:55 +0300 (+03) To: Andrew Morton Cc: Michal Hocko , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [PATCH] mm, thp: Do not queue fully unmapped pages for deferred split Date: Fri, 13 Sep 2019 12:18:49 +0300 Message-Id: <20190913091849.11151-1-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. 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