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 742F3D24463 for ; Fri, 11 Oct 2024 03:09:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A459E6B008C; Thu, 10 Oct 2024 23:09:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9F5426B0092; Thu, 10 Oct 2024 23:09:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8BC586B0093; Thu, 10 Oct 2024 23:09:51 -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 6E3266B008C for ; Thu, 10 Oct 2024 23:09:51 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C718F1C67FC for ; Fri, 11 Oct 2024 03:09:46 +0000 (UTC) X-FDA: 82659841740.10.861E8A2 Received: from mail-vs1-f41.google.com (mail-vs1-f41.google.com [209.85.217.41]) by imf20.hostedemail.com (Postfix) with ESMTP id 563E81C0008 for ; Fri, 11 Oct 2024 03:09:47 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eqBF6iXo; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of yuzhao@google.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728616087; a=rsa-sha256; cv=none; b=Z0aYMg32s7zT8P48j6ykLan5vQTtQNoJweXBmOzWVaIwOuM9eik7EREMB7QvUYpc87TfzT NHfxX3unekmrO4UjfA9fvr+dZbkAyzP4zsX3qvxY2Ss/WLPDsirdzR76vmHbiU7kqzhRKv jzPY6N7kREJzRablO9Oc0es+rXfm/Y4= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eqBF6iXo; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of yuzhao@google.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=yuzhao@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728616087; 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=udnYCGSNeKADzrq1R1SEMPbR8YcRKbRdLO95ou+kYxY=; b=aepVekJjJ+Ck9YPs28pLK7+ZuVruAQNW7EJ6v8gw/fF6tqNjaQ02XUuwnQrD4tPC6Zauh4 +w+nYky/fO5iYyxTI1WSQ+5J+Q3Qq0nazSM7hMpwf3x6YXnOeZcYUMKWbwRINkm1ty/0Wu WqFC7x8Rp4aklmAuq977be4+4G6bQ24= Received: by mail-vs1-f41.google.com with SMTP id ada2fe7eead31-4a3ace86b5cso665693137.0 for ; Thu, 10 Oct 2024 20:09:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1728616188; x=1729220988; 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=udnYCGSNeKADzrq1R1SEMPbR8YcRKbRdLO95ou+kYxY=; b=eqBF6iXo2UBNFEjSo1yqEy0thG2vyFIhPia5meUAO/S/fCgvPqA3bNwuGVLw1eJay9 azQU774ptreM0iZWxcd3SQSUKuGTvH6Ds9geZFpN1HmSaa+vS/0p6vBr6g6bnPfjYwV7 loOtlyjI68zxmT9LH+TXlssRaL/cl3K9GhO12MGW0lvjrRR2azxzUl6qhQUXl3emriC6 woMKC7JVa4qmEte4jRjpkoVWiCKRrzpuJ2Hv5ouGZEeS0Lau3aDKXQN5JTJIrLoR6hhT exyR8Z1qa7gscnPI0eh4pTXuXkCt1sBTApw69FZB074sVv81doGldkwFzZm67S3+t+om PwHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728616188; x=1729220988; 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=udnYCGSNeKADzrq1R1SEMPbR8YcRKbRdLO95ou+kYxY=; b=pzj0ltuvbPkteE1iVnTgqaWF+ek5fo+LaPe8cVqKUIoiaA8a4PBdH6l6+zM99+i0PU 3bcvNvkfOUqyPflG/TXCfqmvKkNBgZLuQ4igX0hAX7pO2UPzYo9hN4ipnWuzMsOfuuqV O8nbjoL2H7SwDhxZfEOMZM/PgDAcfn4r0IkvpCkc1jWXQYueNF9SVhrhnred57uKOJ0r U/5mPKAZVduQeHoiURbr5U/FO/gIrugKGHkJi7B/TWr6Aa7OxssoZdiMTxjKOKYS7lqs jBusriwng07Nz06R0d0ptANBTlGqrKEnoKsIIDG1qlJrFKdZnadH5wE+5VvVMI4qxrDa vQTQ== X-Forwarded-Encrypted: i=1; AJvYcCX/Jm8V3YDo7tBhATgGWo0/aAonYZ6CCXPvHc1khTtt99JMqYJPmVkcXlhM5yLLiPJ/K7BxArD21Q==@kvack.org X-Gm-Message-State: AOJu0YzHp1S/t8AvP5BYc/l10S5NT5CQcOMbGAVB4Zl2rMVUCeeDkjG6 ydk10znbjsSXubJl+cqo9DuY5fFyW+4XeQDH14XyEw8GdQ6x8X8lVaqjt0e9r8g5554REsroPBI oXMje/RN+LOapL8IrAp6dFq97YTBZ2LWdpA36 X-Google-Smtp-Source: AGHT+IFzSuvjXE/pB0ZdVAl2P9GCoblSOO0DQVW0NM0BU4qyEwd2xx639gJZXnoibouFQrFlCeKxEvhvyh6Bz6ZYhlw= X-Received: by 2002:a05:6102:50a6:b0:4a3:be26:b1be with SMTP id ada2fe7eead31-4a465a709ccmr1281993137.18.1728616188151; Thu, 10 Oct 2024 20:09:48 -0700 (PDT) MIME-Version: 1.0 References: <20240930063912.196526-1-zhaoyang.huang@unisoc.com> In-Reply-To: <20240930063912.196526-1-zhaoyang.huang@unisoc.com> From: Yu Zhao Date: Thu, 10 Oct 2024 21:09:09 -0600 Message-ID: Subject: Re: [PATCH] mm: deal with active/inactive inversion in lru_gen_is_active To: "zhaoyang.huang" Cc: Andrew Morton , David Hildenbrand , Matthew Wilcox , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zhaoyang Huang , steve.kang@unisoc.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 563E81C0008 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: gc8ozaeopsygiuq4os7jitqoj6h7zydg X-HE-Tag: 1728616187-465649 X-HE-Meta: U2FsdGVkX1/YP2aDAWJCoCY1wDJH6vllZGbFL/qcn+HtRMZipVrrPBM6ylw26YaS8/AlIwZK5AUSfYbYArsQFP0FVPKHeBYrU7paD7qJUAi+SDPo10G+PHTp9CARfPsSb1+ZmDmmiQoksaNn1bXL9yqNX3qsCyfb5zKqtQPOqNdPaGwt0qkwzzV7K58anOyC2piA5mKzLInBPfNaP8Nl6ddLtiXA6O0qOIuAE/c5lWvIPLkUc4YThjXOBrJ74fF8xDCIgU8sB/b/DQoXGx9CzDoC3hvudaQyMUuGjIhytykG3HIHzCMeiX52cHGFGbYk/6Xe4EXlJk3TdxNmm+t9Reo+JqzOf6LAVDMeWe2UP/pJWrV+hC394T2TVPx8mAUpICv8g38PWf2ENva4bkzDNtHkwZGPQFtoy/8Mco3yRoD4JgE6zhrnDpWTGwxJ6lhNmmyo/8oOZb9XMoRPoqH8AcozZsMLSkatY5DuYgh38v2bEGtek1OYPpnMqoeEqZVQNJ2OWNxnY0ASmvrFiBRMPFu/72j5+sKgo+NkSCuNTrr/WSVYnTOU+rF3DJ2iHjJKMtX4nHim/ZazmdjKzhWMYTcsil1rZSHJtscYQfu0oZBj6Zoq99ohelmSBtkDJ8gZ5KKCfhxHTZwZVhIPkmeJAftlBtwEFFivP9whEWBrb7FMs8RKaIUb5wKsoDFQhVNhSqAcq8yynD6Y8nByg851UEg9Fryn2+oxc1C8KlEEfXHMEgCgtEBhgxQw18zRqy9S6LlKLsIvC2skBfxj9t4LKjbXqKW26Urv+4+QnjcbzlYDf5QBYnmt3w3+A0rofR++q4p9op/DI9aJiY7/t5+8KQAnO00HU1giAwCKw6uh0A5aqzZIhqxtGWM4wZazvDqEDxYoJfF7egpOEwrd/tcAoQtp0Q51NzBFDl52MzAVphE5VY5wsViGdLm4RiHM8+JPguNUMgt/9B07kVqs3UO sdt79J6r +KjFdMKVOFTzuNVl+Wl7874AZ6HdPbSmAxvSNFm+R5g/clYX4vQ33Rgw1tQi8l/aPuM/t0YETXTAb1Rsq479VGqME0u00STiTFCCB0JDLqXRFImScA53CnwwkHJPK5Tn1CcoxOX6rqgt8uS2+yMr4C5VUw9f5NzQMhW3ldW0jmuEZz9GOTgh3HwqQnq6GYvU5fhRDsUpo/ti8zeVqrANU+Hoa+EWDooM9S62n6Y1FFDg6G40uzK9CJ144KoJLtBmzqAWXvdBJ+oh+fHnVUnuXrVMZAJX1RDyeksdudym4gHiub3STKap6IW7bk2coV5CBZ8mMImTvlc4Q3ic= 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, Sep 30, 2024 at 12:39=E2=80=AFAM zhaoyang.huang wrote: > > From: Zhaoyang Huang > > All gens will be deemed as active by lru_gen_is_active when there are > only two generations within the node, which could have the folios > to be active in the belowing scenarios. This commit would like to > solve this by judging if numbers of file type gens greater than two > since anon gens could be remains as 3 > when swap is constrained Technically, yes. But this patch doesn't detect whether swap is constrained or not. Even if it did, I don't think it would matter because no one should care about active/inactive anon when swap is permanently disabled. One could argue the temporary case, but then why would/should we care about a transient condition if that's the problem you are trying to solve? Most importantly, this breaks the proactive aging via the debugfs interface, which can override swappiness (swap being disabled). > and file > type seq advanced by 1. > > 1. New folios after migration done. > 2. Dropped folios from none-reclaiming context(drop_cache, madvise) > when they are failed of being reclaimed and go back to lru. > > Signed-off-by: Zhaoyang Huang > --- > include/linux/mm_inline.h | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h > index 6f801c7b36e2..5e4017dbec96 100644 > --- a/include/linux/mm_inline.h > +++ b/include/linux/mm_inline.h > @@ -165,11 +165,16 @@ static inline int folio_lru_gen(struct folio *folio= ) > static inline bool lru_gen_is_active(struct lruvec *lruvec, int gen) > { > unsigned long max_seq =3D lruvec->lrugen.max_seq; > + unsigned long min_seq =3D lruvec->lrugen.min_seq[LRU_GEN_FILE]; > > VM_WARN_ON_ONCE(gen >=3D MAX_NR_GENS); > > - /* see the comment on MIN_NR_GENS */ > - return gen =3D=3D lru_gen_from_seq(max_seq) || gen =3D=3D lru_gen= _from_seq(max_seq - 1); > + /* see the comment on MIN_NR_GENS > + * judge if there is active/inactive inversion by the number of f= ile > + * type gens. > + */ > + return gen =3D=3D lru_gen_from_seq(max_seq) || > + max_seq - min_seq >=3D 2 ? gen =3D=3D lru_gen_from_seq(ma= x_seq - 1) : 0; > } > > static inline void lru_gen_update_size(struct lruvec *lruvec, struct fol= io *folio, > -- > 2.25.1 > >