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 AC20BC02183 for ; Thu, 16 Jan 2025 18:46:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1407C6B0082; Thu, 16 Jan 2025 13:46:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0F08F6B0083; Thu, 16 Jan 2025 13:46:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F22096B0085; Thu, 16 Jan 2025 13:46:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D46DA6B0082 for ; Thu, 16 Jan 2025 13:46:15 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 884BAA114E for ; Thu, 16 Jan 2025 18:46:15 +0000 (UTC) X-FDA: 83014195110.12.66955B2 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP id DE8DA1A000A for ; Thu, 16 Jan 2025 18:46:11 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=d5GRavAj; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737053173; 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=p9O/iRU1RGhq+Ms0ySqk0/+MMJp9XVeXHuplWuBrmf0=; b=M+hgQw8tEgtZMDtQ5yC7pGLps+jFtO9kWEybRJhmLfXG2V6JCP+KobRRtKmBh7D08y0QWW lorcN6Nxhd0MlUYJYBTNojJp8u8MiM43aQsCT/l0tGpwQZ6DVkA5n1N7p7RUjI3M86FdY0 8XaJNFyhjCUyArQXXqgqMR/a7R4LqbM= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=d5GRavAj; spf=none (imf19.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737053173; a=rsa-sha256; cv=none; b=00ACTYeuEO3btMIp2Z18G7rxCXbw1Etaps/7RWj4oR714xY8hvXjimu7Pkx8RuIwURExVc 7hO1vmtCEbmYE/9Lf/GDpqtUlfgp0VSkLa8wK4F+iBx2VcZlXMSlZUMqFijBrzeltw6wq6 YbXNyBjl2YavB6h+zH//j+p33ATLXN0= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=p9O/iRU1RGhq+Ms0ySqk0/+MMJp9XVeXHuplWuBrmf0=; b=d5GRavAjou3IC+5i1tBHyZi1jE I+9+P4XG0BPYLwLHii5QW9FbXTIRJQjWtHC8OgtAofvP6lvZ5GH1gl0TS1ZNjfHiEEpMMSwhMPAj9 3AGiRdUTt6vF81HRIZG85lDTrmtoSfEnlvCgrE5mD9tgiCiIlbJZtU5TJPcMc4veE64T7/+irC/SZ xNjjLL32FC+T4TkIsn7VUODa4IPdNbRivoF/fbx6HSX32iRMERiCUq3DP+2ZViBm57p+DEzusynQ+ r2u6a0oL7iJGlMQ/kEN0WH8ls2kgZS3UFtyoKEupD8MaFwVEt4YusKVmJVQ30bu000z/W70jgy8ZO bCGfV39A==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tYUsY-00000000pIn-2LUg; Thu, 16 Jan 2025 18:46:06 +0000 Date: Thu, 16 Jan 2025 18:46:06 +0000 From: Matthew Wilcox To: Donet Tom Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Gregory Price , Yu Zhao , Ritesh Harjani , "Aneesh Kumar K . V" , David Hildenbrand , Huang Ying , Johannes Weiner Subject: Re: [RFC] mm/swap.c: Enable promotion of unmapped MGLRU page cache pages Message-ID: References: <20250115120625.3785-1-donettom@linux.ibm.com> <7f370dd2-a1d2-4b35-ac40-0380633846fc@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7f370dd2-a1d2-4b35-ac40-0380633846fc@linux.ibm.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: DE8DA1A000A X-Stat-Signature: fejcgj761ntt3qs1ofgz4tt9et5fdquw X-Rspam-User: X-HE-Tag: 1737053171-653165 X-HE-Meta: U2FsdGVkX19aDA/QLS411bl6yxtAgytvmim9NxAhguHWiBX66NWQc2eHJzB+/CeN7vPchaNtERA3Io9TYm0UmWvnMFhp0i3twW06tEQe2Dagc2u97eh9sdoRkZ4iV6fX4NxQsmkQbSPvmPnhie64EpVFXggiDZ33LU4lmOVFI0+lYz0eMGFZCKFAV1Y2KoVc31ttJWJlPo+MMeRtrIMVr9UJ8cgTDOTkWgtgHOObpsKPeDXFucbooSeqTxVCo2fRuQnQC12rDDBas1hbHsuER2hee2sNtGbSCda/8GHyV78SYlh7bD+gr90O26zfe2Hqnsi8Ze79oftQ+RDFB9RaUgROwFlgA8ISHaRfoj/xJv08TwoD6SqkZZy64TeR43aE0U/Szd4SkX6pa1uFVc2I9Fk+6FHb6DvdDhuENFY/7b3aZAR5bExcrMzMJByhQ0oFDk5QgXTEuOFhwjXGdFX+/xsolSypzGQrYetFf8jxBr9seef2XyaOIEmwtAUTDua9rLvR8ePlpbZNpeNRqpLmC+nTFKF9Tsyj1fILkkUCg2ZgMzy+Rjk6jrlspoLF3wIMlOOHuEVGUFv4OngUrxAUr9b9F4LBMq8Io5qwVGR8IJEGRwbs+aIWRdyQ7fq2pus9bCAD+BIsf+VHRn/f0npbENvdDduXAfSqmDNZTXXkvliughLmz6xRejccy4zGXgbmCiNZIEOkHtvpRCBcKHdUWgx+iE4vpchUG6Obbn5bQOMun5mJDH8V54J8WT692LWuDGORKIusdneERaS1HZFA6pvSN+IkJ0gTQvqzbA7zIzUpIT+bVrDli4PPBno2/ppo2zo5MT4b1Lq/pB93sWZx2J/gl/GvmTm7hhAL6Xx6n/HeLzv+ue1Rm/ltGaizGWsca5+KyxtAPowWDnIVXS4cYdYDW3A4QsuU4+zYRBpPlfNy/XLx8TJiiBi8m89aZ8Wp2j5DEqpqKW3Wg1SD8Cp PdQYR1iz BbdmchoyHlPwRgwD0ZOqqwI0LfEF43YHZ+Z5nIFJjRFQkHxIc9dAVkNc2gsmZcxoCyDvW+PqiwS33uRdjQN+QsQJfglVmc4MM6H+ieFydMEt3GgfAphRG5VtIZ9h0EUpAO9EAmFvD/7/nFhiE+/IRoP/46nt90Q+rXVZIjy9zS4fKNx4jnyAy1xn55DMZ35u9enw1RSh6NhlgxTnKqaIZ8X/v8rNmb9ZsS1YkqBkjqam4WlfJ2t6kvRoJmhPxrRnndwuuzcdAqGfnoHDTX82Wsv3VcktVlFlUtr4Px6J5UHo3AvWcG4fw5H7mxxmjnYp0gr0cPQv93hvhmdo= 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, Jan 16, 2025 at 04:40:21PM +0530, Donet Tom wrote: > > Should there be an 'else' clause here? Or should it be: > > > > lruvec = mem_cgroup_lruvec(memcg, folio_pgdat(folio)); > > gen = folio_lru_gen(folio); > > if ((gen < MAX_NR_GENS) && lru_gen_is_active(lruvec, gen)) > > promotion_candidate(folio); > > > Yes, there should be an else block to handle the promotion of non memcg > folios. > > Does this approach look correct to you? No. Look at the implementation of folio_memcg(), and mem_cgroup_lruvec() for that matter. >         } while (!try_cmpxchg(&folio->flags, &old_flags, new_flags)); > + > +promo_candid: > +       if (!folio_test_isolated(folio) && > +               (sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING) > && > +               numa_pagecache_promotion_enabled) { > +               pgdat = folio_pgdat(folio); > +               gen = folio_lru_gen(folio); > + > +               if (mem_cgroup_disabled()) > +                       lruvec = &pgdat->__lruvec; > +               else { > +                       memcg = folio_memcg(folio); > +                       lruvec = mem_cgroup_lruvec(memcg, pgdat); > +               } > + > +               if ((gen < MAX_NR_GENS) && lru_gen_is_active(lruvec, gen)) > +                       promotion_candidate(folio); > +       } >  } > >