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 85397C2BD09 for ; Mon, 1 Jul 2024 13:42:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0AED96B0083; Mon, 1 Jul 2024 09:42:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 05F2F6B0088; Mon, 1 Jul 2024 09:42:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E41316B0089; Mon, 1 Jul 2024 09:42:57 -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 C74C46B0083 for ; Mon, 1 Jul 2024 09:42:57 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7CE7B121A17 for ; Mon, 1 Jul 2024 13:42:57 +0000 (UTC) X-FDA: 82291299594.11.C0DBD7A Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) by imf28.hostedemail.com (Postfix) with ESMTP id 9E105C0017 for ; Mon, 1 Jul 2024 13:42:55 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WlkFLd5J; spf=pass (imf28.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.48 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719841364; a=rsa-sha256; cv=none; b=OnjMf1JGwA/dH6oOkKXSFHcwymjjxciY/YiTRFS/OcIFNl4oH5x3iy+ZmaGZN6+sW73ILH vhEsAhiOD6VropSRKPpu7vBGgDGYhjOoSJLOTgkEpTIY3/RYOahClMJKAtDWmdWftBj0He n56pu6EQ/3GRW3Pgg5M6VDLNp6qZaiY= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WlkFLd5J; spf=pass (imf28.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.48 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719841364; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Y6+ROQuG9R9V4/iqWZBWFHNOUOamNJ5L/2g9UTxcB7A=; b=oTgLczAQZBPMXuSfzHUnn2PrzeXz4QwDAmSHDWMaEX3oin9DMdN8XVlWTIFfkcRpZatWaR tI9IgiBEMqQK9/mnc3LGSuukh+mP0nvYwVPPMfCn67QFU6apceznF22pIM/8sAZzpWDPG0 u9fNC4MwNqBT20MGDrktk+rhmpYTLSs= Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-a724b4f1218so384665366b.2 for ; Mon, 01 Jul 2024 06:42:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1719841374; x=1720446174; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Y6+ROQuG9R9V4/iqWZBWFHNOUOamNJ5L/2g9UTxcB7A=; b=WlkFLd5J2CfQZPRtKL+S1ni4ehQyavHiDOEiTMkZON73j/n44/znihUZQ01e83YWo6 OZOre3ai8bGoruHI9VQ1KhVoj7aVOG+/w+fcz0mWEM91dHwW+AXUCYCtglPgBQI3i2cw p2ndBgNCAsC483pv3vfqRrpetPOEvWHZGXOKktDuGD0zpjJwXbiEp8QG5O1vyEd6GEXc QQCks8t+JZOoR80N4udqsb6a5DcYupc2pAReLsbYeq/OFl9rG8eCa0NJ5l8UJ+j6Db81 BEAZHdkXZlNCMLk8JJtSe9OI6pf+ocS3MizVRF1+2NbIt7uuLw6ay3Xd2dKqfGoH2bsQ f8qQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719841374; x=1720446174; h=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=Y6+ROQuG9R9V4/iqWZBWFHNOUOamNJ5L/2g9UTxcB7A=; b=Ab4DkaTCBD4+GrGaHHxsFh/jMBW5maCiq5s7N/0wYK5RpXxOawRWol0j/7qKiHyAhz 6kWxu6vvzQfZ5IA1MK+CprncppGK1Fw+VvqslqXc9im6943nc1VWyv5jfYI1PqeObBQJ Vzr65dBkskll8f23YHijXmAsvqJJBuN/YH2i4ZmNSmaSG/Frh12Z514ziUZrfae+05Oj PqykO5f9EcN1Nfq5+zFVlIZnjqtOL68yxYdDuc7OVUasmnhP6a1+4TzzSK80nQe9YuXG MXC9lOWPsRmAjPe9QuKJtOsXHM6TnNmjqBtHIVw5nGtt3w9gUYTHHC7H90t8GTcCdKGM wskw== X-Forwarded-Encrypted: i=1; AJvYcCWcOLBruDGSnvSjvSOwCRj3yqkBGARK5jObt6RO/cMU2OiQruSgVRgmmxhDzrLhNUZ7avHbhD/dYvvrOct7mG1PyTc= X-Gm-Message-State: AOJu0Ywhy8Z7QydYpDTtNypYh0QIR5Ud+4A3F0483Bh7JXlaVh0DJ7o5 k+lyxqkq4HEwc7YuNrI5FiUpnn7DatqeOsvqbSWvSvZoTTL4EBKeAowCrKkEQeKSS38tpcWMB0W BV2I4i3DckCcHPPpQZIg8B0KwQHKUfW9wq1b5 X-Google-Smtp-Source: AGHT+IFV4dTRI3P8iNIhdPexKZlB2wwYXOVVqOfVMChmuGqyN6r7izGH9FX3cKQeHPJ+zswbhWGGkzb1Wqq4fa4HaGw= X-Received: by 2002:a17:906:b756:b0:a72:8631:2e01 with SMTP id a640c23a62f3a-a7514498a41mr332947666b.64.1719841373635; Mon, 01 Jul 2024 06:42:53 -0700 (PDT) MIME-Version: 1.0 References: <20240628031138.429622-1-alexs@kernel.org> <20240628031138.429622-2-alexs@kernel.org> <4418c5c6-60f3-408f-a4ea-8d8ba1cc8afd@gmail.com> In-Reply-To: <4418c5c6-60f3-408f-a4ea-8d8ba1cc8afd@gmail.com> From: Yosry Ahmed Date: Mon, 1 Jul 2024 06:42:17 -0700 Message-ID: Subject: Re: [PATCH 01/20] mm/zsmalloc: add zpdesc memory descriptor for zswap.zpool To: Alex Shi Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>, alexs@kernel.org, Vitaly Wool , Miaohe Lin , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, minchan@kernel.org, willy@infradead.org, senozhatsky@chromium.org, david@redhat.com Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: mo9hqhbq8ztjyr5r6t6k1dwrtdbkke7z X-Rspamd-Queue-Id: 9E105C0017 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1719841375-474938 X-HE-Meta: U2FsdGVkX18gj9DLGIaYJw7kNuZTYqQ/j4YirsRUwDxlKPJds7z6tyG7XW9ZWkzUBw01Z/OJDfkljyePxP6yPkpZ0+jdABC+/6feeVeXIVngpdjJpeufjCTnhN/gX+B5JnMWYmof7aRGSc1PRH2bELPt0Iom231WN30rMoJJx4CDhK7mTv6g+Ip5NTn10hGWoXi8+yc1PUDDgOskSX/9dOMzyn+Rw4ZaBA1G2yaR4lCcuZDzZNvU6216tFlPH4N1YInlZDOSOGue3iquwvXC8EyaxIcEdERJIl57rvl6kAgZy6JwkNipiPDTDjkZHVEIrdsg4dYsrcNBgHXCZbMieuuKb9guMXhDPRkFN99nvQKMOSYtoPDeSk5gWY3J4Z5WCJJFN8qUCzIgWbTNgsYskL10U8idkuTMFib45ywhHPhsypo300VI5cIVAuLwV1aqxoklWku9jTLJSqQhJ4QkI9TyWjzGRaaCzZTImFaxK/X7mIKJ4dUYAouE5GFby5zSDyg3bmUX852gfnN/8WbAoVzMaAMusSAtbk3OKwmzW5huCUNyKYP+59fSWBhp6D9CTv9Oy3+UiqX3OfrbQpAp8KSceUp0gY/klJElEB/JKioxJitovrAa+Dz1D1UerMBE7wy/ulwT1Oo4OC6LDfeLV6vJE2jMYIaekKt/YJXC2Ek2cBnA3HYDUDOFdnoiw8QrZo3GYTZQtccrsnQewhb6gKKB/Ya33yv1+Kzo73q3mmi9kD+J+kUpFo4jLoUYsmlqmtB2ki8lGIg1mRR8Dk7qHseC8WnudhmAOBk9Y8bGCQGsFeqy+roSlNXnH31lTsqnLFHjc6QWZ/UXTWLcRI+oelvqFM3LaPR6q0yOua10WqC9ruZKmCCyKAGdhltfv3ITP765rU302jzKq+HhCWqRfO1n67G50h4E29AJ4areBqyMDMKyA+FIa48HCCaNd8RPRIe2E9wt3zEOf8qGDjK JkMOJ0Ul Ro0s9mA6+0nzznExEhLgtrwOgXzrZFe40AMoZ23slJg4N49TOe/QJFMXX3UTvAOURjSft0Q84PlxbpQoJxWkJGaHcOTK4xdaz6XZOuqpksEWPJrkYev/AvWnw1dVgJPm15U4RpS5JoH4QejpBxHbLH6jbMf/e7g3bgrD5M75XrLHV3CJszon1tkRzGWPDuVh+pbWteCWyKPAmu5DksDPm41xfaILTS4gCNEOTcwSpkTWwpspLIoKGnSgE2tN5Q51XAFhrdZybKnPYEexgudyg6+A4NcQqnwfIbkCyaZrpKkBL/qd1avF5pyK0W+NBcodl1mz4 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: [..] > >> + union { > >> + /* Next zpdescs in a zspage in zsmalloc zpool */ > >> + struct zpdesc *next; > >> + /* For huge zspage in zsmalloc zpool */ > >> + unsigned long handle; > >> + }; > >> + struct zspage *zspage; > > > > There was a discussion with Yosry on including memcg_data on zpdesc > > even if it's not used at the moment. > > > > Maybe you can look at: > > https://lore.kernel.org/linux-mm/CAB=+i9Quz9iP2-Lq=oQfKVVnzPDtOaKMm=hUPbnRg5hRxH+qaA@mail.gmail.com/ > > Thanks for notice. > The memcg_data isn't used for zpdesc. And I have a bit confusion since Yosry said: "I think to drop memcg_data we need to enlighten the code that ...". So we actually don't need to have this unused member, is this right, Yosry? I think we need to have it, at least for now. When the pages are freed, put_page() -> folio_put() -> __folio_put() will call mem_cgroup_uncharge(). The latter will call folio_memcg() (which reads folio->memcg_data) to figure out if uncharging needs to be done. There are also other similar code paths that will check folio->memcg_data. It is currently expected to be present for all folios. So until we have custom code paths per-folio type for allocation/freeing/etc, we need to keep folio->memcg_data present and properly initialized.