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 17FB8C27C6E for ; Thu, 13 Jun 2024 02:36:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A22C96B00B3; Wed, 12 Jun 2024 22:36:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9ABCD6B00B4; Wed, 12 Jun 2024 22:36:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7FECA6B00B5; Wed, 12 Jun 2024 22:36:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5B3E56B00B3 for ; Wed, 12 Jun 2024 22:36:10 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1B3FFA397D for ; Thu, 13 Jun 2024 02:36:10 +0000 (UTC) X-FDA: 82224300900.26.AF3D74A Received: from mail-yb1-f169.google.com (mail-yb1-f169.google.com [209.85.219.169]) by imf09.hostedemail.com (Postfix) with ESMTP id 575ED14000B for ; Thu, 13 Jun 2024 02:36:08 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X3l9lBZW; spf=pass (imf09.hostedemail.com: domain of flintglass@gmail.com designates 209.85.219.169 as permitted sender) smtp.mailfrom=flintglass@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=1718246168; 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=82RdtfxYrWWcM3I6B6y84KEkzZzezIo37YsjuYxzk9s=; b=JrNHta40xddcpu9jFnUvsYGwRR05nkKCeirSnskKxt/RMYMj9THAhy8O/WZGPmYhfUBoI+ jtrEVkxQIKfYUtnY+dCcAM6xTZ8NTThg4pNvdRlTCxl71EzvWyszCFdX8fEh+uyu6HV63x gtTREnkuuOuu9EFspiCfp5zz7W1/wKA= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X3l9lBZW; spf=pass (imf09.hostedemail.com: domain of flintglass@gmail.com designates 209.85.219.169 as permitted sender) smtp.mailfrom=flintglass@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718246168; a=rsa-sha256; cv=none; b=N1wOyeh3zmuu0JFP9k9Ir3+NT06AceSOaHKF+jVrjc4HjV/R6fhmr5UAdSmROvYPE+nSd/ yyZA01VXlqU6rDuol6PoZ5X+QcM9SIZQs/VFdnojadZUixMvgGPBJFnw/00B+eF+I2DtgM eDJn0qhFLz1y432yv0vHazoM7iSkwDk= Received: by mail-yb1-f169.google.com with SMTP id 3f1490d57ef6-dfde5ae0aaeso630773276.1 for ; Wed, 12 Jun 2024 19:36:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718246167; x=1718850967; 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=82RdtfxYrWWcM3I6B6y84KEkzZzezIo37YsjuYxzk9s=; b=X3l9lBZWDIG33Rw2+k/SeMAVjEvMoEi1/jVZPra/FJKUtsSs5KH94igpYyswAYk4CN Qyo1wcjP9Ms/3Pv4nnFo3yAS02+s6QJIynkpTB6227HCCQCI89On1HHuIJui4M1e7RLi 241P03MNqKsnKH9682kK5liGrgCSbwly5Ok3jpSlZmekeQG5mrUVkxcMzdbGFrSCMlOH nFH/Tp5TMq9Nw0JrrqVTQ98T1N+4WOSX0kDCWlVS3c4VNooJV958JyJzySkEuKo1lzZd pcI6Mjl4Mowe16mYVM3P/xJjbVgQNzH5nmrb5Qbi8oHMV9mbt7mTIlIWVWzmlPUVzQfB Jwug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718246167; x=1718850967; 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=82RdtfxYrWWcM3I6B6y84KEkzZzezIo37YsjuYxzk9s=; b=GuhX2bj1UsdSV144XTVHEgXEtKhojhanLA5FMTQ1HLXn1pKNdBttFRUWOv53m664YU 67DkPJ/7xrf6a5BOvYJKdw5C/F9tyT1IxnvsnAEiZjtc+B7HwYwLrseW/2DkEgFPkXPH jCV7wcBrSRr1Knl/phyTYTjmwzC3VIRmE700Vgo8cfQeLTFGKrT8i7z144YZpqv0JYp0 LMIYtUwk/m744sFG1EfSGJNfmhFEnkahrYc8EWtefzs9c9FGPXa++0W4t9wspXJMOlFt J9OCt+J9KQpSEjBmAnLDLldl9P0UeVs4uWFvzDKcdrfUooNkQaw/JduH/KluCcNhTZTp lzIA== X-Forwarded-Encrypted: i=1; AJvYcCUzBqNSvU5BlRQqhYtSldhTK5gqyDw8MdaC4HAW+GdAlF26upygL63zwdZCWAcBdzQ7Sk6dOXFC9j9B4CzVysz753I= X-Gm-Message-State: AOJu0YwWLhR418W7RYE4X9HB54HVxQvdkWe6t+QCLPoI2jVY5Inhx2G5 gwyvCGtuBX2cyhyEMudQ1W3hb6XWZYGqggTqMdu2Cn66P/lUIqn3AdU9s/2nQagBE7hVSwqkl+q VM9GFC6ioAVNSQtXtYnhMiKleXLE= X-Google-Smtp-Source: AGHT+IHPPB9CDIIXDtRgehLklf6KAJTHBjBvn0hsTFgqzGe0BNYXVRUrc8XbhAAjaZMvR2fQ96wGc3rbtTkWa0pwhwU= X-Received: by 2002:a25:d688:0:b0:dfa:5a37:41d0 with SMTP id 3f1490d57ef6-dfe65e7ec75mr3578791276.7.1718246167344; Wed, 12 Jun 2024 19:36:07 -0700 (PDT) MIME-Version: 1.0 References: <20240608155316.451600-1-flintglass@gmail.com> <20240608155316.451600-2-flintglass@gmail.com> In-Reply-To: From: Takero Funaki Date: Thu, 13 Jun 2024 11:35:56 +0900 Message-ID: Subject: Re: [PATCH v1 1/3] mm: zswap: fix global shrinker memcg iteration To: Yosry Ahmed Cc: Nhat Pham , Johannes Weiner , Chengming Zhou , Jonathan Corbet , Andrew Morton , Domenico Cerasuolo , linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Shakeel Butt Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 575ED14000B X-Stat-Signature: 5d8qbgek44bgdcqw5yxtk4txzfxhk15q X-HE-Tag: 1718246168-92436 X-HE-Meta: U2FsdGVkX1/eSfvmaWITY8kUVxmqrohB4ETarMb5qJEL2p2+eYVmHPe5j6++A2IOMQfaoOejUvTizKOWmrrpM1VWL45CRPim2tZotVXOAqflXlBwhmBJJ9NkNNsx7L53pEoThz290KcWcAcScJZAwhqhowN0xi0gsAGoc3Ut/GtxthWoNaRtNWuHEVNuTGuEq1Md2dMQxQ4Y2OBmhoXzuR7DsYZ8PTm5uTQ4gWwo1FohZfP7ZiTbVx7yN8d8YHBwgQsHTYSCST7+0ZpqM2Ffqj0z6QLlSdKBT32TVrcBiOFvNYCnZTEZVaiE10j3el2iiZ37dgYGxhyvnl7liJb8Hg6p1DQzn25Vy2XBKgK3+ae+iHU/Jl1DMRDI2+50FtZPXPaYA8jy1L57/7ksVABgQrZpFHf89VTIdwnFPyWOirU147/L1YF0eYvX6oCufWudFlyXqFJg56IWAnItaJO5khvfEIshLAZsTkCd4YVQjMUTm+A0t4Utd+P6mSjgPUljmHMJ8U2rhCF8C16sqpl/jrGqEsRFGDpAyB7xLgzSRgnnG6pk/+zYiDcD0nTjamcLnEwpRg1+1VkpFjsDip3HUbHH+lXc03yazTV8WnijJ9lr4G8pg9hzDpGOn639aS7whxvR8TkUYbQzPlKzxpVf4qeJb41Y0Ox9SuM2BVQG2Vdq/bthtaiZ0LspYA7noqzL16ifj+e3R8pV886icZykbGbnyWMcvhs9HKCB8Z3ux0k3Gp1B3krh4vLU4bwCuEnKhHg4umcf7JlaqLNE038uugN8knOExd25EfG09/ZyuvAUdtfzATeiBjIVhZrJqsJgv4HRmHxGWWvuQK1mlj1VV7tSYrh+5t9usxO7abd69nUEtYN988YsUnNvYnohj4pJzW9nFL2ba2a0w4Kn4XtlfRj318UeFj8bPqC8dR9WhbZE5mBV85L3vo4gVkIZ8RVQTnrH2n6ogGGCXzyKbrC iQ7xgHIo ch8mzQVcUIJLIExlLyIBro1+DJo9KEs4wIfvJX47hYR18OsVZwpuynnNe+sIOaI/n1auoGjJY3v7Y8JRcQXbHDDPu+/f/jkX+bwYxz7PW70AXoc+bT9lNKiyihRF4QT3XD2YlRIxi1tbtuEGNyNDUrns1hN3+Q8Hu9aNzwmyd60+bhMjRc4My+7xLgkhl45YZh7xRnkrAmFkWpE/wK1Ha9MkcxFYXixH1JEHZH/UuTgopFp34MwRL80mrdPsK40fLBRXZDONn+Yb5AxSvZ5+znaOaPdp3ziJarQFmW7FU+Tn3tPWVxleNcuxtVc5obfKwjveh 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: 2024=E5=B9=B46=E6=9C=8813=E6=97=A5(=E6=9C=A8) 11:18 Yosry Ahmed : > > The corrected version of the cleaner should be: > > ```c > > void zswap_memcg_offline_cleanup(struct mem_cgroup *memcg) > > { > > /* lock out zswap shrinker walking memcg tree */ > > spin_lock(&zswap_shrink_lock); > > if (zswap_next_shrink =3D=3D memcg) { > > do { > > zswap_next_shrink =3D mem_cgroup_iter(NULL, > > zswap_next_shrink, NULL); > > spin_unlock(&zswap_shrink_lock); > > spin_lock(&zswap_shrink_lock); > > if (!zswap_next_shrink) > > break; > > } while (!mem_cgroup_online(zswap_next_shrink)); > > } > > spin_unlock(&zswap_shrink_lock); > > } > > ``` > > Is the idea here to avoid moving the iterator to another offline memcg > that zswap_memcg_offline_cleanup() was already called for, to avoid > holding a ref on that memcg until the next run of zswap shrinking? > > If yes, I think it's probably worth doing. But why do we need to > release and reacquire the lock in the loop above? Yes, the existing cleaner might leave the offline, already-cleaned memcg. The reacquiring lock is to not loop inside the critical section. In shrink_worker of v0 patch, the loop was restarted on offline memcg without releasing the lock. Nhat pointed out that we should drop the lock after every mem_cgroup_iter() call. v1 was changed to reacquire once per iteration like the cleaner code above.