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 701F9C47DDB for ; Tue, 30 Jan 2024 23:48:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C80446B0075; Tue, 30 Jan 2024 18:48:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C30066B0078; Tue, 30 Jan 2024 18:48:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD2BA6B007D; Tue, 30 Jan 2024 18:48:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9DA636B0075 for ; Tue, 30 Jan 2024 18:48:27 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4A4F8A2102 for ; Tue, 30 Jan 2024 23:48:27 +0000 (UTC) X-FDA: 81737619054.11.A0686CB Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) by imf20.hostedemail.com (Postfix) with ESMTP id 911BA1C0026 for ; Tue, 30 Jan 2024 23:48:25 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=icBLV8MG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.169 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706658505; 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=2fZr4lKvL81KL9mKJdNG4wqQnIzOxS/AaC4B6cMo1vY=; b=uQFcyb6T83FmaLOemM2anvd4FaVcyoUSfkXQJxg8Klv3P3Da3sd2pAPI9Etw57uL0nUF26 WR2hNkTQPmS6smOngvcv1hcKn6/qhQoYInk98gXLuRJexxxR33ovkTwrfOpnCqVlbveJz7 gdZeqsBH0RazJX0LGUAMebNwgijEAp4= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=icBLV8MG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.169 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706658505; a=rsa-sha256; cv=none; b=QXNmvwcyAbHpEt76Nhjqw/0WgVRVYZGco7QF3UDJyz23Np83+e49j7OQgBr2Q/bCepiSgY yQRWRjVf8loMIvHhFQfcc4Wzo39LBOjw3SQc0U+MqkePjRd4X0hUwcfyMyb/eV4tNeqjxR +VJStQ4V2m/j8J0sqR9zuXK51eLtvro= Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-363844ae819so7074705ab.1 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=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=2fZr4lKvL81KL9mKJdNG4wqQnIzOxS/AaC4B6cMo1vY=; b=icBLV8MGnubdSVuZPvs3c2d12IzQau4WXraHOZo9LStHBTI5GqQ/chmlPDBNWQr466 8fdDBYe3PDT1o9nbSX4xBuvVqeWqFszmLhoWjSw+ML63X/08DgIgH1w0HKdPmMcEEAGr kEQU1j4aG8O6aPW7qDiVtCi7fRfW2A8+PS7NyBMOHRXZQV/iYadHT21coAszsXu1SY+N /27+03RfiGAnSxV4EH0cIS3AqjwCPm7xe60uWa4Z8XcEOeY3fU7wT1jiVnwvgF2AA/bI 3YQATYuV+gEjagOt55dbWEmqSf0/c5W8fK3hHdNOdk8upG7qdmcGGYh9BfLbzgCePLhY fnJg== 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=pWs1te1s6J1A81c80NG0nrqKKy8wvZL7RbKRxSrMRjeJNyVJoKTvtbhgWyusM1s2/m vU49yszDHe4trL3s+aw0sjmVRNrXv5UQM/gYeV0y7ir1LkpQz058rWd+m/pTWOWU1Bae /70MuXpEwSkprzUFy/+jPCHlv6QSIi66T0dn9ulypR31l5OXJ3RR3XdR63vqdlUoH/5Q mmCjCeSyPqb94JKPY0eaJXkk7Wmbcvp1eMykI85DNlmSR028aqheSCzsStTqAkMatjPk 4mKgkIFgU1wEhiUCGCc8N0DuGEIUWg94at5a8KGOMkicRzlH9uIvD94kge9Q3BRY2PRL w5fw== X-Gm-Message-State: AOJu0YzTOt7zOThmeEJcddoXzgQJn1n1xpA4uuOt8ygA3BlVjB4YWZD/ ZLzMiThzIRHwCj4t1yP1bttf7JED65u302LqyHUXn22erd+N80UOtYNxtURgTG/OhCe+davvGjI SzWTPruwgrlOfId0RIKqrnhNT/IU= X-Google-Smtp-Source: AGHT+IETgzCoGY9ZZBkoLuxT28Pwh9txeSQC++SWOUPFMBKt9gvh3WSbKsPT6p9nBxMHkLfyMoUq+sCi/TqPBe/ZFFw= 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) 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 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 911BA1C0026 X-Stat-Signature: cojar3a1zspa76fmz8f3ztr5wmzmjokx X-HE-Tag: 1706658505-136046 X-HE-Meta: U2FsdGVkX1/VSVU8YdfjwFHHmwPIfRim/NlUic+QYWskngEqr+s/pVrQO8VBPPEVyBedm4c+YkraPvPGWEctF2+nwpWx9+agOymhTW1OIZ+iJo6fn331zni1szjWUwHTw36rZ5cMOsz22YmXMH+sj02oyOICJjUBBrcvpCNlwsLsr4UVXX/y5oriHqXNTHzwbNXHRuksfsvBRI4BtlVg5uWCItBgq4bcJWIvppsk56aGMlX/R+F6rV1LLW8NyBxw+Y2tcXvmALon4qjYLvddupX7ym+eXZf8wEs0oKbX+FbulmgCgx4J2wZFvAAbZwXuUwX79H8N/9l6Vc9zPQsh2qnbbxR2a42Bo4QxPlE6PulOgezBIEn6TbFXBtY27+kLLIMjZ+h8qG4Og9c2JJURQRO/F5XxU7gnZqaUVYp25KZ7zfbMwhPBqL/xSrWqcqn+TlMfEzvb07xmBLFjEBESSAjee6SJWFf9x3Ts08fkpkSvD+QYosJq8uZecipCCsF5v8t7DdsT0X+uUW9d86i8jSmAM4T4XTlJpx/ryr5XLGSSjlFXuSrJt+/zsXeFZuFMCwarPCJhFlgJgpxEE6TOw2seLn2BJAAUvAxGScWkc7VJi3ZSKGJ4tl8xwZwqVi8s29zUnjR73zFpYF3fImMpuWNwbArjmzYWVOmWHgduO7pqPCU8t4bwO2SYRWNdFEuKt/GjVqESqbQWLrpBD9qaBhJ9Jvrr46quol3IQKwxqe1K4XYpzp6aDoIrninX37UMAKy0idWLsiUWFPMJpBadVi6XbEg2lDf9c7RwquhlCD3OMODk6YdluVhLOTii20zj6bKsKTjr/xE3LAvfKJmHoz2eOwwQ0yEXfy6FlAndKS3E5iG5t3vRGY2hjhZTMeM0gNDNZDq3YKxZ3YWMrVTQ/k6xf3lP6OQN1g+Ouo0oyVEoM2uyvFwOva/IdNTZaLQpCkBwfXc2euxjTstZxgx 0sU+RKTH qhdhbNH6YJK1cjwW7ejAOgs497Ya2jF0v3XOgHZG/ZluioAiu9svo59De2sxQTSRQkdKSngzsbPPqhakwpL7cXEwBzrsH9N6GWLrHdLbLTodDT9yBZi8jsl3fpbqyff6UQ0PHQUgMwjy9mzEi2b8NtuNgTuFUNSLId6yLpUcTOhs3ApRFicOYa919fk1vH2FqzG6DRLZQ6xjZ+QBO5xqoyvKq5HSpCqoWeGgWEQk4esDKNyDvi5Z2ZYO1N6OAxV3oQm+QS3k7AGctSpk8Fzl883biYRYUp5vOq3p0w1Xlznghf56S8E7H+HT5oQc9HJlXnZ3iRs278z95gkjz64lbElfcOWDv5bkxiep1qEJeJz+bTvuqgvpjGjWcsKTaHyJ2wlG+IyoUVB6JiCrM+iqwZjU0UwLwBQdUuE7qld+YsATYKnkmd0GkgtTBrw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000006, 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, 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 >