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_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, 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 02AEAC433E1 for ; Wed, 19 Aug 2020 23:06:47 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B60D420758 for ; Wed, 19 Aug 2020 23:06:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hcq8WVW8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B60D420758 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 5DCC26B0092; Wed, 19 Aug 2020 19:06:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 58D156B0093; Wed, 19 Aug 2020 19:06:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 47DA98D0001; Wed, 19 Aug 2020 19:06:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0137.hostedemail.com [216.40.44.137]) by kanga.kvack.org (Postfix) with ESMTP id 326116B0092 for ; Wed, 19 Aug 2020 19:06:46 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id EB76E181AEF07 for ; Wed, 19 Aug 2020 23:06:45 +0000 (UTC) X-FDA: 77168854770.26.mice99_3b0e4d52702b Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin26.hostedemail.com (Postfix) with ESMTP id B11631804B656 for ; Wed, 19 Aug 2020 23:06:45 +0000 (UTC) X-HE-Tag: mice99_3b0e4d52702b X-Filterd-Recvd-Size: 6421 Received: from mail-ed1-f66.google.com (mail-ed1-f66.google.com [209.85.208.66]) by imf20.hostedemail.com (Postfix) with ESMTP for ; Wed, 19 Aug 2020 23:06:45 +0000 (UTC) Received: by mail-ed1-f66.google.com with SMTP id m20so178172eds.2 for ; Wed, 19 Aug 2020 16:06:45 -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=ApV9u1cflFzKSz0A3fkLXqLOVXOpSp0i2qXFnaEVB0A=; b=hcq8WVW8xePVrqUmTs403JmomWiUUftXEuk5T7jqx3OlIcvOpqtxDeKPOPywIsZkxi hOhLV8OOnaQ9BjRJivGjvkszhZwrKDd+KBmdpuErOmrkRXCNSIGJHKRZYZmB4sfK0Eh1 q0m3sOBtnx8d5y2U1UXbLKAiH47CT0QYko1Ikptj8+SWjD3xh1FszNf7BEUVqs9oADSY CR+vN6lYMQJj9JBvUZ+yDBvndF58uFe+FzWtA/si0/tQMWXuXLsmP8liPEOsDgqHBmiK Qv54nkglqbMlD5fw0jjqCMkZ+Fvofc6JZfvkuOf1sFcRWNbTFRA4bylFxnRVA9d+zLz/ p/bA== 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=ApV9u1cflFzKSz0A3fkLXqLOVXOpSp0i2qXFnaEVB0A=; b=EdnJVH3A/SqDlL9itYS1Gbbsyp08gg7zX5Zutwsyqy1x+141iNa+5r0xi0LMdK6D5A zUzHURbfJDJTOs83ANFLiXTMINEAj7P87lp5Bvpml1oiPrloSW09y15i/NDD5Z9/aKhm SRP4fGS+bbh87pTc62B4GRloGf8D3gYv6He9+pJMpJyr9Hf/jKhdOutTDdeZPR4i9iKy iv1vP+9RU9+d0JP4S0qRQB2DoE+OzmN3FoGmVznsvODYq69MZ5Q3BLqslspL8ZozLyyK 5u5UiGo58IrrUA5IVFdBrwStR3vMIVMyUu2kkLDW+nhlRd/nikcnPQ3lBTcXJyMNSjBJ B+lA== X-Gm-Message-State: AOAM531QYlSvqCGpjt1TPpL/8kvoYrqdVygbzd9kD0oQuT1Tew7GOty3 K3qiYUCPEC4kXk1noPYUq6X2aViYJZ7CjcBG7dY= X-Google-Smtp-Source: ABdhPJwrYR6MygaEFcuQnXf1LsPhEernaupCXvsGu3zoQTvrEgm3ZWt2iE+S59WWL/VMOZfhG4XHAoLmbljxvKTiOUk= X-Received: by 2002:a05:6402:1d92:: with SMTP id dk18mr315695edb.206.1597878404099; Wed, 19 Aug 2020 16:06:44 -0700 (PDT) MIME-Version: 1.0 References: <20200818184704.3625199-1-yuzhao@google.com> <20200818184704.3625199-3-yuzhao@google.com> In-Reply-To: <20200818184704.3625199-3-yuzhao@google.com> From: Yang Shi Date: Wed, 19 Aug 2020 16:06:32 -0700 Message-ID: Subject: Re: [PATCH v2 3/3] mm: remove superfluous __ClearPageWaiters() To: Yu Zhao Cc: Andrew Morton , Alexander Duyck , Huang Ying , David Hildenbrand , Michal Hocko , Yang Shi , Qian Cai , Mel Gorman , Nicholas Piggin , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Hugh Dickins , Linux MM , Linux Kernel Mailing List , Joonsoo Kim Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: B11631804B656 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam04 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 Tue, Aug 18, 2020 at 11:47 AM Yu Zhao wrote: > > Presumably __ClearPageWaiters() was added to follow the previously > removed __ClearPageActive() pattern. > > Only flags that are in PAGE_FLAGS_CHECK_AT_FREE needs to be properly > cleared because otherwise we think there may be some kind of leak. > PG_waiters is not one of those flags and leaving the clearing to > PAGE_FLAGS_CHECK_AT_PREP is more appropriate. Actually TBH I'm not very keen to this change, it seems the clearing is just moved around and the allocation side pays for that instead of free side. > > Signed-off-by: Yu Zhao > --- > include/linux/page-flags.h | 2 +- > mm/filemap.c | 2 ++ > mm/memremap.c | 2 -- > mm/swap.c | 3 --- > 4 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index 6be1aa559b1e..dba80a2bdfba 100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -318,7 +318,7 @@ static inline int TestClearPage##uname(struct page *page) { return 0; } > TESTSETFLAG_FALSE(uname) TESTCLEARFLAG_FALSE(uname) > > __PAGEFLAG(Locked, locked, PF_NO_TAIL) > -PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) __CLEARPAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) > +PAGEFLAG(Waiters, waiters, PF_ONLY_HEAD) > PAGEFLAG(Error, error, PF_NO_TAIL) TESTCLEARFLAG(Error, error, PF_NO_TAIL) > PAGEFLAG(Referenced, referenced, PF_HEAD) > TESTCLEARFLAG(Referenced, referenced, PF_HEAD) > diff --git a/mm/filemap.c b/mm/filemap.c > index 1aaea26556cc..75240c7ef73f 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -1079,6 +1079,8 @@ static void wake_up_page_bit(struct page *page, int bit_nr) > * other pages on it. > * > * That's okay, it's a rare case. The next waker will clear it. > + * Otherwise the bit will be cleared by PAGE_FLAGS_CHECK_AT_PREP > + * when the page is being freed. > */ > } > spin_unlock_irqrestore(&q->lock, flags); > diff --git a/mm/memremap.c b/mm/memremap.c > index 3a06eb91cb59..a9d02ffaf9e3 100644 > --- a/mm/memremap.c > +++ b/mm/memremap.c > @@ -451,8 +451,6 @@ void free_devmap_managed_page(struct page *page) > return; > } > > - __ClearPageWaiters(page); > - > mem_cgroup_uncharge(page); > > /* > diff --git a/mm/swap.c b/mm/swap.c > index 999a84dbe12c..40bf20a75278 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -90,7 +90,6 @@ static void __page_cache_release(struct page *page) > del_page_from_lru_list(page, lruvec, page_off_lru(page)); > spin_unlock_irqrestore(&pgdat->lru_lock, flags); > } > - __ClearPageWaiters(page); > } > > static void __put_single_page(struct page *page) > @@ -900,8 +899,6 @@ void release_pages(struct page **pages, int nr) > del_page_from_lru_list(page, lruvec, page_off_lru(page)); > } > > - __ClearPageWaiters(page); > - > list_add(&page->lru, &pages_to_free); > } > if (locked_pgdat) > -- > 2.28.0.220.ged08abb693-goog > >