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 CAD03C3DA5D for ; Thu, 25 Jul 2024 20:43:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5CAFA6B0095; Thu, 25 Jul 2024 16:43:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 57B4F6B0096; Thu, 25 Jul 2024 16:43:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 442BA6B0098; Thu, 25 Jul 2024 16:43:55 -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 26AB56B0095 for ; Thu, 25 Jul 2024 16:43:55 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id BE3C9A265F for ; Thu, 25 Jul 2024 20:43:54 +0000 (UTC) X-FDA: 82379451588.16.BA3A4AA Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by imf02.hostedemail.com (Postfix) with ESMTP id 9270780007 for ; Thu, 25 Jul 2024 20:43:52 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=SkPtN++i; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf02.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.41 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721940196; a=rsa-sha256; cv=none; b=GVtAUPk1jTMS52QZXvtsq0zFSGTRegVGq9a/TeqyCndB78dokpCJp4EEcFw2wxnZCXVtfa FUsTAVLFDDOgcgoJbuPG5ogLem+eWXKcyO00zCX03ReoavwxISPCU3xITFex5A9/IZ2ul7 FRP6IYJ2Fe9eHlrQvGRtYzJZ0r/tDhM= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=SkPtN++i; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf02.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.219.41 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721940196; 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=2w2v02MhUvqMkE9xn0dmWvuBpH6aLQWzCh6dyW2ZZMo=; b=74mgka3bro4ViFqvKaQo+uQCNu2VClEdulIqAeXkIhkXPE+ldCf4gE68Tgf1P4I00tpcmg uLRe0r6zPbYS0x4TchM+YHkDHKX0N7VIR0CG8pdOw0it+zOYufJROV/N+LiAuqztzH+m0t rqCUCsXKMRHnM2N23Fhxy0j1ahYOCHI= Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6b7a36f26f3so22003986d6.1 for ; Thu, 25 Jul 2024 13:43:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1721940231; x=1722545031; 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=2w2v02MhUvqMkE9xn0dmWvuBpH6aLQWzCh6dyW2ZZMo=; b=SkPtN++ien0DV+6JQs0dTXYLovzjkO5jeDTvDsYAZidMzD3pohuHZ+iftSE888NwJ3 PfZN2W9MxVxhxhOEq1609DVrigsaVeSAbQFy6sIstOXzBE1hhCnZ0wAaM7hk2CI107iQ fRwjf4DXpCK3yfj6oLxaEDkJqajNPptK/gliSmof6monHozoDiJyZ07I0twCFiGcg2H+ 6QJEbaiWDnlGfAhvXNhT/FdLkSKtke/fEjPIreAFOwgzGmvE4rj3oJ3iGtlmCjT0UZUt GXITyCR04HblTmK13pVcjjoE3A7CHvDtUw+y+AL8iz64oVg3t5xj+hYOUsWHTd8hSyHE 1dCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721940231; x=1722545031; 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=2w2v02MhUvqMkE9xn0dmWvuBpH6aLQWzCh6dyW2ZZMo=; b=EeHhNUJj4giorSmjFFdphr8W+M9/c3VOG/BXgVf5L8F8vXAa5wAsI73TmgtHg3ZLsS exlI1syHqbwwTSTzPrNebmJoXuO3Zvx5MeqDn59nq2+8Y/MYbIyJfxe68bd56I86h6Ic SDwEQCfigx1EDaXdcJ7QvfGDRFfvOGGjQKVHtm0UVCaaRPPsEWd+XQq3itwO+OqF6mtC 6NkwXW8EZjbUUuDz2oxrU4xqZXMZ4C+tSNFWF/Wn45DvRJyOnY+jMc47Zca4Esf1SpMH rvhFF5ZHB+83BrTkkOFlbmZn4sKKIj/LyI9ewf789P+NxoCdo307cQDrXROPqO/uMzwA k5CA== X-Forwarded-Encrypted: i=1; AJvYcCVNrwt9xNDvMxDbkpkX6hmcqAjwl9ya8ssrNsukT7ATu+ZnLQDGoGXQdbkD6EtSVCFnVt4FGzOunzpwr4W7PRPh6/A= X-Gm-Message-State: AOJu0YwvPjZfqx2oJ0xl8Yy0hnKz1MTgyVJ5KFSLyK31Y/ZDE3jAhaDO 0RLHaAN0UgvyjUo3yWSdeHPTGxa+GIhoAk5siu/B1rXd7w80fIdXdCbbHrqRCB0= X-Google-Smtp-Source: AGHT+IERJ81gjGSRBt5y2E9uPDUsfZSzqJ4Abn/XUhM4sJZEb9wAV2KXHsy5WREqkXIX5ZxEFnRbsA== X-Received: by 2002:a05:6214:124e:b0:6b5:8015:d72d with SMTP id 6a1803df08f44-6bb3c8aefa5mr91122286d6.8.1721940231501; Thu, 25 Jul 2024 13:43:51 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6bb3f8fb75esm10526736d6.37.2024.07.25.13.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jul 2024 13:43:50 -0700 (PDT) Date: Thu, 25 Jul 2024 16:43:46 -0400 From: Johannes Weiner To: Kinsey Ho Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yosry Ahmed , Roman Gushchin Subject: Re: [PATCH mm-unstable v1 1/4] mm: don't hold css->refcnt during traversal Message-ID: <20240725204346.GA1702603@cmpxchg.org> References: <20240724190214.1108049-1-kinseyho@google.com> <20240724190214.1108049-2-kinseyho@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240724190214.1108049-2-kinseyho@google.com> X-Rspamd-Queue-Id: 9270780007 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: tuugrsy3g7rdx5dx4xh98b64mons47ig X-HE-Tag: 1721940232-952740 X-HE-Meta: U2FsdGVkX19KqK7Ow9j1SqHgyBPanIz4LPs7Qthe2KO778Rh2VEKTQrlsIl6TE1BGb6E33QmlMB5fCYeV1pW6qJvSxpCLMg8Bb6PYv2j89Hu/ILlcKg+t8u/UfUzI9gjXPdLejuWH7Sbh7Tr1mve+rPuJ/SXXejO/+a45RC/16U66fZBs+QiTrQe5KRRMziepvaYTy0J64uSrNhiNZmjJfOvY1bfNatgdzNF+CXwnT4hOww1WES1X8mOtRU5igS7DGKQqQcjfD4WO+JaIHUZ6hrMTnRnL+3UHenVh/Lesunhw17rh0/4e72i50dYNSngz+3T5zrEiyUXKcDD0mugPlQ0qGqmjwTSEq3JO/zpqv15w4pSH5OV0l8hTFb/WVQpjaGaEwNS0M5bmRPz/O1FtsDdLnr4o9uY419cBi/lF7gIWagGVoSQaurn/SHuyfCQTBHAwEN//QDeP1/K3zXYc1H0WVmNQF87CSj/zch5jsw08KcJ9RHU/TAqcdRz+4BS5C/1a0B9O266tWp7fmEaV+6ooSmnVMz1cAbEayEmjF4sOfJ/tFcnpCMdFjk8Z/kun/USTppmUn0e1tA+HV0kHjd1EogNHYAdJ1nxYlT7o8rhsUPMPvUX9JQfMsMrIpJwPGEKgIrZUq8QM2662a4yRar1/2USdchSkDQnjyUVxogXiJ8TxN1IMCXpMH7qSZslnEDlQoJvLQ3smkv3AY2Uof58pRGllmngQwEBYECCKhTi6MrEkegQ8oRNIaxqU/+8UEjwkdPs2X2QusbXyRPzGsB0W5lvL7USTS4h28zxzq8r+Kv+I+xX4jVTIWeBGOwd4z126wTqBAUt7A6BRMziOsWKok4QZFvz3hn3P8xdO1tplvLTUS/MyY0j+5qYOGwPOyQWD6pXyuqAPv7rcd0DL3ZRnRPNlzEEaW692DDT/AgE7WchCBU9pn5CQKNLRxShrP5FNsqhRccLzlvPRVr j80h+soM kw6tWVklbRxP6DOCaWdtluqmAtTknxXFdVRZjGXB5LtbNURWk8uZ+QW2laYYmNv/WSU29gpj29UGTV5O9fdC9PyMH+ouuqnJJLuB97n+yCcoHBPYrojvnW8XVcWmlehFHD5cOoRdRWdMByTMvBYucvzm8HMPyc1hkGJwgtu7DsGJfK4GZb4OIZReDdNiZ8cyZoDewpCWyijvy3Bv8XScBbN7roxIdWm8SgLn2fniszTrY8RAp9G2sRzmKAlcBp7toDFqM50zAzWRTleixEEi84HKNWl9gEULlkz4xWNt9G+db/JoT26bPSLcRI1QO0zAIUUyBUtYNOmBytE8c0p17k6VY/7KIEWeonQhHHmFry314s9bFvBQ1huUMB41WPXCl5fIUHSYscR7BKr2z2UNZ2W5Wi6QvNS+d+tSm3MOb34dm4o0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000063, 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 Wed, Jul 24, 2024 at 07:02:11PM +0000, Kinsey Ho wrote: > To obtain the pointer to the saved 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. > > Remove css->refcnt usage during traversal by leveraging RCU. Eh, I don't know about this. RCU ensures that the css memory isn't freed. The tryget ensures that the css is still alive and valid. In this case, it just so happens that the sibling linkage is also rcu protected. But accessing random css members when the refcount is 0 is kind of sketchy. On the other hand, the refcount is guaranteed to be valid, and rcu + tryget is a common pattern. What does this buy us? The tryget is cheap.