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.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 C3FCDC43457 for ; Tue, 20 Oct 2020 13:09:05 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 23AED22265 for ; Tue, 20 Oct 2020 13:09:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=bytedance-com.20150623.gappssmtp.com header.i=@bytedance-com.20150623.gappssmtp.com header.b="mdxaoKWh" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 23AED22265 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 4E8A76B005C; Tue, 20 Oct 2020 09:09:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 498B16B0062; Tue, 20 Oct 2020 09:09:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3602F6B0068; Tue, 20 Oct 2020 09:09:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0103.hostedemail.com [216.40.44.103]) by kanga.kvack.org (Postfix) with ESMTP id 0578F6B005C for ; Tue, 20 Oct 2020 09:09:03 -0400 (EDT) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 6F7AC3626 for ; Tue, 20 Oct 2020 13:09:03 +0000 (UTC) X-FDA: 77392334166.27.dolls61_63112c42723f Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin27.hostedemail.com (Postfix) with ESMTP id 4C7893D663 for ; Tue, 20 Oct 2020 13:09:03 +0000 (UTC) X-HE-Tag: dolls61_63112c42723f X-Filterd-Recvd-Size: 6562 Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by imf34.hostedemail.com (Postfix) with ESMTP for ; Tue, 20 Oct 2020 13:09:02 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id 19so137410pge.12 for ; Tue, 20 Oct 2020 06:09:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=ITF5JclwspjIVhEI/makUWBTrmHam62Yza4T+6BNq5w=; b=mdxaoKWh+3gz8T9lGzDzOEXWt/zO3loiddpJYHXv040n51bqawqJpJ0gp5x5P9zBvg EUoRIkG1UvLYFTEQx5RDAtfQC00sUg19zGitphqtn71Y4l6a9KoekDNRasPt+VrN1mRC HXKripL5MgSXWDSQiijRI6qFpbyJGjFcakPaf8wpXU/3W3DEkHVejgmCBU3u7QvViVsA 0gFj+1QVp+7f9aCTMG7GMfVgTEPGTErZL/jVNtG3bBvIGHR3dGih2DmMzC9JmF/xWeTH lwu7jPYgDbRZuqQQB7GOV0mGjPtpMKXHHo0NL4niXTYiryMLRY1E4plZuivxDvZ9hc3G gCjQ== 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:content-transfer-encoding; bh=ITF5JclwspjIVhEI/makUWBTrmHam62Yza4T+6BNq5w=; b=Kp7DjWw27h3hWvQps9USi3ipaVS5VZFA1mECCDlDeET2u368H9QKCmAPEXQEJBV2mb 0QrvvOq42dqb8R8ohb4/Mkc8tfOI3Pthn2crdMeXD3AUvP5s40AoT1l4UOfagbDgIOPl X1Q5wKXmoWurD24TpfhJ5N7H+dhSfziIxilO896iwXricUxX/PAyhukSvDPECVGIcCHc 8MxPJImXvlRQO2wdnvQ33g5pmXpN147+nAfOaFJOP2TuX0mhWQj8rcFRF9v87VtMxUdB Ca5Ba0eSqEnKZF7QD2sfYf0x73OHMO76/ifGdNu7PTl8TXspM7fDdug+VNYmVcycARSD 5k/A== X-Gm-Message-State: AOAM532Y0E797cw6ySpyZbk1ttPmDvuw0JwmAVa8akQ3p9tu5uvzaqJO gTSUqce95R6SSDA9/S7YMwYGyZL582yZnO1rn+xxHQ== X-Google-Smtp-Source: ABdhPJxabMb2qd9lo31jJKqCx7rg2FeGmCHQDAGFjsaMcfo4CLQwDJY4kd0+ooqXExTvQ+VeQbb0b6k0LnrYe2EwGBs= X-Received: by 2002:a63:313:: with SMTP id 19mr2529541pgd.341.1603199341306; Tue, 20 Oct 2020 06:09:01 -0700 (PDT) MIME-Version: 1.0 References: <20201019101520.12283-1-songmuchun@bytedance.com> <20201019123137.GG27114@dhcp22.suse.cz> <1b5198a5-247c-23aa-3be7-f5821a672cc2@windriver.com> In-Reply-To: <1b5198a5-247c-23aa-3be7-f5821a672cc2@windriver.com> From: Muchun Song Date: Tue, 20 Oct 2020 21:08:25 +0800 Message-ID: Subject: Re: [External] Re: [PATCH] mm/memory.c: Introduce non-atomic __{Set,Clear}PageSwapCache To: "Xu, Yanfei" Cc: Michal Hocko , Andrew Morton , Stephen Rothwell , osalvador@suse.de, alexander.h.duyck@linux.intel.com, yang.shi@linux.alibaba.com, David Hildenbrand , Johannes Weiner , Hugh Dickins , LKML , Linux Memory Management List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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, Oct 20, 2020 at 7:51 PM Xu, Yanfei wrote: > > > > On 10/19/20 10:58 PM, Muchun Song wrote: > > On Mon, Oct 19, 2020 at 8:31 PM Michal Hocko wrote: > >> > >> On Mon 19-10-20 18:15:20, Muchun Song wrote: > >>> For the exclusive reference page, the non-atomic operations is enough= , > >>> so replace them to non-atomic operations. > >> > >> I do expect you do not see any difference in runtime and this is mostl= y > >> driven by the code reading, right? Being explicit about this in the co= de > >> would be preferred. > > > > Yeah, just code reading.And the set_bit and __set_bit is actually diffe= rent > > on some architectures. Thanks. > > > >> > >> No objection to the change. > >> > >>> Signed-off-by: Muchun Song > >> > >> With an improved changelog > >> Acked-by: Michal Hocko > >> > >>> --- > >>> include/linux/page-flags.h | 2 ++ > >>> mm/memory.c | 4 ++-- > >>> 2 files changed, 4 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > >>> index fbbb841a9346..ec039dde5e4b 100644 > >>> --- a/include/linux/page-flags.h > >>> +++ b/include/linux/page-flags.h > >>> @@ -401,6 +401,8 @@ static __always_inline int PageSwapCache(struct p= age *page) > >>> } > >>> SETPAGEFLAG(SwapCache, swapcache, PF_NO_TAIL) > >>> CLEARPAGEFLAG(SwapCache, swapcache, PF_NO_TAIL) > >>> +__SETPAGEFLAG(SwapCache, swapcache, PF_NO_TAIL) > >>> +__CLEARPAGEFLAG(SwapCache, swapcache, PF_NO_TAIL) > >>> #else > >>> PAGEFLAG_FALSE(SwapCache) > >>> #endif > >>> diff --git a/mm/memory.c b/mm/memory.c > >>> index 2d267ef6621a..02dd62da26e0 100644 > >>> --- a/mm/memory.c > >>> +++ b/mm/memory.c > >>> @@ -3128,10 +3128,10 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > >>> set_page_private(page, entry.val); > >>> > >>> /* Tell memcg to use swap ownership re= cords */ > >>> - SetPageSwapCache(page); > >>> + __SetPageSwapCache(page); > > Good evening, Muchun. I found there are still some places could be > replaced with __SetPageSwapCache=EF=BC=88=EF=BC=89. Such as shmem_replace= _page=EF=BC=88=EF=BC=89, why Yeah, thanks for your suggestion. > PG_locked has been set before SetPageSwapCache=EF=BC=88=EF=BC=89 is invol= ved. In this case, It doesn't matter whether PG_locked is set before SetPageSwapCache. > > Would you please to check the rest places? :) Ok, I'll take a look. Thanks. > > Thanks > > Acked-by: Yanfei Xu > > >>> err =3D mem_cgroup_charge(page, vma->v= m_mm, > >>> GFP_KERNEL); > >>> - ClearPageSwapCache(page); > >>> + __ClearPageSwapCache(page); > >>> if (err) { > >>> ret =3D VM_FAULT_OOM; > >>> goto out_page; > >>> -- > >>> 2.20.1 > >>> > >> > >> -- > >> Michal Hocko > >> SUSE Labs > > > > > > -- Yours, Muchun