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 C6B5CC27C4F for ; Thu, 13 Jun 2024 08:46:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 648336B00AA; Thu, 13 Jun 2024 04:46:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5F8CA6B00AF; Thu, 13 Jun 2024 04:46:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4BF9C6B00B0; Thu, 13 Jun 2024 04:46:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2BFDB6B00AA for ; Thu, 13 Jun 2024 04:46:27 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BD07E8180E for ; Thu, 13 Jun 2024 08:46:26 +0000 (UTC) X-FDA: 82225233972.02.40EE0F4 Received: from mail-vk1-f173.google.com (mail-vk1-f173.google.com [209.85.221.173]) by imf11.hostedemail.com (Postfix) with ESMTP id EC7DE40002 for ; Thu, 13 Jun 2024 08:46:24 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dZfNjHRy; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718268383; 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=bNrMBohAlmbgJn1GzoPBttUeTFyiVjJwM4dKwfpEPEo=; b=7K5VLSjozdsPtBgM+/uhOaZHGIQ5oLsfvKUduAqeIkcQaIqkexsHYZ85wkv+AJE1oJH4te XLg1Y60OPaTCy8GDKOoCFlpdgh4Gk99YeLW6bxOdpvd8Kbt4FZoo0g+9RA40BFp+coagSK kkd5ZJ5l1cTb18hCqmBx3eKyZ7QOI7s= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718268383; a=rsa-sha256; cv=none; b=LQHphciu6I0loIizcnoJGND9DzZ/KdG9lCokA1CzbVjOClLcOtjUNbg50WASO6pHo2faBq qKKolnIJDfB9Jz7xY94V5dLdXRmtX3bkQntoQnXU+0xRF1z/8y30YYbCYFDzUwdE7xthJO g2gUBAPVmMMK8pcYwEbeqqrQDWn/nqU= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dZfNjHRy; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.173 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-vk1-f173.google.com with SMTP id 71dfb90a1353d-4ecf8213dc6so279455e0c.3 for ; Thu, 13 Jun 2024 01:46:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718268384; x=1718873184; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bNrMBohAlmbgJn1GzoPBttUeTFyiVjJwM4dKwfpEPEo=; b=dZfNjHRy8ewynzB7eB+8LBkiD1M9fMZlMhSSGpV4RFhkIhWXJZ6jT8mbIeGxpEC1PJ H3mrmoiftLJsUlBQi2wJOyoJbHmKtsarW2H0lM2auUaM6Y//hhmTT12ZhsEOS+BOo/uT ThAG77IZOTfpyAjL0KYpj4ZYkil2h2/wxHBZBhyiebsfnhpER/CM5rtUWW4ow9fMiKxz ue7Ahv8iIxWlYhz8wkljBKw3nEcebtzb2mue/Lsr8UDCuMkK/Ebo+irzW3ZX09CtYh1U GTgoJqs4ID2zTGJKCPHhbrhrJsX66iuftJ712zOaoJzg21J2Hh6yPXh06iTpMFcUeMqM PYAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718268384; x=1718873184; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bNrMBohAlmbgJn1GzoPBttUeTFyiVjJwM4dKwfpEPEo=; b=MfjSzz9hBXJKajZ+btnaceqHYnfP12426qxubeYRkdzThqjPBF8dDbqIMCur0BnjVE 04gYjxGm73NSrusm5JRjR8P3M3bE3VjSWUkBpgnXD+IZI6WDDO6yd0Wf8P2P/DpthaVt Got6L8GlcOdLAMkTqViWJTStZ94GkM22AMnk89287An1nieKG7fvnxseKZDxP3kM+ufN Z5n6dfzjG/bAOdn3sWYJwq+LYgwJFwn9Ap0OeWF4Ajr/igwW7i7T4xBRk4ECqJum9qZ4 SMld6E+DqQ930mGN+rxmKufhP0967/zFDi9pxUv8NJjoymEvobphCExWbnhNEFklsFtN t0jA== X-Forwarded-Encrypted: i=1; AJvYcCWD46O8enoFyfo2PcA2tV62BW/gMt74AZwTxSKnBUsmBvHQIJCpdI5wWzu6K8uXMc9k9heWLqz1bcb63BaHW+L0QEI= X-Gm-Message-State: AOJu0YxAAcSrUZ77wtAVMpe/yq0Vfvpw0rzfI81lXvatAJAi/Y03o9VQ t1gGs4vIG2Kvopf0sB1/ID+I270S2AMX8hcMdtA402nTn8/EidhmAODdGAieAGmSOyRDf9kIgFi ESHrJPC9SvsMXtJZ0G0yFYMqfyJA= X-Google-Smtp-Source: AGHT+IFEK+ug0/3N2rQ2IpnKhQO82VHIZlOazodcSIaMISCry/y0HSqCVg6aI6xdR52+yrmh0qpBfJL54MD+9pD6KJg= X-Received: by 2002:a05:6122:361a:b0:4d4:21cc:5f4f with SMTP id 71dfb90a1353d-4ed07bcd848mr3740162e0c.11.1718268383993; Thu, 13 Jun 2024 01:46:23 -0700 (PDT) MIME-Version: 1.0 References: <20240613000721.23093-1-21cnbao@gmail.com> <20240613000721.23093-4-21cnbao@gmail.com> In-Reply-To: <20240613000721.23093-4-21cnbao@gmail.com> From: Barry Song <21cnbao@gmail.com> Date: Thu, 13 Jun 2024 20:46:13 +1200 Message-ID: Subject: Re: [PATCH RFC 3/3] mm: remove folio_test_anon(folio)==false path in __folio_add_anon_rmap() To: david@redhat.com, akpm@linux-foundation.org, linux-mm@kvack.org Cc: chrisl@kernel.org, linux-kernel@vger.kernel.org, mhocko@suse.com, ryan.roberts@arm.com, baolin.wang@linux.alibaba.com, yosryahmed@google.com, shy828301@gmail.com, surenb@google.com, v-songbaohua@oppo.com, willy@infradead.org, ying.huang@intel.com, yuzhao@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 9enteaf86gesowowuy6ifr5aqf7fu9xx X-Rspamd-Queue-Id: EC7DE40002 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1718268384-665005 X-HE-Meta: U2FsdGVkX1+paUepBqP0NvEaNFmzLNs9HvNYEWlDnSmv6h76F4VNw8TMFl/B6/vSJGxCVtdk22IEUCHg2l9q8D117mQ2TV1Vv7zPoEAiGJgMQPC1ugHj+MdMDeSww5J9YWvcKcZk/qfuwkvn6uZ96XPyjNubx+0lyuu99LP059RvJz05Q/LCu+7detBNwNoknILzbL3KZdh4Tsy6PYg0ikLCMwGN2pSZmaa1MU2skwI6Bo2GSsrSH1roGaCZcagJBfI537unTSWduZiWeaWazy7rG9qLAksM/tmlw8gngjhrRC+cWtrfNgxKvs54EQQmBXceVm5Dykx8qQOKftBALlj5ZNMO/h10ynOGxZk91os8m38MHSseF5CRJ0JMrvH9CqzHagu67vmPswfuA2eN5fi6hG56Kb7h+aqDpS1N+aUU5Gil7woDp6lI9deQKPAFsnhct7yrzIQX6iV6qeiCDVIQ1KB6xIpuN7AeQzztpzMdYOewbiC32qgeqCxTlm/bMFj/Rb/XT1St7RmxGBAeFnoymCOqehzCkk4mhaMwOvx1fxT8nFhRblPu8/6WWMf2q8d+X8d+DtT6/7Nf4BDfPGu0GKWQuZiV01Uo+gDM4qK41H6akdkGQ9QpQ+OPej7okkfrtEiz1r+cORHujhdFvY/DK4xiX9Zvvq2eV0Kf+QcTBCnX5b8yCeeP2NZyGvjDO7NR/00f13st1k8aCuG+7RpiGtlYZJPgvKailUnOb3s0d/dnQyYKU+W1NOjji16GZzGZdPJwcqL4DzTLA7hYjXASFUKXDcD/cRkTlX2lepOhGs5hIoKsaHjslBYpCuzxC5G85fXaJ7kfXQLLTUWAB9F/zAebsPdn1Zo7rO5MLcyPGBhhUhvLmu72bdIwlRtt5fldNcKTiBXmB5i8duH1A+GUcs+hxBodVqzFxDV69NJ9oE1Fch3TZK6+6HkmhpwXwByHgj4Rgof/XmZLz2B +NmG7a6q ltk1xlDfwbxvCnw5FDLUTFJYtDFTTjq8OUWBiicRWK3JTA3pyQC12K8sQnx6jwFxbkwQuLFaMFMIm3HdXpKJ06GmzzokPOs9m/a9qe+wZFjPHLnXFSApW4J61N9lMoAAfDduPJhABpiRI/Uc65Kbm9Ogv6hMIpb2S/CA2x/8vcw9bIy8bGaeyHyUWPyUW0mFGhjtJoS9ZiCTqT7f3YN5VPESV/Prx+Em1oafDURaNzSnCn4dWSfKjUEZxYSCyWDiS4gGv/5QWe3lYOdkdu19HgnpRsaRF2BfAcpHCYlhkVKdXUaiw7QOFiaH4xh+YD1oUnmxWGvYTC6ywVy6kk/lzBlFIjgbFHAjiNqxbLHoXhnMNt98AvQIplE/PZVpwZbSGEYMQW3krV04Gbmh/31kZDmRmZ3VqD1zCzLJZ0RwaWcG09fsMdFGDua/Od7xCZRLVE/Dw 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, Jun 13, 2024 at 12:08=E2=80=AFPM Barry Song <21cnbao@gmail.com> wro= te: > > From: Barry Song > > The folio_test_anon(folio)=3D=3Dfalse case within do_swap_page() has been > relocated to folio_add_new_anon_rmap(). Additionally, two other callers > consistently pass anonymous folios. > > stack 1: > remove_migration_pmd > -> folio_add_anon_rmap_pmd > -> __folio_add_anon_rmap > > stack 2: > __split_huge_pmd_locked > -> folio_add_anon_rmap_ptes > -> __folio_add_anon_rmap > > __folio_add_anon_rmap() only needs to handle the cases > folio_test_anon(folio)=3D=3Dtrue now. My team reported a case where swapoff() is calling folio_add_anon_rmap_pte *not* folio_add_anon_rmap_ptes with one new anon (!folio_test_anon(folio)). I will double check all folio_add_anon_rmap_pte() cases. > > Suggested-by: David Hildenbrand > Signed-off-by: Barry Song > --- > mm/rmap.c | 17 +++-------------- > 1 file changed, 3 insertions(+), 14 deletions(-) > > diff --git a/mm/rmap.c b/mm/rmap.c > index e612d999811a..e84c706c8241 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1299,21 +1299,10 @@ static __always_inline void __folio_add_anon_rmap= (struct folio *folio, > > nr =3D __folio_add_rmap(folio, page, nr_pages, level, &nr_pmdmapp= ed); > > - if (unlikely(!folio_test_anon(folio))) { > - VM_WARN_ON_FOLIO(!folio_test_locked(folio), folio); > - /* > - * For a PTE-mapped large folio, we only know that the si= ngle > - * PTE is exclusive. Further, __folio_set_anon() might no= t get > - * folio->index right when not given the address of the h= ead > - * page. > - */ > - VM_WARN_ON_FOLIO(folio_test_large(folio) && > - level !=3D RMAP_LEVEL_PMD, folio); > - __folio_set_anon(folio, vma, address, > - !!(flags & RMAP_EXCLUSIVE)); > - } else if (likely(!folio_test_ksm(folio))) { > + VM_WARN_ON_FOLIO(!folio_test_anon(folio), folio); > + > + if (likely(!folio_test_ksm(folio))) > __page_check_anon_rmap(folio, page, vma, address); > - } > > __folio_mod_stat(folio, nr, nr_pmdmapped); > > -- > 2.34.1 >