From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0AF30C43463 for ; Fri, 18 Sep 2020 07:38:13 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6BA1D208C3 for ; Fri, 18 Sep 2020 07:38:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=suse.com header.i=@suse.com header.b="FmiUldVV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BA1D208C3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id C16506B005D; Fri, 18 Sep 2020 03:38:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B9F036B0062; Fri, 18 Sep 2020 03:38:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A68866B0068; Fri, 18 Sep 2020 03:38:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0002.hostedemail.com [216.40.44.2]) by kanga.kvack.org (Postfix) with ESMTP id 8BCFC6B005D for ; Fri, 18 Sep 2020 03:38:10 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 51FA11EF2 for ; Fri, 18 Sep 2020 07:38:10 +0000 (UTC) X-FDA: 77275378740.21.trade57_4408d8327129 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin21.hostedemail.com (Postfix) with ESMTP id 38A8C180442C4 for ; Fri, 18 Sep 2020 07:38:10 +0000 (UTC) X-HE-Tag: trade57_4408d8327129 X-Filterd-Recvd-Size: 4758 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by imf22.hostedemail.com (Postfix) with ESMTP for ; Fri, 18 Sep 2020 07:38:09 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=cantorsusede; t=1600414688; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KPXi6kQP8L4G5JbdCi6kyBUm/qW5BdGObub/lV8WW4A=; b=FmiUldVVOw2VqfTujjt5H70pIw9/fl1j/Bwdwljedy7RVwpkZ+NOmyTpGcXU9bhOxQ8rBY gKFhGelz+xG3DWrOPDXG9uo27KQxar2NSI3D2axRHwzaJQkxtbS0GfWjakGOcXWa/JZBjs IR5xQaB8l7upShWBvC3BL0HA3EN/yXngBS63vTsVqA9geFeeAbvZex3pnIhLUOuorSsLIa lprJ0CX+VWvxOm/rfX5ae4cWyyYQYppHf30ed1H7HFj7dK0g7wo8lv6qVNEZSkhvcJQ173 cMIUG8fvZB2HsUOF7DINsNREJBdutnTE6Pvlj5h8ccoEvrLeASD7DpVpA5y6gQ== Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 87A05AC4D; Fri, 18 Sep 2020 07:38:42 +0000 (UTC) Date: Fri, 18 Sep 2020 09:38:07 +0200 From: Michal Hocko To: Yu Zhao Cc: Andrew Morton , Alex Shi , Steven Rostedt , Ingo Molnar , Johannes Weiner , Vladimir Davydov , Roman Gushchin , Shakeel Butt , Chris Down , Yafang Shao , Vlastimil Babka , Huang Ying , Pankaj Gupta , Matthew Wilcox , Konstantin Khlebnikov , Minchan Kim , Jaewon Kim , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 03/13] mm: move __ClearPageLRU() into page_off_lru() Message-ID: <20200918073807.GF28827@dhcp22.suse.cz> References: <20200918030051.650890-1-yuzhao@google.com> <20200918030051.650890-4-yuzhao@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200918030051.650890-4-yuzhao@google.com> X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu 17-09-20 21:00:41, Yu Zhao wrote: > Now we have a total of three places that free lru pages when their > references become zero (after we drop the reference from isolation). > > Before this patch, they all do: > __ClearPageLRU() > page_off_lru() > del_page_from_lru_list() > > After this patch, they become: > page_off_lru() > __ClearPageLRU() > del_page_from_lru_list() > > This change should have no side effects. Again, why this is desirable? > Signed-off-by: Yu Zhao > --- > include/linux/mm_inline.h | 1 + > mm/swap.c | 2 -- > mm/vmscan.c | 1 - > 3 files changed, 1 insertion(+), 3 deletions(-) > > diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h > index 8fc71e9d7bb0..be9418425e41 100644 > --- a/include/linux/mm_inline.h > +++ b/include/linux/mm_inline.h > @@ -92,6 +92,7 @@ static __always_inline enum lru_list page_off_lru(struct page *page) > { > enum lru_list lru; > > + __ClearPageLRU(page); > if (PageUnevictable(page)) { > __ClearPageUnevictable(page); > lru = LRU_UNEVICTABLE; > diff --git a/mm/swap.c b/mm/swap.c > index 40bf20a75278..8362083f00c9 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -86,7 +86,6 @@ static void __page_cache_release(struct page *page) > spin_lock_irqsave(&pgdat->lru_lock, flags); > lruvec = mem_cgroup_page_lruvec(page, pgdat); > VM_BUG_ON_PAGE(!PageLRU(page), page); > - __ClearPageLRU(page); > del_page_from_lru_list(page, lruvec, page_off_lru(page)); > spin_unlock_irqrestore(&pgdat->lru_lock, flags); > } > @@ -895,7 +894,6 @@ void release_pages(struct page **pages, int nr) > > lruvec = mem_cgroup_page_lruvec(page, locked_pgdat); > VM_BUG_ON_PAGE(!PageLRU(page), page); > - __ClearPageLRU(page); > del_page_from_lru_list(page, lruvec, page_off_lru(page)); > } > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index f257d2f61574..f9a186a96410 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1862,7 +1862,6 @@ static unsigned noinline_for_stack move_pages_to_lru(struct lruvec *lruvec, > add_page_to_lru_list(page, lruvec, lru); > > if (put_page_testzero(page)) { > - __ClearPageLRU(page); > del_page_from_lru_list(page, lruvec, page_off_lru(page)); > > if (unlikely(PageCompound(page))) { > -- > 2.28.0.681.g6f77f65b4e-goog -- Michal Hocko SUSE Labs