Received: by 2002:a05:7208:c250:b0:86:f851:443 with SMTP id w16csp939025rbd; Thu, 13 Jun 2024 01:47:33 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVbeUnHKtCKpjZZHnTDxry4yB9PSEvXDvyDGPJlyskmFVeds48xuxGS92cJkjPMkVXZEmzZpXtVuerN0CHXENlneqqvh8N1VMcGGTiqSw== X-Google-Smtp-Source: AGHT+IFTFx04ju0eF0gjH65IWZYydi09AA2MRa3RNV93mcPStgPB499+MzkhqEOnEPa1XwxBW4tx X-Received: by 2002:a05:620a:2943:b0:795:5049:7f1a with SMTP id af79cd13be357-797f603ff55mr378417985a.41.1718268453420; Thu, 13 Jun 2024 01:47:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718268453; cv=pass; d=google.com; s=arc-20160816; b=nLAFodJTR/wEsDefuuz3mLx7ugcva2VNOdl98Wa6F4b6A0IehiriCTEP5yEPWMbbOF rxu3wJajqzbqB7YxizzVazBwGPpfXSSMYfSaErPbQqzGzQFT3D/lkMZOscD19wUvtXUs Bgz4k8aokQxmj9EqfWLXmvbQfqXunWYBOuXV8ie//nHInaqeBH3WiU99J7ljuAbbZyBW 8n9oynBnRRRBXnPIuOJDtzfz7G3YOSqRmadw82gNt3dXKHN97IoOXGrt2D6l1IA7KeO9 G5rRGKu0SSBQYqi6qVNDU0CHCdoWy4z8drfad+WMLP4kkruzAIXbZboqDKWNZS9mSzeB KVrQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=bNrMBohAlmbgJn1GzoPBttUeTFyiVjJwM4dKwfpEPEo=; fh=CSmlC9Yo49xTaSum4aESuSC/L3493x6vpxEpT7gJZi8=; b=1Bg182TYpZsfhbu+vc0KxWMafQQsU52dLF2aoCHQ/r3b2W8NyOfiS7jZi0cCq7wWO2 w3mwLWDjy5wU9MoTZ8ap57TDhS7GoWLgKB6SF7hSWMYQikkrFeGSqPt2PkuYj8k75eUj OxrNrJ9cJrK2keht3o5wHFxuI9AOVl2sQcJgzKfzUpaGL6bO0170uitBZZUvpYrR4yAc pSO0PncpW8n8IRCSJ2kKR4ObiCXO0Be0V1JJRRL6u0BzaMVtF2RaAfmNK0xmd7E+s2MY Y+QHJKrx6C9/JCSvEUdzWD6b/eFSsfHQLfuzg18oy+HZrAFvFTK4NBYV4yHt4U5T600R rcRQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=mvYu7vM1; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-212866-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-212866-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id af79cd13be357-798abd22220si87524285a.516.2024.06.13.01.47.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 01:47:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-212866-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=mvYu7vM1; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-212866-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-212866-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 0AE3C1C22ED2 for ; Thu, 13 Jun 2024 08:47:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6FC9813D51F; Thu, 13 Jun 2024 08:46:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mvYu7vM1" Received: from mail-vk1-f174.google.com (mail-vk1-f174.google.com [209.85.221.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2438277118 for ; Thu, 13 Jun 2024 08:46:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718268386; cv=none; b=W458OlR/muQgbHuhiS+Z5RbVi1UAKsPr5sOVVUqSMPtXEU1kODg+tlrrecNpodBxomq3NEaQVok2jEZYOJHvsjzMwhrU0sPiRxmEVmpwwe8DpLe+sGIkMUewsH9OtYGPcZb5tHI/dMeo99rb2jToSlQkVd0TPitS55mk2pFGI5g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718268386; c=relaxed/simple; bh=c+6YGHZAWPgDR516eTVeoCk8cdewYFFE5+cBxZDjJ40=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Dp19NeufcNsvNv39ZAmGfxZsBGVb3ZwUd4Io96sSGnLGCjX0rvtggPKEW/jzJwo9ZgfhmsoI0ysVTqN0IMVBq4+qtb5QDkDo8jhQISfDFnaeMnkvH/graCiIbaXlUpDoq/okMo1rxYkVm/d1eG/cVxMbau7Wil1w9ygRgePqj08= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mvYu7vM1; arc=none smtp.client-ip=209.85.221.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-vk1-f174.google.com with SMTP id 71dfb90a1353d-4ed128ac278so245601e0c.0 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=vger.kernel.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=mvYu7vM1Q1YA7K9XknXf3YIk4B6Fhd7zAbtQD9KvjHNmFoNGI+/Vj3fimFen/bMr0R EYAfPr2m/AvQ7LqKmYJPaiytnF0ZQiG3MfoM7dvpaJDI53/oDbrf+EmyjI6Z5n2brPkP FtnEfWIUI9PU/kAvrRkb5AHF71J1kWJCNrFyLbW+71zNvTS/jqedV6t717DxI0OMKZ3y 7Y2EK5BHbarCY1NyZZs5e4HFdrHZqV6b4AeG0X6ZsKiV3rmzdn2Q5t3ZP2mY2LxVmHJE Oose971hEeBARn7jGM7qqnufgnPcp32eaj8j9X/PdfRQPt/8qFSn2ZFTz6lBWcCYfWJn DCTA== 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=J7OJgcJitGkRlFm1PeogB/FdubnJW3nT8bI0Bdvf7pJ1bmwO1eMBjMRZ8nRqL8IlIj nD6loeRMtrg1xLNSUqJ+Qt1ywbktYbttaLBXUwdPekQUSmUWwfn5QZtVDUSuUEwnmIHm B0v1vEMsKqFZnBDh9dmR0vLx2Im1AmLq6ucEy/0pAx0px8B2QDu1i6B2ALZ1g9OXMHUB M9Wg0hHq6a6qr23laKIRMKFx9xYCHXAvK/bi51VgcgXSbGElcMnjxP4mTMyU39jdqCCU 3dPS0WcNvhuQlHaYRqqE0AW2za6cTGaxmyC6t9v1FpQpRz5J1hvSKAySOQOxZSEySNXu a1wA== X-Forwarded-Encrypted: i=1; AJvYcCU3AUxwR18LgvXqb3yDF3Lk2V5S7cXlIZVteC8N7VEFQJsWGeQrsakPGCG2H+NQYGXu3T6PDU/6J0tZYFZM7fYkBFId9dtTV7C+Xpkg X-Gm-Message-State: AOJu0YyAnyxbGDpzLu0n8EZzRHK2m1e003T4uBykg7AzloLAbh1WzTB+ AOGbskhZqZAFQ22GuCS+7/lqWbedPMEKnGZHtriYmoML7KoVYOCMIkUYNOP9/VvnZTa6hRZGqYo 2mg523RKtuJS5IbPD9UNKRWROfbE= 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) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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 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 >