Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp3948156ybe; Mon, 16 Sep 2019 04:14:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqw4q7RvwZy3FwB/2En2/2WY5cgjTIfJVHIR/g3FpevTx11Fw+EwuP0Neisjg/mpvyTbMLcF X-Received: by 2002:a17:906:f96:: with SMTP id q22mr28842423ejj.80.1568632478158; Mon, 16 Sep 2019 04:14:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568632478; cv=none; d=google.com; s=arc-20160816; b=XD+Kh5ALmmN0n82YrPUf3qvqc6772JqQ9B1+06IfiItVb3l9w1L1h14pfXDdzmlvvz IdH+4+wzewT+MN6caOYd9joGLcmbqQ3Kr/xXQRImjp5ArB8kKEZVNwMPOYdfolvGJdXo wjtBcoSAS5pvGaV77k/921TocxfP/0XKKXFsTa9wNjswMimj2UbxJNORKLK8PXslfgcV 5S8gsEphh9xdzbfWra3Xc86+k5FXorZ8dl2bpFoUKkyPUc9pst504//uGHYu0vSZYFRh 3brEMq4DKuWE1UvdmdXybgmVqezWPlQxOomStBxfdAGCUqhBpK7c5p0fWpTpf6m/tkxT NYog== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=VZ3ZRZbqFGk1FeBKl3iMzNIzE+AM5zPylF3EqR3qWnQ=; b=rr3EWH03hDTGaFB8fIUXRdQy9uq6Nt6FGv5ryawZodOLDUHYJwEhjHrLJ8ask3fi8n Ul7jJptha9YlNYRXzFEg3mm0bNw9jRut3rSPyN3KstVFa4fAUVoc1qiYP8dlOMoEa8hz d3FZNxR53xwIVSF2HzthX3LCn1vaaO8G2ZRmpPcVFh9toJi5d/oKfkTv9YpbF9V9Yd6L 0a7dgv61u4x8i4xHyVaPBD61GtAiz7gK4MvPx51XbZrZwzrbRO4/SSG+xXhJPgvW3X0F RSQyYsf1hhcohu/99xGJ5fecVN2NBmbqw+d7B1KeuOHsKcXOxs4g1S756nAbVB0BD83Q 4QzQ== ARC-Authentication-Results: i=1; mx.google.com; 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 b13si2433774edy.320.2019.09.16.04.14.14; Mon, 16 Sep 2019 04:14:38 -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; 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 S1729897AbfIPLLl (ORCPT + 99 others); Mon, 16 Sep 2019 07:11:41 -0400 Received: from mx2.suse.de ([195.135.220.15]:52394 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729720AbfIPLLl (ORCPT ); Mon, 16 Sep 2019 07:11:41 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 4D300AFF3; Mon, 16 Sep 2019 11:11:39 +0000 (UTC) Subject: Re: [PATCH] mm, thp: Do not queue fully unmapped pages for deferred split To: Michal Hocko , "Kirill A. Shutemov" Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" References: <20190913091849.11151-1-kirill.shutemov@linux.intel.com> <20190916103602.GD10231@dhcp22.suse.cz> From: Vlastimil Babka Message-ID: <5c946cd9-e17b-b184-37b7-250c6dfb977c@suse.cz> Date: Mon, 16 Sep 2019 13:11:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190916103602.GD10231@dhcp22.suse.cz> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 9/16/19 12:36 PM, Michal Hocko wrote: > On Fri 13-09-19 12:18:49, 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. >> >> 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); > > You've set nr to zero in the for loop so this cannot work AFAICS. The for loop then does nr++ for each subpage that's still mapped? >> } 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 >