Received: by 2002:a05:7412:d1aa:b0:fc:a2b0:25d7 with SMTP id ba42csp1334724rdb; Tue, 30 Jan 2024 15:48:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IFi7y1qGkdFxylu2PFVb94U10TUVX01mCBfGGvhNmAk2JePcrea2I3oFvN/pfBJBd5uGQ8V X-Received: by 2002:a05:6830:1150:b0:6dd:ea62:ea12 with SMTP id x16-20020a056830115000b006ddea62ea12mr927552otq.18.1706658514947; Tue, 30 Jan 2024 15:48:34 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706658514; cv=pass; d=google.com; s=arc-20160816; b=M4aCmKBJx1nMbfBQBJgCypUR9VlVTDbqsayMeSnWCl6a6kPlmFA4SwPidlWFCMW8/Q bEfnWn19Fbp2lF8K7Rp8p9ey/+mHKol89VnwCn4PJN5my1tKyehNAm4frGNMDKd6Tten ZrFfGuKoJ4yjtpO2g9pZQvXkH0Q8sU6WsaIXCLmCZ/27DNECnEwsSTQogyUn2nsixo4q yBl48TJepARTdtcdFw7LaUfusSrtH6TavIhR1FX3INfgiUE14DPQ7sepfRVqpfv7dxmG DEFrO5s1JfADIK+vkQMy+pNy8IbBxBOPrud1S/d3H7bDJ/9/O7DyNaiIcVu7lbzhbbqj /JFA== 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=2fZr4lKvL81KL9mKJdNG4wqQnIzOxS/AaC4B6cMo1vY=; fh=nQ58/qv1uOygkFz0vvydh+mBWY2DyJCHMRDNyKQnfOk=; b=NpeIj9VbeW6SUTApJP55KqN2KynVuyOKMgM+n4YqzoEwSjJdnLq2h1T0JWpbKx71Yp Dvp8BOMOpmU/wBlmRSaS2SJ2AV/hEoIuLOHrAQBEkqM2zCYQnVAbGUV4ssELitzC89RQ 9ZPMpD22eLJeABt1uTjVXY1SBm/bDOGVWfm6IIvrFBU3DhDT4GdnYP4PPOrGvNh/gkdY yMZvFxwDILEe4p0TeIHKoYapGJDwxZsEV4hMrJ1DqQTQwKYPTHpzXMPEBaKbP5sQwIq8 wdvWn2IxyKv0pCxM8T7hgwK412L/O0l6sVRxsb0soBApkHqMvV5Nmf8I/5cmSMsGbOZZ 3Cfw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=IHC2Wbzc; 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-45499-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-45499-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id y17-20020a634b11000000b005cdf86014e2si2051400pga.674.2024.01.30.15.48.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jan 2024 15:48:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-45499-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=IHC2Wbzc; 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-45499-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-45499-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 90D27284EC7 for ; Tue, 30 Jan 2024 23:48:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1286279957; Tue, 30 Jan 2024 23:48:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IHC2Wbzc" Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.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 A843D7EEE7 for ; Tue, 30 Jan 2024 23:48:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706658507; cv=none; b=M8FLHXljBiabQEP6qiTgthNQYc34USKXApuc8EHo+zzD1AhYiAAJoftLN9ZhWj5+g4YIieDmluB9hApVeuGX6quhxRKrYOCkfbouJ5BlUfHX+ZVU6R+VQnwcfEiBfn3DPsBfoC1ulXkz0kseu79x0axd8KLBHkpea62WVPBi3+o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706658507; c=relaxed/simple; bh=+o5dw4i+V3UfJILxlj5izylxx+Odphf1YLK8GFy/FpI=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=l9Xrq1dff5w6jb2i6v6VHrtAFTR+muLrDF6fPki3z30VjQrWnUdXunm4iHqsOXnfny1tcGT/CD6Io0Pn/KDrWNpCpWnA56JDxvakgFP/hVxz3n53bzmaml2+sGgnunvFbrASrNgBrByO5ppUH5fZEH1XcOLIc7zPTzF5QFb670I= 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=IHC2Wbzc; arc=none smtp.client-ip=209.85.166.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-il1-f174.google.com with SMTP id e9e14a558f8ab-363890b20dfso6864225ab.2 for ; Tue, 30 Jan 2024 15:48:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706658505; x=1707263305; 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=2fZr4lKvL81KL9mKJdNG4wqQnIzOxS/AaC4B6cMo1vY=; b=IHC2WbzcvTInNzOPNKOyT5l0uE1K5wrxnE8Y2C65yrS5hur3UDq1LOY6ueykbXVOKp lzSPBo99eRd+iMigY8WBmyWNKHpsHUYLxqEiTcBKUcKKc8KVH9RNO1S5IB745UU4uans dqM2XhZ4MqK0nZ8Q5mEWlJm3vYxgXQEQtj1KcvjCP11kmqq67Ou6yBfdNwNZKyjl1MrD 2pXEITBagcwERBodEKC+M+JLWOHdiyZ3aNcEOQdP5xJzBWsViUNzTbKyKmwZ/Iyl3z6v NpBd7786SnNS/RzF0mjCkFXo/1XCWKrtTWhZGCd3Y1DvFWj+Yzi6y5mSbBfbqHGsBWFj 7nPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706658505; x=1707263305; 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=2fZr4lKvL81KL9mKJdNG4wqQnIzOxS/AaC4B6cMo1vY=; b=EVj5SkwVhkghd9k/dErqYJmBXqeyBfnlc5YY1OktIkvsYsOIFh5lnlVYbgM7e+a63R /GdXPd4piE8EYceyUxRZ+EBuIARudibOyNWYeCmTzb4doaAQUDhcy7mQxxFKSrKDHLH3 kLXfNd+Sjq8EgfAghgAd3/mVPx4aPPy6RFs/8TKt6jMT1AuAz20wcEbN3k//QHljR1HB M5qoMQAMpOzVozPDX7/cW4L4ZVKXJsY7LhbI2Elv/zdMm9vkB8Tm9lR2KHbNtOZrRPqz 28Vbv/DraDGslecmejr1Kvxc//jUeD/cP0z2aMGszXHdL5RP0ms5I4DTtbk0gO4W1s1o 1LPA== X-Gm-Message-State: AOJu0YyH3ggMz8psyJpytfJzh95LELDi5zuSAW5wRjDVp3IEdKJic8hg FLTSoGijwCRSPRb7sIaKgVKjEMga1g8adtcTs+m1e65mOPGrdyGFDFmfeMzqohx+Ss96ReCTubJ uuyqCM+r5gPYsIyQ4cqvKU8TMhcY= X-Received: by 2002:a05:6e02:ee7:b0:363:7fb9:929a with SMTP id j7-20020a056e020ee700b003637fb9929amr91167ilk.31.1706658504678; Tue, 30 Jan 2024 15:48:24 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240130014208.565554-1-hannes@cmpxchg.org> <20240130014208.565554-16-hannes@cmpxchg.org> In-Reply-To: <20240130014208.565554-16-hannes@cmpxchg.org> From: Nhat Pham Date: Tue, 30 Jan 2024 15:48:13 -0800 Message-ID: Subject: Re: [PATCH 15/20] mm: zswap: function ordering: move entry sections out of LRU section To: Johannes Weiner Cc: Andrew Morton , Yosry Ahmed , Chengming Zhou , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jan 29, 2024 at 5:42=E2=80=AFPM Johannes Weiner wrote: > > This completes consolidation of the LRU section. > > Signed-off-by: Johannes Weiner LGTM. Reviewed-by: Nhat Pham > --- > mm/zswap.c | 101 ++++++++++++++++++++++++++--------------------------- > 1 file changed, 49 insertions(+), 52 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 511bfafc1456..756d4d575efe 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -768,58 +768,6 @@ static inline int entry_to_nid(struct zswap_entry *e= ntry) > return page_to_nid(virt_to_page(entry)); > } > > -void zswap_lruvec_state_init(struct lruvec *lruvec) > -{ > - atomic_long_set(&lruvec->zswap_lruvec_state.nr_zswap_protected, 0= ); > -} > - > -void zswap_folio_swapin(struct folio *folio) > -{ > - struct lruvec *lruvec; > - > - if (folio) { > - lruvec =3D folio_lruvec(folio); > - atomic_long_inc(&lruvec->zswap_lruvec_state.nr_zswap_prot= ected); > - } > -} > - > -void zswap_memcg_offline_cleanup(struct mem_cgroup *memcg) > -{ > - struct zswap_pool *pool; > - > - /* lock out zswap pools list modification */ > - spin_lock(&zswap_pools_lock); > - list_for_each_entry(pool, &zswap_pools, list) { > - if (pool->next_shrink =3D=3D memcg) > - pool->next_shrink =3D mem_cgroup_iter(NULL, pool-= >next_shrink, NULL); > - } > - spin_unlock(&zswap_pools_lock); > -} > - > -/********************************* > -* zswap entry functions > -**********************************/ > -static struct kmem_cache *zswap_entry_cache; > - > -static struct zswap_entry *zswap_entry_cache_alloc(gfp_t gfp, int nid) > -{ > - struct zswap_entry *entry; > - entry =3D kmem_cache_alloc_node(zswap_entry_cache, gfp, nid); > - if (!entry) > - return NULL; > - entry->refcount =3D 1; > - RB_CLEAR_NODE(&entry->rbnode); > - return entry; > -} > - > -static void zswap_entry_cache_free(struct zswap_entry *entry) > -{ > - kmem_cache_free(zswap_entry_cache, entry); > -} > - > -/********************************* > -* lru functions > -**********************************/ > static void zswap_lru_add(struct list_lru *list_lru, struct zswap_entry = *entry) > { > atomic_long_t *nr_zswap_protected; > @@ -872,6 +820,55 @@ static void zswap_lru_del(struct list_lru *list_lru,= struct zswap_entry *entry) > rcu_read_unlock(); > } > > +void zswap_lruvec_state_init(struct lruvec *lruvec) > +{ > + atomic_long_set(&lruvec->zswap_lruvec_state.nr_zswap_protected, 0= ); > +} > + > +void zswap_folio_swapin(struct folio *folio) > +{ > + struct lruvec *lruvec; > + > + if (folio) { > + lruvec =3D folio_lruvec(folio); > + atomic_long_inc(&lruvec->zswap_lruvec_state.nr_zswap_prot= ected); > + } > +} > + > +void zswap_memcg_offline_cleanup(struct mem_cgroup *memcg) > +{ > + struct zswap_pool *pool; > + > + /* lock out zswap pools list modification */ > + spin_lock(&zswap_pools_lock); > + list_for_each_entry(pool, &zswap_pools, list) { > + if (pool->next_shrink =3D=3D memcg) > + pool->next_shrink =3D mem_cgroup_iter(NULL, pool-= >next_shrink, NULL); > + } > + spin_unlock(&zswap_pools_lock); > +} > + > +/********************************* > +* zswap entry functions > +**********************************/ > +static struct kmem_cache *zswap_entry_cache; > + > +static struct zswap_entry *zswap_entry_cache_alloc(gfp_t gfp, int nid) > +{ > + struct zswap_entry *entry; > + entry =3D kmem_cache_alloc_node(zswap_entry_cache, gfp, nid); > + if (!entry) > + return NULL; > + entry->refcount =3D 1; > + RB_CLEAR_NODE(&entry->rbnode); > + return entry; > +} > + > +static void zswap_entry_cache_free(struct zswap_entry *entry) > +{ > + kmem_cache_free(zswap_entry_cache, entry); > +} > + > /********************************* > * rbtree functions > **********************************/ > -- > 2.43.0 >