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 4C0B6C52D7F for ; Wed, 14 Aug 2024 09:00:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D2C136B00A3; Wed, 14 Aug 2024 05:00:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CDB6F6B00A4; Wed, 14 Aug 2024 05:00:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B7CDA6B00A5; Wed, 14 Aug 2024 05:00:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 965CB6B00A3 for ; Wed, 14 Aug 2024 05:00:31 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1878AC0D10 for ; Wed, 14 Aug 2024 09:00:31 +0000 (UTC) X-FDA: 82450255062.27.81DF84E Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by imf27.hostedemail.com (Postfix) with ESMTP id 25DE440028 for ; Wed, 14 Aug 2024 09:00:28 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=TwCKY3YL; spf=pass (imf27.hostedemail.com: domain of mkoutny@suse.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=mkoutny@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723625957; 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=e0VrBpxRv+L1cvAlfJueXS2O7eGCDgmOcojPruWBRGc=; b=YtyAMGIJuXfjo0GjNbR0mvJ1VGcFgrzFM28Tt+s+dbA9DHIDOMxfvHSaIhsSv9JC9LB9q0 KAh905smV39Wg/+q/ZzdzedHICt54jPdo2DKmULBZWSHpH2eWiji4njdTp2MBU/2Ft2b/H spEDDOaV4E6UJd+/Q3QC+FFRu38bLPY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723625957; a=rsa-sha256; cv=none; b=XaeLLwO6qt96eIdubYKPrXjGMrApjjJHWSfVQr5wHOE1pwSphplEdp33OGHB7yaexMfKw+ 5vTuOdms9Ftl279zkZAgewq+YP1zJmP3aWJ0tUJGqlox76OsocpK2A6Vs058XdRFOMKDN6 6PddK2xCYwwVAnj+9xgCXwO4v+FGbs0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=TwCKY3YL; spf=pass (imf27.hostedemail.com: domain of mkoutny@suse.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=mkoutny@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-428e3129851so46636275e9.3 for ; Wed, 14 Aug 2024 02:00:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1723626028; x=1724230828; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=e0VrBpxRv+L1cvAlfJueXS2O7eGCDgmOcojPruWBRGc=; b=TwCKY3YL5GBeCfDhYIDGzEPnb5iw698yzQ7P8zSWjE7XN4LOhDkN3dgEBqUCbJTxdK MOW39Dmq2N0enTRS+ypOizkhRsFxcWvTWLtZypiCL65Q2T1w9RW5vhg8CFxlqLQIwCL8 nJok6XZanIVCpU3WjEiORqQgd8PNzpFc0CX1Gq2mHwBVgj72A2fnhdU/thMgeUWwGx+U QSr7zbz3PsIQZR7ibJSVvdZWk4JMkKQgYJyRKmrmNfanf0hMRtbcuZrTrgmgrz8JfrYX eX7BdZ+hiAq9kQt0TXSVljQu3vpCmsJSredxMYWyjWCYI0aD1p2k02nS4s8BUw6Zfnlh MxpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723626028; x=1724230828; h=in-reply-to: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=e0VrBpxRv+L1cvAlfJueXS2O7eGCDgmOcojPruWBRGc=; b=BohCX8NW+BEzaAGksvY3YswVp/OZep/BLk8a0qcxEKJJZGV0ha3grWKfiOiDNhJicC a4FYom+dYyDkkNRrbggTIvj8STDoVaKeJrYcqlu3O7kraQ3fO80LoEgXJ5iU5EjxPCzE KAvnjSutQNlzIwc0O80ciOnyoyqUYvEVLeCsH2/8Z7vLXZ7FcR415JmZZptxE7re1k35 QIw59KhJoGiMbDHtkjkK3np8e/L7gvu8CX4EOhKzuLqNseQE1JdI1wX9SvIQ0FHEE/+q vzRrDb+rrytAsL0sKaXyo5wn7vl3IEm4+UK5HBDR/qctYQhTu7sKIy8CyTWHFrA7vv6J RVQA== X-Forwarded-Encrypted: i=1; AJvYcCX1is0qYFE9w0f+x5d4CzgmO9gOPanqcz5pDn521zrtU4O85EGageGqVvd+aGu79si8WmSMMqEVmPhO4lzMTRPnIqQ= X-Gm-Message-State: AOJu0Yz7Qby5JSOs1ojpkuOwF/nwtfezjJ3uoyiUV0wKlfk8Rs2Y7/oR td+jwk/wkNTFA8ss0UuZeEFX+jSfxOlwHrB9Yq1KHwlJ1VKNEp7e9vK0TTW5Jvmjh36A9oFUTdj G X-Google-Smtp-Source: AGHT+IFyfm3ym+AqlP5pRWLc/xKd5ydJyd/NB3v7AWxcNKzihK2+5E2i19SYg9/O9xIa5ABkRI0+Hg== X-Received: by 2002:a05:6000:1a8d:b0:367:8a2e:b550 with SMTP id ffacd0b85a97d-37177832cd1mr1808313f8f.60.1723626027663; Wed, 14 Aug 2024 02:00:27 -0700 (PDT) Received: from blackdock.suse.cz ([193.86.92.181]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3717314e38bsm3500857f8f.97.2024.08.14.02.00.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Aug 2024 02:00:26 -0700 (PDT) Date: Wed, 14 Aug 2024 11:00:25 +0200 From: Michal =?utf-8?Q?Koutn=C3=BD?= To: Kinsey Ho 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 Subject: Re: [PATCH mm-unstable v2 2/5] mm: don't hold css->refcnt during traversal Message-ID: References: <20240813204716.842811-1-kinseyho@google.com> <20240813204716.842811-3-kinseyho@google.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="nj7zfqzlclqebzss" Content-Disposition: inline In-Reply-To: <20240813204716.842811-3-kinseyho@google.com> X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 25DE440028 X-Stat-Signature: 34d7yprf9xmj3uhjqg3tp5mu93cpkzpb X-HE-Tag: 1723626028-71121 X-HE-Meta: U2FsdGVkX1+eXF7GQ05HSVsUzNOvo/wHaiiZLPqrgqjyrBfvSCktmyLV2pfooGOBaQwkaQdSX9FxlD39VJvFTQl/FTb5QbpsYnin9LIlVvlLMWaSnN0o8ehWgYbVSpgHYo5JeZpmvXnm16qa9zy1eYcS4uCLfuNw6aDqP1DXjPEoIypj/Ngc+zX7lUp7TEudThknLxrsIG9HTzQ6aeSwXPM1P5gVN0n9o6CCS2F5vVTLYO52McSNYC1wERLd3c1uOMpM3/hD6e0hYlisoYbe0dOVliOJu3xBbHch+9GE7kEnvircwugSpJMj07+9HMv8AMDUPGw+5Szf94dPZq99rl7q1n7UWbLhXBu2nMBYaHSYexBe4+UP9TAQx+ECLb5UkGX07rcdc1ELQ5eWi1YkbEvK+TH4lpfwTPigCBNNFyYSk9VVnZ5WUGjH2tq+jgt3X/vOJUtsvo6BYxDC2wGu16MXzEqNt3mt747CGBlZbQ3uOdnHrQh4FzwKScbZ3wngrftPPfsjiqEayDebOBKSzhTeYhk1fuw+Rh/u3Wie6FQnStdKJdODuukwCrAI1F4WTCIdDj+pWZ0rJtznxFfpkf2OiiAtMU4ZxfBIijTxcL0YgdZdy9NKNOlvc/TVkB0Q0uvHZIZS+xLY39So02rjiUnVUW+zHOzDtXYGU0Vb2DVcpXfrViodA+EFmnO4nPGWJMqhw5PokRuGqgYetk1az77IsRzK16SQQEeQtvUrYxYDC3rEa2r0SYcZRskT27XaDnoAH9rvbNkeSfvEiXjuOdG0zBL17E5q9OoCc2Uw30ifasZbITzdKLk5lv7W6W3Wi2eixX2bNjeGYYmrGwJQdjQgzEIB1gabRVFnPz9C/SuNHw3uR8LmI/JhMaeN8cBd7dzGZQyV6F9urXYUgc1mB+poEb+44P7qjusLmzpTlLfPmFSOUrOG4Pqt4zb+5pQc7jQhemLkVr7oNc3BgoX CH36w38/ zwgrgUeBfpoeUq8UDebntAv6Nt53uUv6MWLFh0UuPKJApVlEDIcySIjZInWijvgXvpvzuQ7EjQnIwt6+yieQELtltSZf+oBnaPsoAr7EqtY+I20IZc2vAvGKxOdc4L4d/iBtgcMTIckkR5YLTHkzzB8eUb/u+RXbu1yPJfSsk00dYzlPHA7I2ClAKYmic5P2zMR3gl+qbHuP9U5Km1uxmgYasS/LVyhq3dbRGAfrQSOFpRUU9jjFgS/KaVxXa5m4kUc69zn02ypWxGGGD6MTflKztmk/tUtvCxYvxxr69M/VttlN9BjsEvrIpmOd6sF1R5vZR54hMKp+jbB5ISQuIdmarQJE09dCU19CmM0Tjec4sCRvcY9aeclYtPTfebQ2FKag7DPVC0aZPCi2NHVdpENJiKrX3y9Zn/XfHjQZ/OGujPwdynocB5jBbwQ== 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: --nj7zfqzlclqebzss Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Aug 13, 2024 at 08:47:12PM GMT, Kinsey Ho wro= te: > 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. >=20 > Remove css->refcnt usage during traversal by leveraging RCU. >=20 > Signed-off-by: Kinsey Ho > --- > include/linux/memcontrol.h | 2 +- > mm/memcontrol.c | 18 +----------------- > 2 files changed, 2 insertions(+), 18 deletions(-) >=20 > 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; > =20 > 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? Regards, Michal --nj7zfqzlclqebzss Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTd6mfF2PbEZnpdoAkt3Wney77BSQUCZrxyJwAKCRAt3Wney77B ScF3AP9cGpM5R3nEkhyTYVHmwEk8lBkIAZEhJSg7XT8+mjoBAgEA8MHPEk593wkd iR6vP0rVJwmIoAqYDttw3aJO8G+bXA8= =7ASr -----END PGP SIGNATURE----- --nj7zfqzlclqebzss--