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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE481C46CD2 for ; Sat, 27 Jan 2024 23:42:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 775816B006E; Sat, 27 Jan 2024 18:42:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 726CF6B0071; Sat, 27 Jan 2024 18:42:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5ECBD6B0072; Sat, 27 Jan 2024 18:42:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 4CB986B006E for ; Sat, 27 Jan 2024 18:42:12 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8B393120318 for ; Sat, 27 Jan 2024 23:42:11 +0000 (UTC) X-FDA: 81726716862.08.F7B57DA Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf19.hostedemail.com (Postfix) with ESMTP id 2960D1A0011 for ; Sat, 27 Jan 2024 23:42:08 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RMCoWS7R; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706398929; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=NIPQNShO98+hVb/X4Z8D6Rhr7gPLRVT3mMbI3BiEksA=; b=SENbuF3Q9klhPMSBOu3S3cG+ZWOq+ymy9/Ts6ZbO1oIjGMykNtxadhhbEyl8JgHu8XDE+k OiFyHvPKi+xgTGqFeUKvkxinhOUTqewfzplNywAQ64GkuomkRrjZu9zVctTtUi6WE7mcJa Ch9/7EEoNWGMn1sXDkBFVVkvFB6oM8M= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RMCoWS7R; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706398929; a=rsa-sha256; cv=none; b=YjtKjToStkwcPdpmIR0fkK0ZXegiLdW534yPkHNrb14rKy65FRPHrr1DXH8vdpzN4IfBfL bCbdA3qdPGGnoksfgz80Imet3cCPazdCab68Z7TJZzJJRGG81C6K8ALSyO5dyu8bWfDBZu CIQCRq0jZezm2gJ87lljIQYWVvDA244= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 86CD3CE3816 for ; Sat, 27 Jan 2024 23:42:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F612C43601 for ; Sat, 27 Jan 2024 23:42:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706398923; bh=aLwsjk+yqZJ8iDmZN++A6YSY8VPjmsd8uJByyE+0yic=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=RMCoWS7RHEo8nhQFvZPcaWsccsH97v0vREo4GbTlKeqs1Ma/nR7q8KiYpgf2S5krL 5ed0URKDyDU6ppoyYCyQZYunRGrT98uaxFaFOaKECCtPSxKMq2SbVjLSmKbAqyMZpe w9/hrV9Re7Sbreays5AxS6Vi28D9karYZmqtA9zzr1UjsBwkwuYTM0tFm1HjUb2p/1 wycOdo1v1stuZwd7RilsmoGrhoBiU+Ghu6WrpJhAXJ0tOQqCgkGDdgkQqrxnX4Fsq4 X4ZiImJEvqnbo/is7lOhleMeG6USBd9mFLudy9ZmKUcpoL5WAAlez4Weh9lw47ttJ0 qenfayiqkpFoA== Received: by mail-il1-f170.google.com with SMTP id e9e14a558f8ab-3606ebda57cso4820605ab.2 for ; Sat, 27 Jan 2024 15:42:03 -0800 (PST) X-Gm-Message-State: AOJu0YziU6op6ttMr4LkCIfYyWK984/pBoXk3KE2Aya8+IhrdljewuvW 5SXYP2MIj7lJz2vlhIn3pCpGmFneirYhXYSJz7sNfylMyjbcwobguDvoZIUzmngtEsQ1GvJPbnc 6Kp2CJC6bMJ4g94d07NB+xI3/UopchdwxP2s8 X-Google-Smtp-Source: AGHT+IHMmu2yTpnyL+/ZXXoAtF/7A3G+VhWLCcrtqUzTADdDWs3F5D1IQl0EO/XykzpJM61HYI/TYpJ5L4Hlk9Ugw8w= X-Received: by 2002:a92:2a03:0:b0:363:73ae:5f86 with SMTP id r3-20020a922a03000000b0036373ae5f86mr2119802ile.2.1706398922757; Sat, 27 Jan 2024 15:42:02 -0800 (PST) MIME-Version: 1.0 References: <20231025144546.577640-1-ryan.roberts@arm.com> <20240118111036.72641-1-21cnbao@gmail.com> <20240118111036.72641-6-21cnbao@gmail.com> In-Reply-To: <20240118111036.72641-6-21cnbao@gmail.com> From: Chris Li Date: Sat, 27 Jan 2024 15:41:50 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH RFC 5/6] mm: rmap: weaken the WARN_ON in __folio_add_anon_rmap() To: Barry Song <21cnbao@gmail.com> Cc: ryan.roberts@arm.com, akpm@linux-foundation.org, david@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, mhocko@suse.com, shy828301@gmail.com, wangkefeng.wang@huawei.com, willy@infradead.org, xiang@kernel.org, ying.huang@intel.com, yuzhao@google.com, surenb@google.com, steven.price@arm.com, Barry Song , Chuanhua Han Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 2960D1A0011 X-Stat-Signature: 6e5nfgraean8pt8i48ss4nerzc4kafz5 X-HE-Tag: 1706398928-366510 X-HE-Meta: U2FsdGVkX1+D3W3gBzIX8VK5SfFET9wI0tJjBClmzuzg9xl70d9d232mOHVnpljpBhdn+zkPBKDSmo+bhQUHY4v9P8McxMFKCgu4YfDw0kqMYLWMt0y4KaoXJzHoHb+Hxv5M4JHaAEUSn/nfoks6d2JcsnsmygUrpnDyn4E/4q1FArGwLrhQEavO8TtIATxEvDDlMGZvlaaVfgSP2u1COd6DkAxW3EdneW73d+SqX6VKvsHxbWz813FlUN7QV1AFaCxS3Ld+E2K6gfItRJY2l3+FkNMEF6UNw1W6W/gPx8jx9YnON+iDswKvan/9gonHfTOeX8aFu/vyPyELeK04RLYs9w2YdO38wUcFQfA701FCSxOaayr2Jbe+UXG7QfPKYpjP6GXmpAxBvWtxjU+xMa9Hk/jiYPOUlSzFr74iA9M1celNFshQUYaIU4lPzsvFND/XY3NT+Z7oFjNWF1FovWjDAEXCx1zD0B+yLndWvQJQjb7hR8Lyb8T+pvMGbDujwDD1g0BN1MWusmxpkpRSPjXlnjOP97wZz6DKtapUgGp96r86EcsrjmAL+Vu+LeKm6ORoJaQEfMlo1jNNAvHuO+V6NYi1J8Wmmv0Va4LDX0d/5ww3HTHHihRQe2mu+Dimh67doOu8WGOQEO6+6fn+jacUsT7B8Ih3vN/xypVFU2HOOnx41G9xZm/wzTLQTeRGO/0hhsyKwURRWfNdq79bxmCgEvx3AB6z74/XFCLcmt2hmfQKr3u3QHf143b3GlDY6U62mPR+IuJ7w40yfJEypgn2ZnysKyOdSvSsoYb2GK9XIyY9CAcA0Ri6BC8Sz6gJVrcXsfCH2FQl6Wp0G51jYiKAL7d7DtiX4j+JscqlJixrANjWSXd0J5/mw0RvhDkXZVh2Pzj0h4FlXyrQ8ei6WksVQj8qxUBy+Ph6LFSmm1RmbolbHM78OIV3bF2AQ75Hnr1VC00Uj2jasjwoTd0 N6w== 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: List-Subscribe: List-Unsubscribe: On Thu, Jan 18, 2024 at 3:12=E2=80=AFAM Barry Song <21cnbao@gmail.com> wrot= e: > > From: Barry Song > > In do_swap_page(), while supporting large folio swap-in, we are using the= helper > folio_add_anon_rmap_ptes. This is triggerring a WARN_ON in __folio_add_an= on_rmap. > We can make the warning quiet by two ways > 1. in do_swap_page, we call folio_add_new_anon_rmap() if we are sure the = large > folio is new allocated one; we call folio_add_anon_rmap_ptes() if we find= the > large folio in swapcache. > 2. we always call folio_add_anon_rmap_ptes() in do_swap_page but weaken t= he > WARN_ON in __folio_add_anon_rmap() by letting the WARN_ON less sensitive. > > Option 2 seems to be better for do_swap_page() as it can use unified code= for > all cases. > > Signed-off-by: Barry Song > Tested-by: Chuanhua Han > --- > mm/rmap.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/mm/rmap.c b/mm/rmap.c > index f5d43edad529..469fcfd32317 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1304,7 +1304,10 @@ static __always_inline void __folio_add_anon_rmap(= struct folio *folio, > * page. > */ > VM_WARN_ON_FOLIO(folio_test_large(folio) && > - level !=3D RMAP_LEVEL_PMD, folio); > + level !=3D RMAP_LEVEL_PMD && > + (!IS_ALIGNED(address, nr_pages * PAGE_SI= ZE) || Some minor nitpick here. There are two leading "(" in this and next line. This is the first "(" > + (folio_test_swapcache(folio) && !IS_ALIG= NED(folio->index, nr_pages)) || Second "(" here. These two "(" are NOT at the same nested level. They should not have the same indentation. On my first glance, I misread the scope of the "||" due to the same level indentation. We can do one of the two 1) add more indentation on the second "(" to reflect the nesting level. > + page !=3D &folio->page), folio); Also moving the folio to the next line, because the multiline expression is huge and complex. Make it obvious the ending "folio" is not part of the testing condition. 2) Move the multiline test condition to a checking function. Inside the function it can return early when the shortcut condition is met. That will also help the readability of this warning condition. Chris > __folio_set_anon(folio, vma, address, > !!(flags & RMAP_EXCLUSIVE)); > } else if (likely(!folio_test_ksm(folio))) { > -- > 2.34.1 > >