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 64DDEC2BD05 for ; Mon, 24 Jun 2024 11:48:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAD8F6B03D6; Mon, 24 Jun 2024 07:48:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D36BC6B03DE; Mon, 24 Jun 2024 07:48:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB05F6B03E0; Mon, 24 Jun 2024 07:48:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 98DC76B03D6 for ; Mon, 24 Jun 2024 07:48:57 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3EDBA80EE9 for ; Mon, 24 Jun 2024 11:48:57 +0000 (UTC) X-FDA: 82265610714.20.8E0CB0D Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by imf16.hostedemail.com (Postfix) with ESMTP id 68CC918000E for ; Mon, 24 Jun 2024 11:48:55 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="TNp7YLH/"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719229724; a=rsa-sha256; cv=none; b=X9fu4ffY515FaGWXZ8vjnAqWXXPqr/bQLcKAeZJFZ/LGBT1ILu8I/UgtGaHA8921cbYSvp ip4lAol0LPV9PnOB+VEXpTjMekjCBC1zE5VV10hM/jmGRFtLmMPo/0PbGXG8FC4FUnYxDv Y+SUfhqnw5xsH76yzgh3WMibpCBvje8= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="TNp7YLH/"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.49 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719229724; 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=30fzgwULvXEqLioqFM6R9Hs9Qm8PujYdd5yXvrzn+gk=; b=63NW/kcrJpzLku8H3/5hu/PO32wjXHkEcZJ4bfKnmk+5p0cxnTYRebLdYVyGRGXomgMLbW P0a4kRRLQuHRztl2ZrCez6INW0S6Qkr6X0OnFA/7NySh14l5ACTJ6iPI0xZzJpvYUzrSQL iGjEN/xBvgj9Lot2wNkhdkEmQw94J6I= Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-57d0f929f79so3686638a12.2 for ; Mon, 24 Jun 2024 04:48:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719229734; x=1719834534; 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=30fzgwULvXEqLioqFM6R9Hs9Qm8PujYdd5yXvrzn+gk=; b=TNp7YLH/O+qmvmwbAJfvFHFKzKQUrKsDhIuNKPGLIydlvzWU4zqZZOT7lCxh61sbNu emrWbk1n//rayqeAhebxHwFWJnUyRg0QBOU22jRGchEaH6355Ep9wv3mGOrJRn7STgru J+ITLsa6QfqynP3RGoOoAqK7D706+BfkPQ/MfHyG5DRtQsSF8GPYplCpunKZpI1dA6bt Pmi9j3qOJVjh/6umm1fbgB6KO684yfrHJ3IoXRYhJCcBNynrQ77S9uJ+edmnZpGgeo1K xKOcUhtn/83N/25gpsz+gykdCaIbImauf2Ll/1/Mh1zw0P4XeQ6Hq815o30JfXx6+1oO 4isg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719229734; x=1719834534; 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=30fzgwULvXEqLioqFM6R9Hs9Qm8PujYdd5yXvrzn+gk=; b=WzJfFlpKDSKSGTu9fjM4yEgxN8JrplXChbDoVfFq8WGocLHsjqWot/yUwINQ+MHSLi zGweSPXJi0fRALehkPhbBGq57LyzVkvqn9rtXCWaEo2tcSLe23HmZTqx+vhuA9OXixKx Tyh4OVz5HuUB1ZyBq0CXAZVtZ06grgeTxDhvOLNP2T7L3ex/Wxr+0YxAJvdbSre/InfU IGBXJWkoFrRlPsmSr25zN97l7OkmHfDZB73cAdqUCRb9HcCuU6ihuFtopU8cuOp5WS2M yYEsZXR8qMWlNVIVMpVs4qzejN/UGI3u6v/DFadaGiqHyv2i+dOc893FKTmaabO5EgX+ b9Ww== X-Forwarded-Encrypted: i=1; AJvYcCXvgrnr9fc1hH2cgztqFfSY0VLSNvl90Qrz7TzU+sHSwZEDgjh0KC03kHz9OXxX3a2wCH+neWXAL1KPpyWDnrurv+E= X-Gm-Message-State: AOJu0YzkXlGVqVL3SycHzhkLTrnWXd/urGCcUH7Z/Qu1yHvMIK7sGhGS V2x6+30AyfMeUky8yNkqsuNbHFH+9+26Kj9RwU6+wt7qb2Dk42M+qVNCUiCqOMe9Fv+dqB12tBq nx3p45C51HeAqZnFyfKMXcFOnBC/HRes3jxyB X-Google-Smtp-Source: AGHT+IEXVn5tQ4BJGMDOndRlQGYJbVGz0+NoEyzZxIM4ouUg/O3z7/UIBizKdZ4kOjul7xIf0RII7O6Qj0mWDfXU+X0= X-Received: by 2002:a17:907:a584:b0:a6f:b3bb:9249 with SMTP id a640c23a62f3a-a7245b564famr290593566b.22.1719229733273; Mon, 24 Jun 2024 04:48:53 -0700 (PDT) MIME-Version: 1.0 References: <20240618151026.521019-1-david@redhat.com> In-Reply-To: <20240618151026.521019-1-david@redhat.com> From: Yosry Ahmed Date: Mon, 24 Jun 2024 04:48:17 -0700 Message-ID: Subject: Re: [PATCH v1] mm/rmap: cleanup partially-mapped handling in __folio_remove_rmap() To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 68CC918000E X-Stat-Signature: f63bza98n71dqm3hwqs69ex48azp759x X-Rspam-User: X-HE-Tag: 1719229735-988334 X-HE-Meta: U2FsdGVkX1/1yZkUD+DZ7usdnDeqDVJvIovUXRANq0CfF46Fs+fPL9DBHpdU7I/PUvN/w1dneAiaIiM7cpjb5jEvPDcPD3IrGNSgbzC8XUpncyXmEn/zAteBowis5i8TLGvty03H8a+usFmnokC5c8e0gZZy6rnnVpfEQcNa0vaO8IJtuxnVf7GIMczjNXdDdkkjdTvBVd0TQ0REFxptH8+9gS/iz/FhpDBGZhLlyFY1Me+9yluQsTgrfnSGeH9t6Sq7dqStmGStCPTqpH5M6o6V+8Q/jk9EHC61/bgihFE+YZhTv1u+pcPnE3u+jtSBj/UVosJsw9LujRopdzehLqGtNWSo4nqXgUlP3XLaYachanpkV6jhDxKfPM4tzWwTbeWahzQJ9/zh1sGx11hRNhtsl0wzeOTklRKwznbgc1wlgUBXN1FzXoM0/ILOn9T4leZqfFtabILzOa2uvg2/r1muZKKNtGg6HM7w6bfetpMRP973GXke18ZFLbp5du5dFYuHIR6aZ1jabLnHRnlJQ4Hp6QzZIMfF6WHefPo6lq0faUQ53zLcCOWfXhu2/61xu0e7HKCopT2ghtcC7qOsY32HycgB200xSvjSnIRzixzvA/Bt+dZpk6qZ4aVQehMCkHbizuml9gxU48sVyZSoJa5awvGph0YDSohdR+qPOwN330v7CZG1PlxOb82lhprh5J2gwL6CHm5FfgP9PDk3X+WZlFMjD/ulU6leAc4YGUp7VK49Sve03mVDbr1tmloiR3CTJZrf/qZAlbbLtH7f4WlIqFw+KiZh8v5W8xSL4NUc+aA4IMYPF5XLNwwz8ZmTp+O6bU9Wlg1XNhkGLNPYXCw4RM4C3m52cl0qm92tBcXtm3Mx0Vgz0DfzmpDdYLNL9HiOh7WwJn6oOfRttaUVUDW+ZHlEruAbwmeIqZDDXTOSaRrJWBP4X5UiVRsEj1SaZ+1IzNgk1C3eGCwnbqL cimItD6M W+vG9nWPqmdHeUT0SkwZnmK4+woBUZGpvVwmQHrg2XPZR25LaR3Nyv7C0zS7neZWxOHgsdIUGn5h9mfzt1G7Lkdn6t9+r5sH3sqTcejphXegL22CYXuZHhdh3gOEB6KgTpdSxwQa3Zqwzm/WBxjKz/hkjpXZFqaP8N3/EXv0oVAkvo8UCM6RgP+lZE7pxNIM+1sprxFKDnPW2Fsq7VEdpn7JfNdy9cM+IMoh3YeOd+xv3eoAo5xnKcN+2eio5DNVpEEqD/ARW5/XR7Mhok2MiTA0h177t7ZrQKP0nJzefIJ0TRdwCw27jpgOTtC/g9GzJ15CMNbRRw5CzbLbzTZrZ3QL1jTeemWQFep5E/V61W++XzEN/ukcgZHipvRi0ra2LDfcX7GFD2jvHX94vqV78xn0SRvXKAZjNEQt87XRqJqVeT46klV/dBLSNCg== 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 Tue, Jun 18, 2024 at 8:10=E2=80=AFAM David Hildenbrand wrote: > > Let's simplify and reduce code indentation. In the RMAP_LEVEL_PTE case, w= e > already check for nr when computing partially_mapped. > > For RMAP_LEVEL_PMD, it's a bit more confusing. Likely, we don't need the > "nr" check, but we could have "nr < nr_pmdmapped" also if we stumbled > into the "/* Raced ahead of another remove and an add? */" case. So > let's simply move the nr check in there. > > Note that partially_mapped is always false for small folios. > > No functional change intended. > > Cc: Yosry Ahmed > Signed-off-by: David Hildenbrand Makes sense to me. FWIW: Reviewed-by: Yosry Ahmed > --- > mm/rmap.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/mm/rmap.c b/mm/rmap.c > index afec4b6800caf..aa900e46cdf82 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -1551,11 +1551,12 @@ static __always_inline void __folio_remove_rmap(s= truct folio *folio, > } > } > > - partially_mapped =3D nr < nr_pmdmapped; > + partially_mapped =3D nr && nr < nr_pmdmapped; > break; > } > > - if (nr) { > + if (partially_mapped && folio_test_anon(folio) && > + list_empty(&folio->_deferred_list)) > /* > * Queue anon large folio for deferred split if at least = one > * page of the folio is unmapped and at least one page > @@ -1563,10 +1564,7 @@ static __always_inline void __folio_remove_rmap(st= ruct folio *folio, > * > * Check partially_mapped first to ensure it is a large f= olio. > */ > - if (folio_test_anon(folio) && partially_mapped && > - list_empty(&folio->_deferred_list)) > - deferred_split_folio(folio); > - } > + deferred_split_folio(folio); FWIW, I prefer moving the comment out of the one-line if block as you originally suggested in [1]. [1]https://lore.kernel.org/lkml/1a408ed1-7e81-457e-a205-db274b4d6b78@redhat= .com/ > __folio_mod_stat(folio, -nr, -nr_pmdmapped); > > /* > -- > 2.45.2 >