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 2EAE2C531DC for ; Fri, 16 Aug 2024 16:15:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9F3D46B036A; Fri, 16 Aug 2024 12:15:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9A3DF6B036B; Fri, 16 Aug 2024 12:15:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 86C5A8D007E; Fri, 16 Aug 2024 12:15:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 6AC596B036A for ; Fri, 16 Aug 2024 12:15:17 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id E169112012B for ; Fri, 16 Aug 2024 16:15:16 +0000 (UTC) X-FDA: 82458608232.04.0BF27AC Received: from mail-yw1-f177.google.com (mail-yw1-f177.google.com [209.85.128.177]) by imf22.hostedemail.com (Postfix) with ESMTP id BC8FDC0022 for ; Fri, 16 Aug 2024 16:15:14 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=EGa4eoXM; spf=pass (imf22.hostedemail.com: domain of kinseyho@google.com designates 209.85.128.177 as permitted sender) smtp.mailfrom=kinseyho@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=1723824901; 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=iGB75WNp2k3B7jPw4mKOAIQo0L1IpYb0wqaeqHh4s6w=; b=UZ1Z4lpSigwY6Ef1/+uWABxyxoxZXXgWYHynyvRVi3e3lKUD/N5kcs8B6g4T9HIfog7GBo 0zIdMsn+OaxkxK+H7QEuZ0glADElF06xqSp07awYtAiYINkUgOl60EZsdPyTCrvMnYO37+ nmGgAF+mKLWChjO0f99CtbXo6O6WHQE= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=EGa4eoXM; spf=pass (imf22.hostedemail.com: domain of kinseyho@google.com designates 209.85.128.177 as permitted sender) smtp.mailfrom=kinseyho@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723824901; a=rsa-sha256; cv=none; b=ZdMlUEJv6yQda8jiJTK3lVc7CYJnFhWZR43Pswc0Dw3DQnknFYpJHYV19epawodwPANEJj w7C92KtVsPLzzOuJ4QEeKEcspOOE7v1zWxVW4C0eg8l2zlzuGvZQA+6CN8KjrnUVGge2+s CWLqzijuG8kO1KSrbUm/XEIiztl/AvA= Received: by mail-yw1-f177.google.com with SMTP id 00721157ae682-690ad83d4d7so21692937b3.3 for ; Fri, 16 Aug 2024 09:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1723824914; x=1724429714; 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=iGB75WNp2k3B7jPw4mKOAIQo0L1IpYb0wqaeqHh4s6w=; b=EGa4eoXMcTzdtXOwbrOqZp7cfRkQFIZwBpdlQk5ZaCNQDCkdta2rBXgJNrIgnv4+mL u/wDNhCApbN/mu42buOFYfFhMjmX5rea1Cvy74rOted3UreftrBQtbezlK2Tl/gT6URv JM1e7z25WYBxagd/+TbX0xIqkXrETYogkEB47mQ9QXDH6xgprvCjjKyK3XWxMT3HMewE FjvTZeo9/8joVZBf5/0p/TVnhfccw9+2ib+nlPG3O2uevENznI0E3QspptKCAkjENtA+ WVPm1kXFBZWdufDxB1nOHSTP5nJ0onYRjXpRh45HtPTrZVNAKnmwNG8unm5dLR6u45BR PFMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723824914; x=1724429714; 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=iGB75WNp2k3B7jPw4mKOAIQo0L1IpYb0wqaeqHh4s6w=; b=sCtW75ox/XG4UAQxIVM6WdJzXsbyMd/YY5WvGWZMze20d6hVVFYgFyovdnYeNy4BjL qEnZ4m+3Cpdni+AiAy8009mi1phIfBSZOIFYuur2FHmuPvtpLN822z1fijp7r3wffV1N 4j/KHixGl3R0HWyeqLyXlWIiLa+rN509LfEHZrglUwPsaOG/ulxDsBOAgcNuccd4LdBm tRyhOkNYVa5rIm5vhEvHyV6Ryjn+Omvn38/dJF9ONw9G1XOcBQksnHebhn2xWMLBoFVL oSgTyYpRmSU5x9IvAZ85nXTNwKTOXe4dbSVUs2yyFrJ3JUHX1/jr7FspFmthMhppVDjD I7iw== X-Forwarded-Encrypted: i=1; AJvYcCWbfI16v01tKcQpElQygDBDoWYFrMlZPja4fqynwNi/gtaJP9JJCLeQ6i08+y7rikmWLGVxLcK3R5g4a/h9Cv7wcSc= X-Gm-Message-State: AOJu0YybOZ8BU1Cgh4L6vIisOne1HhOwRpA3bLN825RHRc75o25yKueY mbsNUidajAViENUR/jHZuWB4ytAYuNWiGF2/uLdOionPHUdO8VLrlKI0dkNL7w4aCWPMqBCNq6k IGRnq6D1sRFaf6NZhc7ht96NiOXMJSTGM40mo X-Google-Smtp-Source: AGHT+IGN9bKv/c0GyHlyxEeZPUueQdw36mZHlzwKYbGCbDIVXo6Qmf8fAlROL3QiPP9HsyO4r754ovZtBdYN34UZpiU= X-Received: by 2002:a05:690c:c8c:b0:6b0:ea82:9760 with SMTP id 00721157ae682-6b1b996ce64mr44413447b3.27.1723824913603; Fri, 16 Aug 2024 09:15:13 -0700 (PDT) MIME-Version: 1.0 References: <20240813204716.842811-1-kinseyho@google.com> <20240813204716.842811-3-kinseyho@google.com> In-Reply-To: From: Kinsey Ho Date: Fri, 16 Aug 2024 12:15:01 -0400 Message-ID: Subject: Re: [PATCH mm-unstable v2 2/5] mm: don't hold css->refcnt during traversal To: =?UTF-8?Q?Michal_Koutn=C3=BD?= Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, Yosry Ahmed , Roman Gushchin , Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , Tejun Heo , Zefan Li Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: c6okawyekaqf5ip8em3s5qurpbx7mxe6 X-Rspamd-Queue-Id: BC8FDC0022 X-Rspamd-Server: rspam11 X-HE-Tag: 1723824914-697137 X-HE-Meta: U2FsdGVkX1+MpHKjJRitk9Q/VzFt6KVSQZM0iV1mPiPpzPIjws/lSTyQQyRHimsZVMcEngHX7RSBdv6abdLkaTWkvVUaNHUbcwnOwwOOB10DJjWoNffXkYHPt784TcqExVgNCjsmqiK6NOHkwfNRsrWeUFPRI9Kzi81eooOakkhD8DXTp7GhUPEgCTJWS6DCVXWE8i+J3GGJxhlBZeEP73Ts5TV1pOpLnxRXEhctifN0XxjsszTFlNYLKym7tjRV6m7ZAajB3INKsrQwR4XQw3cKDQ73pKd3newD4qFPEDju7/lmwSli3vokpQbK8n+GUgKuPjJLzekklv+6AncKzkczQYxHF4dqTcAiTkvBRgVU1HZ0saQG03BFq8u8ErOfR8gHl8/08OjE5eN0zBlZhmvyq1eWg0y23q/8+6FsfAdkNs3GkaIq+rX/f3dNP2jaioN1wCxx108MJWzDgjXJwEs/hjaFVz7bmA+FL+TwjS4WlRymDg4EJCchnhNrvoGGSElBa8m/L6wcbkQXrJdLG50Agxtgeg5jObjlY/drXsrpRgwtypDf+jh/H6IEXeK1oYWxw+r3IgJggB9fv8DLwaWsSXyhVKQ0XrI3cVjvdUUxIrWBzNJYWCVfojwaGf8lWAjNhMGSQzu3FQFkl/o4vmIi/ik2+nRq1X/m8F9E7tX+DlogSAHzCJvQcLd7jys7aq6Ry3va7q1ZjZcWlc75JVAwjm9BrcO+4Lq+fvXjWsaLeZSTqXilPaRE1vhbb7zNfUKKweNSTSiEnT1FJlcurroYI92p4kjDd7HoDopaLNAwxrf8YVQdsqOqd/ysILnJj48DTrg5E6CpCp9m86DRA01TmS3wgnOE3J5to9b6pU8xnQ58cGE4hzrP712OLNPOWDA7jhIwCIKBess9qK5Y22ttlxowqzDycESnZPcD5hl5P0L9eujY54MyWKKwDJOIx8iSvBhrA0Y/6s4JY03 3TjZUhMh XhOTHa/AwPhkEbbVQYqqrjyLZo4PAegH5H/mxp2nD6mhdX74sblA/1d2yWovH2NNv4uGzuRw+87y1hANsodwWBdsWrgzASzpJ9XQ+NNDwQTeeUm4Z9HGMB7jGc0gvgIAKWXMT7wnwykCsqDYLUzuf1nDyrsLCfPPj9R/4agOeFwTDn8VrpdyvPgHZjMcegkaJQUJvpl5SY3/n5EKDKewF9EVSKLIPsWuPCh+5KzIqp4z60y6E6KRgGMzCjjDp9YZzWxbz 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: Hi Michal, Thank you for reviewing this patchset! On Wed, Aug 14, 2024 at 5:00=E2=80=AFAM Michal Koutn=C3=BD wrote: > > On Tue, Aug 13, 2024 at 08:47:12PM GMT, Kinsey Ho w= rote: > > To obtain the pointer to the next memcg position, mem_cgroup_iter() > > currently holds css->refcnt during memcg traversal only to put > > css->refcnt at the end of the routine. This isn't necessary as an > > rcu_read_lock is already held throughout the function. The use of > > the RCU read lock with css_next_descendant_pre() guarantees that > > sibling linkage is safe without holding a ref on the passed-in @css. > > > > Remove css->refcnt usage during traversal by leveraging RCU. > > > > Signed-off-by: Kinsey Ho > > --- > > include/linux/memcontrol.h | 2 +- > > mm/memcontrol.c | 18 +----------------- > > 2 files changed, 2 insertions(+), 18 deletions(-) > > > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > > index 90ecd2dbca06..1aaed2f1f6ae 100644 > > --- a/include/linux/memcontrol.h > > +++ b/include/linux/memcontrol.h > > @@ -75,7 +75,7 @@ struct lruvec_stats_percpu; > > struct lruvec_stats; > > > > struct mem_cgroup_reclaim_iter { > > - struct mem_cgroup *position; > > + struct mem_cgroup __rcu *position; > > I'm not sure about this annotation. > This pointer could be modified concurrently with RCU read sections with > the cmpxchg which would assume that's equivalent with > rcu_assign_pointer(). (Which it might be but it's not idiomatic, so it > causes some head wrapping.) > Isn't this situation covered with a regular pointer and > READ_ONCE()+cmpxchg? Yes, that's a good point =E2=80=93 this situation is covered with a regular pointer and READ_ONCE() + cmpxchg(). I'll make the change to remove the __rcu tag and replace rcu_dereference() with READ_ONCE() and send it out in v3. (This also rids of the sparse errors seen in v1) Thanks for pointing this out. Best, Kinsey