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 69AECD2069D for ; Wed, 16 Oct 2024 04:56:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D89BC6B007B; Wed, 16 Oct 2024 00:56:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D3A3C6B0082; Wed, 16 Oct 2024 00:56:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C02036B0083; Wed, 16 Oct 2024 00:56:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A29B76B007B for ; Wed, 16 Oct 2024 00:56:05 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1BC8DC19E0 for ; Wed, 16 Oct 2024 04:55:55 +0000 (UTC) X-FDA: 82678253406.28.7882E5D Received: from mail-ua1-f51.google.com (mail-ua1-f51.google.com [209.85.222.51]) by imf21.hostedemail.com (Postfix) with ESMTP id B82591C0002 for ; Wed, 16 Oct 2024 04:55:47 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="YDS5g/L7"; spf=pass (imf21.hostedemail.com: domain of yuzhao@google.com designates 209.85.222.51 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729054420; 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=XsSA0Jh+tBY3flF9iO9sgAWGwBYIu1+LghALUo3LUJ0=; b=k3vtYg1jsWB+zrnlQZm2uvZcNdoqOAK+51U0OQ8U32gxuTYprtoqGJl8R4nBP5ccgHkHCU dLcUMLleSUrM5sEGxgc8PnnCIUtjWNGqsGoijbbeAyljdEWwHpYl909m3uKlNDPFYlT6Lj NGR4lJhG1lIpqEwv72EldNtb+GSrddQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729054420; a=rsa-sha256; cv=none; b=X/Wg+GgjLnOiEbCs3BmfheXmPxA8RUZwt6MQTxSy1UHkrtT6OQYChKE5SpvIeg9jRKx4oC jF7DxdjvS64es+j1nQWLmI9ATyjZoC54Phcen7vz4DKhwc1oRGnPIzaCOoxJ8fssorVNmV BoyOM4SoCCnSwwv0qvrABlYehRUH2I4= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="YDS5g/L7"; spf=pass (imf21.hostedemail.com: domain of yuzhao@google.com designates 209.85.222.51 as permitted sender) smtp.mailfrom=yuzhao@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ua1-f51.google.com with SMTP id a1e0cc1a2514c-84fc5aaccf8so1681331241.3 for ; Tue, 15 Oct 2024 21:56:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1729054562; x=1729659362; 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=XsSA0Jh+tBY3flF9iO9sgAWGwBYIu1+LghALUo3LUJ0=; b=YDS5g/L7HPyDWHkR7aJjd+b5+z9p22iP/ecdVj2JVV2EUCmz153zvePCpvzpNYGFV5 mV5Y1lt7tFyPy5A7imCyJekgPHAfXFeoxGgfmsHTl2LqzmJJersyRv4O7sdZwvORLOyA 0gDPcETON2zWYrVWpPhIKsMgTEieKgMvMmOo/uCluyhUYJIATcGPGwGp1FuIEhSD1FqI WP4YALUV/PhLsLjCNiCi8Vt+ncmUaZGkwMGi0/DGhSFxtODypfbLF2oJBUHmAFdDWVF/ 7nUql+g0etNBTqEi61ilxPOGDTRQcUkDF8I2MWp9+ShslgGx8b8eLz+8mVcDGnavmY+m PO4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729054562; x=1729659362; 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=XsSA0Jh+tBY3flF9iO9sgAWGwBYIu1+LghALUo3LUJ0=; b=hX6OHl6UvpVsWsEBoU7VPALzx9jg/tUEYravzbBmaB9Coejznqa/qdWyn1QsTgf6lS SsoEEbUDqPL8/L992M1M/a3BOmJ2TIZL09EYf8D4UgrKS3YTJ9uVzTW5QsO2reLvKsaH ULG3UHO5M090bFrjjGQ0zA4oU5X1DR+EFSlwQWgnoSyZBhrcPTSXQACeaTUgdpdim0nA QFRODHXLt5gCt2Ijmrq1eIJa5XNHi+I4LpjRealbw+75LzRalehXM4oehthAy1fByTaS diIDkMFShjad4weqq6bYnqB0Rx3gIp6+69x6v0p/AJzcyCNsnw7b6tXklc2KCy6nOwj8 e4RQ== X-Forwarded-Encrypted: i=1; AJvYcCWnBCPeCqh08cX+kOjd2b/vQMyBW6GWQQomMQ7pXTGRpLewOSob71BCnzyyrarfcEgfIcc0kizZjw==@kvack.org X-Gm-Message-State: AOJu0Yy1jODNUKPo0BfhnO7SzmogGp/o3ISqskxRZXXzOssb9bc6FyZj isJQiNOl/t2loLxgo4ACTSkmzyMnVPL2y9qVRhSpxl1phezZj+7KN4ZHvm92KefkwDRtBeahrni wzgr/3Yg+LcLPrhiWGhidaQbAxMA3gAl8vAkH X-Google-Smtp-Source: AGHT+IFyzal6eYYu43TFxwjEGK1mcMNHndK2EfcE3+NjBZLwlfi/97EorJRMMm806cCeydg53YO0Dfdpj2CY7d3y9zA= X-Received: by 2002:a05:6102:6c6:b0:492:a93d:7cab with SMTP id ada2fe7eead31-4a475f12a2cmr10158787137.1.1729054562299; Tue, 15 Oct 2024 21:56:02 -0700 (PDT) MIME-Version: 1.0 References: <20241014221231.832959-1-weixugc@google.com> In-Reply-To: <20241014221231.832959-1-weixugc@google.com> From: Yu Zhao Date: Tue, 15 Oct 2024 22:55:23 -0600 Message-ID: Subject: Re: [PATCH 2/2] mm/mglru: reset page lru tier bits when activating To: Wei Xu Cc: Brian Geffon , Jan Alexander Steffens , Andrew Morton , Suleiman Souhlal , Axel Rasmussen , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: B82591C0002 X-Stat-Signature: u5uwnnfgr971izhe4ezieezw8i7sxais X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1729054547-436915 X-HE-Meta: U2FsdGVkX1+MW/N4CFUwaERiZZeBy8qUohn34O+D+YyhIn9oIsEaHiSiU9tc0FSE722zIc6SpTs8N3JY0jd191IAS7koiQXdsYgkmQdI4YvwEkZTEZCNkP1lSPfvL8hdBwjbHUiVFCW1g7MRhOnirptd6B83VGRlF98VcXYGXeA8woEPNxqMbYvk7KoC/SqfIw3jsRO4keqYmDTXHeBNvLkS9S2JF9JXL+R7qodYlLyfY969L+PzdxLroBCLXfFxGUieXRbXPeHZRVzY4/Vyum51mM3/Xm0RiOJ2zYiED7UyP7FHLbG5K6GZRLcF33NBZX+8ZpVXe882Y+QeCwFD2Q/QxRO///JE009cyPhbhMDN+iQ0sVqtKoYYxPeuzh2RCcR666tZG2Ap8078rd17CMDoKwv6yUa14R5d6EOFYBCt2v0Ktr70P3ZyZlt6Lvy1oep5lkv88eENXSmazeY5mJ2xEYK/8qY1SJwR6DK63PWLr3ja4ZjNzoJiqbijRnrvB00kaLMsUP49N1dT6JuGw2hdMb6mhdnUnzy7gcu/2wyqG5r5dzvkDw7Jku5H66vDAi676ywjpVjzHuzUmvnUcG84WvnyIYUvfBLEcVul9/e/33kElvsaZ9Oy3IY/bPagbhvu/yddYuJxZApFO1d/EZqBTm2ZjSDAsy+fM0VK2WKl1jEPV3UxnMBsmGt0+alOK2STlOHVCdWk6JZRkvZdggsD4cqoxv2wzHvnjitslAL4Q2ZiXWDko4s8mXp9RfttdGlXK1qgOBZEFfWmrSVkFvPsB8Z4tDUTb/fzPDf9/MGCGfsgOSWPryc1ENrtu/RgDGd+Hc4FQqGcA3HBCQI6JyoDNtl0kjjN2wVwHFVlDF/x/pcfZl27aucQcdyf6pfibpcBSW6dsiIc6rQSmPHMOwq6ncfCR0uaSCjIXZ1/3/RqII4BHnvOHsOLVyGeBMVJq36D9W66KlBf92V4/ph bH8t0Wde FW08i/dWi0t38JcCL14I4MEjvz/M2UBorqhw+ZEDeAx4zNvMUsjJNf4lA+rn6dpJ2urPUEjiKtt4LCT44RykJCEGVDp9t+nU6M9as2s6mzFed5+oUQ04xRklQEc7XSWGfaX+iJarYRd5MKaILUk4fZNHn1hoTsoIPeCFHZ2PXpD9Rn2wVFAFRtI+0Qfs4ZhRIU3l5rzIWpBzks9VER3mBH/v5AA== 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 Mon, Oct 14, 2024 at 4:12=E2=80=AFPM Wei Xu wrote: > > folio_activate() calls lru_gen_add_folio() to move the folio to the > youngest generation. But unlike folio_update_gen()/folio_inc_gen(), > lru_gen_add_folio() doesn't reset the folio lru tier bits > (LRU_REFS_MASK | LRU_REFS_FLAGS). Fix this inconsistency in > lru_gen_add_folio() when activating a folio. > > Fixes: 018ee47f1489 ("mm: multi-gen LRU: exploit locality in rmap") > Signed-off-by: Wei Xu > --- > include/linux/mm_inline.h | 5 ++++- > include/linux/mmzone.h | 2 ++ > mm/vmscan.c | 2 -- > 3 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h > index 6f801c7b36e2..87580e8363ef 100644 > --- a/include/linux/mm_inline.h > +++ b/include/linux/mm_inline.h > @@ -222,6 +222,7 @@ static inline bool lru_gen_add_folio(struct lruvec *l= ruvec, struct folio *folio, > { > unsigned long seq; > unsigned long flags; > + unsigned long mask; > int gen =3D folio_lru_gen(folio); > int type =3D folio_is_file_lru(folio); > int zone =3D folio_zonenum(folio); > @@ -257,7 +258,9 @@ static inline bool lru_gen_add_folio(struct lruvec *l= ruvec, struct folio *folio, > gen =3D lru_gen_from_seq(seq); > flags =3D (gen + 1UL) << LRU_GEN_PGOFF; > /* see the comment on MIN_NR_GENS about PG_active */ > - set_mask_bits(&folio->flags, LRU_GEN_MASK | BIT(PG_active), flags= ); > + mask =3D LRU_GEN_MASK | BIT(PG_active); > + mask |=3D folio_test_active(folio) ? (LRU_REFS_MASK | LRU_REFS_FL= AGS) : 0; We shouldn't clear PG_workingset here because it can affect PSI accounting, if the activation is due to workingset refault. Also, nit: mask =3D LRU_GEN_MASK; if (folio_test_active(folio)) mask |=3D LRU_REFS_MASK | BIT(PG_active) | BIT(PG_referenced); > + set_mask_bits(&folio->flags, mask, flags); > > lru_gen_update_size(lruvec, folio, -1, gen); > /* for folio_rotate_reclaimable() */ > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 17506e4a2835..96dea31fb211 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -403,6 +403,8 @@ enum { > NR_LRU_GEN_CAPS > }; > > +#define LRU_REFS_FLAGS (BIT(PG_referenced) | BIT(PG_workingset)) > + > #define MIN_LRU_BATCH BITS_PER_LONG > #define MAX_LRU_BATCH (MIN_LRU_BATCH * 64) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 9d1e1c4e383d..907262ebaef8 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -2601,8 +2601,6 @@ static bool should_clear_pmd_young(void) > * shorthand helpers > ***********************************************************************= *******/ > > -#define LRU_REFS_FLAGS (BIT(PG_referenced) | BIT(PG_workingset)) > - > #define DEFINE_MAX_SEQ(lruvec) \ > unsigned long max_seq =3D READ_ONCE((lruvec)->lrugen.max_seq) > > -- > 2.47.0.rc1.288.g06298d1525-goog > >