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 0D6D8C47DB3 for ; Wed, 31 Jan 2024 11:23:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 621B06B0082; Wed, 31 Jan 2024 06:23:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D19B6B009B; Wed, 31 Jan 2024 06:23:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 499696B009C; Wed, 31 Jan 2024 06:23:20 -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 391A86B0082 for ; Wed, 31 Jan 2024 06:23:20 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 01D7E806CD for ; Wed, 31 Jan 2024 11:23:19 +0000 (UTC) X-FDA: 81739370160.04.9698BBD Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com [209.85.219.175]) by imf01.hostedemail.com (Postfix) with ESMTP id 0055A40009 for ; Wed, 31 Jan 2024 11:23:17 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=bwbqpJJv; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf01.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.175 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1706700198; 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=/9gczpGohn5iLddoKsL7g1bBHEVL9hWJmIo2Zlfb0Ks=; b=HoFzaIWA8oOxabLNOmH4/hf+7T8jRZpTW2II+2hAECvMxdreXIw24B6H5uXKuk0peU1q1x bGqYhpbnrsOqLEQRUd/WLKjq1oCPAnwnhSVIh3V4eCvjrL9u0JH0sILyq0Ekp9PcZVIVwR fV2wx4nJoyFZhcYD7CAMiHL1qP0E0ro= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=bwbqpJJv; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf01.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.175 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706700198; a=rsa-sha256; cv=none; b=d1b1PSsq5FmIfbAc1YRpBSC6WKqb2xyyil7iUtLlvratPfkwzSEvXJeckAysK1w47K4ims aOVK1qw2XR/lAS9eXnymbCVUPiNLd4z6y9SA8bYHcbtBoDTFlkqDb7lRluCejntq4zhBXY br6PM+xqm9wz9s1lrWoi1bvk9sBL7mk= Received: by mail-yb1-f175.google.com with SMTP id 3f1490d57ef6-d9b9adaf291so4530202276.1 for ; Wed, 31 Jan 2024 03:23:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1706700197; x=1707304997; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=/9gczpGohn5iLddoKsL7g1bBHEVL9hWJmIo2Zlfb0Ks=; b=bwbqpJJvKTTDl+rOsvs8y6uf8sUYRNFmq0ROa3QWkM2RCxahsP6gWNUfHoc0+6AIee vg4O6PWdI/denXyZu5FBkpRUlRgSK8jwjVQswayK74QwMjo1JmQL75JqUroImMwTPOz8 0fANTw1g8YNktWqakLm+hUA+n8ELT8Wz95+m1hvg6UaTAtWcz67uN4C0qFuMVolE7RZD e7Y6HqtVKQCCkneDdWsTepmdul3wGEVWxcHhPqd4XLfkgPiUNuAyhzoXOVVSz/mxOTwn f7cbq2v+yxXlgsi9/2fj5yJd7HAdeJBFg9Ua7LjTX6WKs0WUFe74E6TipEZU0RUupQsF /cHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706700197; x=1707304997; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/9gczpGohn5iLddoKsL7g1bBHEVL9hWJmIo2Zlfb0Ks=; b=NIlxL34OjtjjofPXbFERo+pTz9O8tvqlxGo0IU5zSfYVT5w2R6sFM+WKoYnduO8X7x v73wsJgnqJ117KNaEQQJWNuICRRF1P936ikc4mrHI3VdC1Bf8RH4iTbr+KR30PWPm1GZ J0YlWbEiI1uscKYXkqdxapKnmkTSF9hcbkpbUcR2XpSnF9BGouw+7Z/CnH1L2A5CEVdB WczWQZ3233di9Nq+8JmkDGzOo7VYuTWPs4pD4duxKDe0fP47yjRt5X8C0RIxkh3F6rnc k7iM54MEi6k3BS8Zvlz8K992tEYs9WtJfwprS2FcSIX+YZfykp/Le460zwCe1zGebne6 1FkQ== X-Gm-Message-State: AOJu0Yw7g8QmjVyZhZAaAv4CWjPViqZIkE2q9aHvmz98mR/g6Eb9Qr9i H3mpVRY8LcQ8+FMHZFVid3HLLxNcje4ayyb9P3ElIRbFrAcndDDV7W6HDgSECr5hG7FdSZyaQ/7 t X-Google-Smtp-Source: AGHT+IFoEmMZmzk/tLjXo242ICzlnsU+Iz+H2nujddO3b0fekdDXxr652s0wL9lHaH6YE6S03+38WQ== X-Received: by 2002:a25:df8f:0:b0:db9:9134:bb28 with SMTP id w137-20020a25df8f000000b00db99134bb28mr1286024ybg.4.1706700196984; Wed, 31 Jan 2024 03:23:16 -0800 (PST) Received: from localhost (2603-7000-0c01-2716-da5e-d3ff-fee7-26e7.res6.spectrum.com. [2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id w3-20020a05620a0e8300b00783148d1269sm2432128qkm.62.2024.01.31.03.23.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Jan 2024 03:23:16 -0800 (PST) Date: Wed, 31 Jan 2024 06:23:11 -0500 From: Johannes Weiner To: Nhat Pham Cc: Andrew Morton , Yosry Ahmed , Chengming Zhou , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 11/20] mm: zswap: function ordering: pool refcounting Message-ID: <20240131112311.GA1227330@cmpxchg.org> References: <20240130014208.565554-1-hannes@cmpxchg.org> <20240130014208.565554-12-hannes@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: 0055A40009 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: nzci1ey7h4k8tbnqw73e6xytmmyrg3bx X-HE-Tag: 1706700197-318556 X-HE-Meta: U2FsdGVkX1/ELmjwZ1RnC3K/zRM5IAFw1IXlItj+KT6eC6shswTTRBIqsEUO5qIoB17L6vyk3mzheOBUA6dvd5/ceJTGEsbgtH4uvmDl47JBS5RvnIO37QcYZgk+zOg/6RuTh8eyop8m1ryqNoCurG4VE9VpGb7qjciAyrLRMEqyqIPvHUyhtcVQ86kaubUt5l0wfTzr6QCVGAkM+YjHrR86GpK2NJHHmXi503P9kcZbWVEEUagcJd/tqjiRdEcLf0ZIydR7qhopCEsJH65LnoW9zjAKEV2fey5545zCk86DIizE+0YNj7JXoETp8z0T6oFQYF0jO6cKx2uFIrA9lFDFZyE6Y0E2sZ3rPZnVesqnuzRMuPv6eNdeCIO7GRl195ZnNUFWmwncirsHaPeC4vX56CABB6lc1zaMNToiAzsyq9RZP6BfZOOAdpop0VJ1jNQoT+Qs1Xz9zCGd3T/3/aiyvN8ByRa2NiWGNqMXxNXJcVeNC3lnlJkBYH3W0Kygp8nMNq+PZTivEXSKlbqLYp97Xq55dnBjyNEh+bZIy5L5TrQTjR/guUmg2MJZxEAXBen6w2RSaF0aLoEQCYCQuI299Tmt6hNF3Lbq/c+Ql2I9e8gIUes8r4DWlMtCUUUkITriowz8JHSj+nc2VDKF99yuxybEGtBOmiYR4YQQet1yNYn9JH2mhruAINcxnRxEdGGzWA5IVNFpAkGSPvnQGYl0ZLnGbVzDtsVS3hMxMscPsVyjp8HMHKw6RCPj4HK+uqxP91F1phboz1UC9+8tA1WFuTTRR/QCZoKFGkDjyJPqrxAqUOdzo9KVOKCKgXV//h3GDSNN79eLcs+IfSoQQ+hV+hlkR/6Twt7UrqL3Z5m7iLZX+jAsR8Z7JgW+Qk54UjI3yEHNsmAuOKwPawoGZ2SDDMhp1Kxg3Hh9EQT/knMWHvdriH8PePguofdX1dK6tkyoqXqW0fCnuQ7H0dV H9kz42Mr KQuArP6/8ZqjVVc9yoRl18Ug4UYp6GpzShSuHkVXov2haV4/SjvCKU5wDTpb2Lsr953boLytN0IjJr+U6qTqZf7Uky9YG0NqQAB7qaTrAIIuIJtcTlmz+gWMBpBt4uxXPQHoce30eACo+0vQ= 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 Tue, Jan 30, 2024 at 12:13:30PM -0800, Nhat Pham wrote: > On Mon, Jan 29, 2024 at 5:42 PM Johannes Weiner wrote: > > > > Move pool refcounting functions into the pool section. First the > > destroy functions, then the get and put which uses them. > > > > __zswap_pool_empty() has an upward reference to the global > > zswap_pools, to sanity check it's not the currently active pool that's > > being freed. That gets the forward decl for zswap_pool_cuyrrent(). > > nit: zswap_pool_cuyrrent() -> zswap_pool_current() :-) Whoops, my bad. Andrew, would you mind removing that typo inside your copy? > Also, would it make sense to move zswap_pool_current() above > __zswap_pool_empty() to get rid of the forward declaration? I guess > it's now grouped with current_get() etc. - those don't seem to use the > empty check, so maybe they can also go above __zswap_pool_empty()? There is a grouping to these functions: - low-level functions that create and destroy individual struct zswap_pool (create, destroy, get, release, empty, put) - high-level functions that operate on pool collections, i.e. zswap_pools (current, last, find) They were actually already grouped like that, just in the reverse order. The only way to avoid ALL forward decls would be to interleave the layers, but I think the grouping makes sense so I wanted to preserve that. I went with low to high ordering, and forward decl the odd one where a low-level function does one high-level sanity check. Does that make sense?