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 A7EA9E69E9F for ; Tue, 3 Dec 2024 10:44:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 230C86B0085; Tue, 3 Dec 2024 05:44:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1E0536B0088; Tue, 3 Dec 2024 05:44:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A83C6B0089; Tue, 3 Dec 2024 05:44:07 -0500 (EST) 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 DEC626B0085 for ; Tue, 3 Dec 2024 05:44:06 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 64632140881 for ; Tue, 3 Dec 2024 10:44:06 +0000 (UTC) X-FDA: 82853312640.16.A0A30DD Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by imf30.hostedemail.com (Postfix) with ESMTP id 9131E80011 for ; Tue, 3 Dec 2024 10:43:39 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=BUlLQ6qw; spf=pass (imf30.hostedemail.com: domain of mkoutny@suse.com designates 209.85.128.50 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=1733222638; 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=U03OPGQRaXmE1ghscIoxpSXZHQUjfrvCB18PsXKgzhs=; b=ErHZhXtdv71HdOh8j141wDzyXgBhgDZxPeAOcDP9jjFBANx54ib/PUawLtWOdnJHgxJcKv Cq80eZtvH89UE7iz6l5/VVjH3GOhGDKhiOe+uZ4432ILoz0jBKQ6GseiUS3MahpItNWl+t 6kbA21gWmY9c4bCkkMhmpRNDV9QMxtE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733222638; a=rsa-sha256; cv=none; b=Uv7KcX0mZY3QNhmp25kYH3qtLJbmGq4OKcV5mIYWYCeSzTn79xhVekqWc7VdfltfL7Jq8B xD3lk1bmfCtpTnMz6ZijB0Wawucn0HTPpI608ZnfUCeuBmDlG9vjWFMrcGSRkqZxgjdVGG brwB8NnrweiWZsIVqBPpp0qEClmN40s= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=BUlLQ6qw; spf=pass (imf30.hostedemail.com: domain of mkoutny@suse.com designates 209.85.128.50 as permitted sender) smtp.mailfrom=mkoutny@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-434a83c6b01so46825785e9.0 for ; Tue, 03 Dec 2024 02:44:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1733222643; x=1733827443; 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=U03OPGQRaXmE1ghscIoxpSXZHQUjfrvCB18PsXKgzhs=; b=BUlLQ6qwPZgqKdLavqBLlWT/rtPhN0koMeZyqjwI4HA+heL7iRSqLT0qp65/gAtt// 35lnUp4Rk4fPSoRHllLQi68BVpsCImbP2VpykuTZF+r0EGdwIffVthuOqAtFW3sMEVCn FyC1aCFReahBq9skplwWM2XQE4DY48D37fMU4+u9ddGUVUkomJ/Se6djLdZumR1VMcOE Pg8q7dzx4qYeVKoVdKSShZseFhqygVkwWUxf4l0Z/U52bLTnJuPnaHnwhiS1CR27CTIq xwQAUalCTyY72Dqzw0EoDJffB0bHSottiKLiUM6xNsER017JqpIxpKOrHQfcqrR7svgl fsiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733222643; x=1733827443; 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=U03OPGQRaXmE1ghscIoxpSXZHQUjfrvCB18PsXKgzhs=; b=lGm3HAhuWSX5cQ/GLOJO2XEDYQzf5DsP3t6hjxIaRH/s6LLT0vRKPCYQ0iMG1/O9S+ 2Y2lNQiyuMmwJFbdiw2D3D24ZB6EOmOmFWxwnNdtuisZyWMZORmYb3OcD/phTbDMmSf7 keoI7wWM4wVUwUqgT6xwhbNu337rgT+65m+VSQ6MrvE7EDPplxyBxLYOxs8fUCRuuVYx VIxXARMfQyQ7MEREcopzGA04CMK5vbShGBqDwwM8AtvxmEUWxQaURkgO0lhsdxEs73yi 8gbL0Y2Px+GmqmjFnhiYZpmtiebLpIwhSJlH6OtHHDLETVEIqQTfdg6KGyLjQC/sPXTM cLEA== X-Forwarded-Encrypted: i=1; AJvYcCUUOfPbBWmlWG3G57712NzwD/uBc2aUfd/CElXFJbCjRiSZcp3Zw1wO18Paj94uURAh5t483FlKgw==@kvack.org X-Gm-Message-State: AOJu0YwZ47YcXz+kQBCnd/TrDU54IeCX9ti7OTysV5fOf9Ef/FpVeGY9 BxVNKtp4JNPNTQLqgYekxIIlq9pDGkLzGFwMZ5VldeNyBJvULEBKxZOt96c0nZU= X-Gm-Gg: ASbGncuXI+w6obXXSozEBmXjr4ivw1gjH9Wltw7YptLgFsIyfN8184azPIC9CvAMn4h /DUbcHAcm1Y3YHSQ6LjpFwJDdYu7bmpGG2z3Ij/mf6QnEHZhb6j1KSxEB+fInvqqR/W2R0CCbjc QHuj2uadbimUwekYstzgy0OX731nLaYWAYowgSIzSEoqUI/WDjcn0XkSiSxMW/ASqB/b1rbtI3W 1kJKm1EX2SLzNXuasxHlbSvIo4AId0E/7PwH3304G2Kb++j3y6F X-Google-Smtp-Source: AGHT+IFjjbvEeALxzGnisfRqO1VWpGZ6FOPcBFJVA64KLUcBabiM0AVQuu2EXYMYgxb4LiiFJ5aWzg== X-Received: by 2002:a05:600c:3546:b0:434:9fb5:fddd with SMTP id 5b1f17b1804b1-434d0a07350mr13720895e9.23.1733222643100; Tue, 03 Dec 2024 02:44:03 -0800 (PST) Received: from blackdock.suse.cz ([193.86.92.181]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434b0f32594sm187382555e9.32.2024.12.03.02.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2024 02:44:02 -0800 (PST) Date: Tue, 3 Dec 2024 11:44:00 +0100 From: Michal =?utf-8?Q?Koutn=C3=BD?= To: Dave Chinner , Alice Ryhl Cc: Johannes Weiner , Andrew Morton , Nhat Pham , Qi Zheng , Roman Gushchin , Muchun Song , Linux Memory Management List , Michal Hocko , Shakeel Butt , cgroups@vger.kernel.org, open list Subject: Re: [QUESTION] What memcg lifetime is required by list_lru_add? Message-ID: References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="f7hgwm4vbrllohur" Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 9131E80011 X-Stat-Signature: yguah6t16cb37br9qwkcfkg5nzdpo5dz X-Rspam-User: X-HE-Tag: 1733222619-241326 X-HE-Meta: U2FsdGVkX1/b5rNSo15Exhv/CXEfDv6sMSHjmaLtrmvCEOaoZYCcB83KODJH0pEn6q4AisC/2BHwtBKmJnXBeHad0r+sLotChUAOw9K0i40OUsRIxa692PRP9ieKkxQ33nRl8nzziPisAItMhOaPAjq02KdowdZpBJpq5aVg1nxIATwBGaqqVeHPNlKqvyKsLxxW1racFmDfUBOgzDvPr7Q0zdffFRg2OO30aqXk1/+g5576mOzMhZcsARE+mqfDDjfJ/d53Qv1NMWKdJptbJjfL6wogUTlqYdvQ9rb1WcYhaLs9HCsxeuClTTzsMSj3tB2A8SBUg4FPZCKJL/t0fJ3s/g5M6MjLD23qvCjCss1cqJfDy3gQs4EFQTuwmgBb3uAg3iYsvLhSr8dr9YPoQpRJPc/dYmdOIEiv1tOsft/4G/tlFo3724bSYOaK2SBMDPIdhJ/rjWqW/ALaQK/mUfSie/yYTWZR+mzQhCWNYQ20V9q3AMFXY2DL0hWhvX2J/Df2ldCcmuX0X7jt3DGIk6zOOTnaUt4bFgV7sJM4hWIsV50YPke0gA40aaSuAsVIdK+LmvfmJO8vtDxQHZB0eapGKHPtcxmKklbb9K41Ut3kTKkOYXkxp2chnlTnxAuUd8D3K+6Tbun0k9nKd4rx8RN3vJcDv2gK98OiKfs0/Wsve4QK13bgRDhaG9GRyL2oXOGHEbSBKLUbTY7uZQhnXz2Yq5cnpG0oBDXAPEWV6PmAGw4oSDxymwCiUrpkHIGLEV8QdqQ5WGLY4sabkiPW16ZHW5BWUsUSCkOmpfRDvUevHTqC6CnjlZzXDstP/1yRMREg0GYbBklGKERLsG5LBPAw9aw6p/aTj30Jixk2AoAonx08RpoM1gqdQoIjTW9Q+tOPbl6A3f9o3Y0itB4qwGjS5PWeTDkwTAiEi/Dfp/ZUbJt3w0wfAZ43vqeYqG8h+JQU4itwS1LMwYoG6gp NwmUcgz4 Pn4mXar6jRVs1ZRGmNcCMjmNT0dL9d919B4r3sTp+AriMV0HElglRNUCpQXXU+nvpin+dy3s/nPF5SFhb3HzYGg93q5d0cIUwgo2etY2cdG5xVRNC0Soyio56ogNDlUfD8bEACxsEmpeQqytHBBqYT6/X7LP0y772l7sqLSpReYHLgZW9e8aQnQFzasmPgag+/t7xFaf2zUByq4Ie2eYDX53QAHGhycG7jwuo/wjgmKJ26tYnf/wrmF4xphDtb6SS7fXkKYAxNx3A71ETfRVXsypBdB6tcZ+jkX+zoxIKBUzTAoSC/lbR5CpKhivPKJ1Gyt504bhWi4oEDt8THB+S7Wo/JP1WG/51GyXXa4zBxKFUdgSiGB+0BLnfLEv8YQqszvwe/KeKJfNf6VBSAgIie0mnuzi5Aqyldt5tKLruocqjNRRZt5cvKDdnlCNyLLPIf0+FUzpso7OatyJwvMp45RCYAHc7s9VBFgcaHaH5rKL7dE6I3wYvCSB8V/GilGvBmA59SxlHDNYKXW6CBgXFyLYoo9JSTPZtGh8helsMXWxoqtUx2WAE1G13Yt4STftecEVoH3aYpKXeh9s= 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: --f7hgwm4vbrllohur Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Nov 28, 2024 at 09:05:34AM GMT, Dave Chinner = wrote: > It's enforced by the -complex- state machine used to tear down > control groups. True. > tl;dr: If the memcg gets torn down, it will reparent the objects on > the LRU to it's parent memcg during the teardown process. >=20 > This reparenting happens in the cgroup ->css_offline() method, which > only happens after the cgroup reference count goes to zero and is > waited on via: What's waited for is seeing "killing" of the _initial_ reference, the refcount may be still non-zero. I.e. ->css_offline() happens with some referencs around (e.g. from struct page^W folio) and only ->css_released() is called after refs drop to zero (and ->css_free() even after RCU period given there were any RCU readers who didn't css_get()). > See the comment above css_free_rwork_fn() for more details about the > teardown process: >=20 > /* > * css destruction is four-stage process. > * > * 1. Destruction starts. Killing of the percpu_ref is initiated. > * Implemented in kill_css(). > * > * 2. When the percpu_ref is confirmed to be visible as killed on all CPUs > * and thus css_tryget_online() is guaranteed to fail, the css can be > * offlined by invoking offline_css(). After offlining, the base ref = is > * put. Implemented in css_killed_work_fn(). > * > * 3. When the percpu_ref reaches zero, the only possible remaining > * accessors are inside RCU read sections. css_release() schedules the > * RCU callback. > * > * 4. After the grace period, the css can be freed. Implemented in > * css_free_rwork_fn(). This is a useful comment. HTH, Michal --f7hgwm4vbrllohur Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTd6mfF2PbEZnpdoAkt3Wney77BSQUCZ07g7gAKCRAt3Wney77B SWSLAQDYSjM8dIWjMx78MOe0HwHi7Jr3Zy7NTu/rfkCngqsLhQEAq0eCFBipF6FO zr4LRLdBi2pGv+clMNdjT1BSgdjqBQo= =UtFx -----END PGP SIGNATURE----- --f7hgwm4vbrllohur--