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 4C87AC46CA0 for ; Tue, 28 Nov 2023 16:54:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AD5346B02FF; Tue, 28 Nov 2023 11:54:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A85A46B030D; Tue, 28 Nov 2023 11:54:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 973E96B030E; Tue, 28 Nov 2023 11:54:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 884A56B02FF for ; Tue, 28 Nov 2023 11:54:10 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 34F8A802B2 for ; Tue, 28 Nov 2023 16:54:10 +0000 (UTC) X-FDA: 81507960660.29.92011F3 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) by imf12.hostedemail.com (Postfix) with ESMTP id 3EC6040003 for ; Tue, 28 Nov 2023 16:54:08 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BxKAqNKn; spf=pass (imf12.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.51 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701190448; 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=r85ydUJh41VHrUAuuHTOjnQ7J8TNkgJ1y7qjmCMSTu8=; b=zBjiSGMfG9g5aXQeOqjLhidal2xbO29CmwU8uF4FjSvt6dZk3GKiGAry2FI5PFvMXtGUOt 0CkhiOWIz4s0/SZgEgtt7XdSkv09mbj2N9YTiqeFWCxA4YBSw/UJvqA7XuzBCV18MhYvw+ MnDU5FSkICSN2ac+0Ob1U93AlHe5G8U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701190448; a=rsa-sha256; cv=none; b=sh6e1gXQviPs7IC4XGHUzDimnZXyJQP/47Ws0bewsifoYewgfBaLk2laJofbRWpIGt1mIE dxMsRngmR01GUOV9CqwG43j3gI/ogyPIqBwJif9S+CH7DhbtOXS+H6InfrjLrVPprkkXwt rKWgr/wMXUL3+HWEDeQ8pROiANhEskY= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=BxKAqNKn; spf=pass (imf12.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.166.51 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-7b3905b1b86so120099239f.3 for ; Tue, 28 Nov 2023 08:54:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701190447; x=1701795247; 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=r85ydUJh41VHrUAuuHTOjnQ7J8TNkgJ1y7qjmCMSTu8=; b=BxKAqNKny93NMzrXyE306i1wXMMCVTrPS2Ripo+1m2n8KZDHhLvbrijxjO/KnqXB9H WBwQ5a7eCctjDxyrpHKdTypIDjDDxxg6+JbzmG/0jAC8r7/jgbfwyiLl0OfuxIsiSGBi tBD5KoDgwMzNEEhUACDAWMQH97zRIrA2TikoY2I0wuY7+aTwUZveQM/lbOqCl1lY4TY2 78NjPbuCZgjeSM60PM6kkcdZveQ1eij2MZy5QHVzWxjYp38n2PnzEflc4Q4FVykuvV0k Ru2CjW4Y/8mu6Hw36UE/G/gLVtH/H1TVQMYkWTD8pNzTuEOWDUs2ZOFwdBDc2RZ4b7VJ +CMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701190447; x=1701795247; 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=r85ydUJh41VHrUAuuHTOjnQ7J8TNkgJ1y7qjmCMSTu8=; b=mWBPla5X/pdwdO3cf9GAxdQe+m4UzOhorZUhthR54xEBGd2TMkzgnlNjh1JPGPBaXE DIQaKrbHRWCgOD+ZLjNLNbHtQsy0y30ETJ+z+4iTxSxdprddb8zBV7tVNsqbaCCtwkIz ZPucgaFa4M9kQjEUS/R8iBeT6qDIdCe9OpwNMsasByu0Yp8H3dNYb+bvm4rwBN0aQ6CK lbFl1zdTD+kg0cTH2bgWYv5tZ6zhiuUORx2K7tYmDfQvcEbk02Q31rqk/VgSraZdDQji y92hy+dci5TzTQGIjfakguRuiNmH8QEKEamhVN7EQPTwWdnxFTYGuuLLRimVysdOLW5O ailA== X-Gm-Message-State: AOJu0YyP/Ob/H5sE9AhziOxyOcWFNA48iqMG+LRzJD4QTxUhgPVSJSJT ewF/9b0SYGcTea9wdeiDoYjLOkfbilTWe3Co+HY= X-Google-Smtp-Source: AGHT+IFb7aDwTf03bZeLB0LqchAfMqNlPpSgWV8SqzBEtOOj8il9iQK8ry85o7b804gzWK+PQJN1JfAhCluvV7Dli6w= X-Received: by 2002:a6b:3fc3:0:b0:79f:96db:f33d with SMTP id m186-20020a6b3fc3000000b0079f96dbf33dmr12580697ioa.9.1701190447244; Tue, 28 Nov 2023 08:54:07 -0800 (PST) MIME-Version: 1.0 References: <20231127193703.1980089-1-nphamcs@gmail.com> <20231127193703.1980089-3-nphamcs@gmail.com> In-Reply-To: From: Nhat Pham Date: Tue, 28 Nov 2023 08:53:56 -0800 Message-ID: Subject: Re: [PATCH v6 2/6] memcontrol: allows mem_cgroup_iter() to check for onlineness To: Michal Hocko Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, cerasuolodomenico@gmail.com, yosryahmed@google.com, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com, roman.gushchin@linux.dev, shakeelb@google.com, muchun.song@linux.dev, chrisl@kernel.org, linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, shuah@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 3EC6040003 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: bdmr59pf1xfauoc3gjfxpjhggu1n7an1 X-HE-Tag: 1701190448-764003 X-HE-Meta: U2FsdGVkX1975jW4AG4673aWP+uyNEoCYUPFP46BYyS9oCfPEkpGWqnAOqW+2EnrnmBqlGUxxiBzjpcHzysr8gMhjonM+a+W/uvFQCczQyULFwq5kcspru7CxeExQH/EnZxWqcqTLgWpQzQTGO87jb5HKMOLJlNCHLWdUJPBq0jCV5S4x7hLD4PGpLNP5vqVy0yZwPzj7xx0ll0NcPgc/k4mBwWfVZJO4y3N28PcwMbEqowdWO86luEWROZRY+h3KPYlIQmH8uX7fE4/ge+0x4YNW/rUTEqgi0y5oB/3hrUvuqLaRqCkD06b6gPetwA1vn71ogXISqqH6KauPHoJm7XRoWh2VwEdD5ht+ixdB+A/jw5SP//l2qoFHzAbfRUl54kJ4JHpCvIzQUpl+CLzZJ/Seks2H+DOs7ERs7IxeRVBDhvyeI7gI+pqVDDtMgrkvoJfqvNh4sPRZNzQvT3l8/jSSO8KGQmbRi/IJtJ2EoDi0TcsY9p1sGvQiZGuOpkcKzgdMexClUp/BB2O08nENaJwK7e/wJtaLnfg6xLlw6NwwFamxJ9PzhFSSTje/KsDsRPFwjBDyJ6Ng+hdrZl2FqjZfdoihEgHHSbaDT3hUq3Lb2Qv8J76TO0/a+3wmjITa4cOrDn3uaZHrOABJnUtB7mWi2UUZLQHqOgtqyBChxCjBu9JGF3AEl/0mDETs7q/s6c0sswrvTlOTqwPhYKBiglZFgz66MKbW5mP15Va1yXc2y86ToyXsp59mEL7IL8P/w0hKtSVuOiwQrzA2ASlEBFjjDl44CAHKt5j3LWwd96PKUmgfwAR3g2CT71jHinrKTe6AIFHet/CRJNZtJp8Id94Sp1b0HkRPM43vqHGijb0VKFenwBaKazHIbR2E/d8WcQBhDlRDJWq+Q0TTfmmYXYROf3Ort9sexAFb6lyi/6X1wiCOht19BFI6VFhVXXKl963ZAYHXjhpRGHnzxC b56QRi2d YAnZxrMzQYIH081qLczaJmNijzFsvbCoMHw1E3teucAknPqe7egYarj+mnlQTN9aD9KuUpgPndo7UgvwwxR/UIEnlSJFELPXIPvazE1jR5jjgsrqzfIWMlk1AFmuxGE4JYbVwzQFIyEK5Of64tMDxKYAtiC04rBsJb1ee0Adjr5hSMoCGk+rACCh2G3PeeEeHtFfS3aLy7Ar5c3BTkM4gEAXENiqqVcI7PaoY43fDNR2y0z5KGri+Qv91bOZg4oKUzRAlA65nrvM64TuyF10MjDfSaBSh0b6/lTjFDi9cEIrt2PLsiK1NURkt8u2zwt1pQmQENQZOwZCcm7WQ2l8byGwrSUd+z77TJZ4HdcwWkh7a/VzJpn+sctqTj5CDKiGjc+XgszseNE2J/MTht4Y38MXzY1/ofBvcN8iCwz7qAHQWz4WlxQ9OQOUR8K8gpZKYJLmcnDWNXcttVZc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.007401, 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, Nov 28, 2023 at 1:38=E2=80=AFAM Michal Hocko wrot= e: > > On Mon 27-11-23 11:36:59, Nhat Pham wrote: > > The new zswap writeback scheme requires an online-only memcg hierarchy > > traversal. Add a new parameter to mem_cgroup_iter() to check for > > onlineness before returning. > > Why is this needed? For context, in patch 3 of this series, Domenico and I are adding cgroup-aware LRU to zswap, so that we can perform workload-specific zswap writeback. When the reclaim happens due to the global zswap limit being hit, a cgroup is selected by the mem_cgroup_iter(), and the last one selected is saved in the zswap pool (so that the iteration can follow from there next time the limit is hit). However, one problem with this scheme is we will be pinning the reference to that saved memcg until the next global reclaim attempt, which could prevent it from being killed for quite some time after it has been offlined. Johannes, Yosry, and I discussed a couple of approaches for a while, and decided to add a callback that would release the reference held by the zswap pool when the memcg is offlined, and the zswap pool will obtain the reference to the next online memcg in the traversal (or at least one that has not had the zswap-memcg-release-callback run on it yet). > -- > Michal Hocko > SUSE Labs