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 E5B6DC369C9 for ; Thu, 17 Apr 2025 19:05:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C965F280059; Thu, 17 Apr 2025 15:05:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C4414280052; Thu, 17 Apr 2025 15:05:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B33FA280059; Thu, 17 Apr 2025 15:05:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 938F1280052 for ; Thu, 17 Apr 2025 15:05:05 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B64E71203F9 for ; Thu, 17 Apr 2025 19:05:06 +0000 (UTC) X-FDA: 83344463412.02.EA47B1D Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) by imf17.hostedemail.com (Postfix) with ESMTP id 813B34000B for ; Thu, 17 Apr 2025 19:05:04 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=V54Roj+l; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.216.41 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744916704; a=rsa-sha256; cv=none; b=f5BbGRIL8Fzj1Q3eaz43XOz4FoQWqKsSvufBz1vV5MslAEMpgFAi3c1ym0uaBlIvQGqy90 xGw9LFGuwvC7rzfoDzMLw0MIU6QjLTh1YcwZ7qikYgFQSuD/Ks5DWrjk88/TOH+pC80PYR THharBlRgRjuZuZonGkCn6UaDrS+6YE= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=V54Roj+l; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.216.41 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744916704; 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=DA4O88gvqwg6x6i/qwnGjRzTebRQv2bSlpav2YCVo3o=; b=Atp3oO7eDatAN/yediGWWXG8+Jr3fSgz/RQo5Qnr9MpfWiBfE/K+PwaTVQKq+Cv5q5RM1s 0sEJPBU9FQ6BAntvmKU9U747tMqruvga2Aa7NU7rG9EpeUiQ+V03FGMg+4B883ZVDiu96f yOswUfl/byHtg9MOcuh3Wx2A2FXbAG0= Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-301918a4e3bso1196207a91.3 for ; Thu, 17 Apr 2025 12:05:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744916703; x=1745521503; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=DA4O88gvqwg6x6i/qwnGjRzTebRQv2bSlpav2YCVo3o=; b=V54Roj+lGiNgL/vAResoPYWAdVgc6qOsqIUutf/Rbsjg8iWl1F/bUsDmu74fZkK4F8 7pTbjbrGAG1JTc27OW6QjA8IVjb2o5NYPcpM1Yif473UNlTmPJz6IQezBgscNuMivCSK 51PSml6jHnTvcOIIUa0ZKYvhJurAuSxpuwH1+Tv8BC8FfkMG1jhJnJotf3xTID7lwIww PpsweU9UvrAEKTqcskxL043LRQCGNBJPRr8sSz9g5wCXOYBlRDtl4H38hb9TJ91GXLZS MVdlYhH+JHuFYxQCk2vI0LJUNqGfb5RYu1nszL3ZaqiFTHMaNMOzxEman1d/QeTqnIV9 aHjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744916703; x=1745521503; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DA4O88gvqwg6x6i/qwnGjRzTebRQv2bSlpav2YCVo3o=; b=c2632EhQk0g3HcAXpv+1+UlpD2dK9BC+jGoZWa2PEkxmiOQwjZJtecwA9vlguHI1Hv /+GXY4ntNnBFMTAls811bdOWo/D+THvx01KygZkGgg+UinPjsHPRO1VcqDof/W9t2uMg Z5uCGm2NFp2PuOqxq++yq/ysV4Eg8D99UYAjxvXSgbsKZEjqXLhcU9Gal/DJHtZTeWY0 JVrjtGP5R0X74lIkfi+DuxVa8STNLKvIVdlt7c4lhiAkLM/4ie2S4+YLpGIwopMJ5MOj CgEyOnEGgGqdEbPtDwvJX9cuH8dhpLmZs3E8dMkwii8cS3J3HgcY3ChECr6H95YN9e07 gaTg== X-Forwarded-Encrypted: i=1; AJvYcCWRZo4cw9R9mIHTMeON3I8/uC+h85vx+Yi53sQxAL97DgUdXTybwCl/gWbhC9MpJSfdJEteIZLZlw==@kvack.org X-Gm-Message-State: AOJu0YwUv6484MH+GT6iU6AqNhcrgHvxAZ1gPfmnZhWDAxb68WILlheT t3g9DJ4I2LVoJKMjnthMKGP3g3RetgQQdCWRIcEQaiIjkQDaEedS X-Gm-Gg: ASbGncujfjPYTdsTRo6ydj5dZZt164dj+r8vlYMD8BpkB3jt5QR60QZuM4WQ5i4kuN8 bQJ1bTgGUFVNPgla8ctlIFUPCRfS/9aO5XZ2RmLDKL6pAIoPi6T/7i+lA6cZAmjahM8YscHfXB+ hTcRLVSmfSl/SjfbuaYKRo/SsPbVly2lILLCygw9kKf4wjbGuS2US+2bbnlI6PA4d3h3fuGjX6s QZebgS2fmlTtrqAtUp9J1fhrNqKKMtTYWb1xPUgWpfcwlMfkWnvui8b0S//aGbqUtBp6/hrA7Di L0CaXXR6oxFR3kQqZRPAZoyYiFHvXq8xFmu3ts2VsDxG+chLOzrzs/fI0Re7NzrFP1jquVJv X-Google-Smtp-Source: AGHT+IEYKvS32hcqXc+yL7MrHtAEph4uwjGO0CdSUkAfheqVjU7oxpfaMsuXouztqKjWovGheaw3Xw== X-Received: by 2002:a17:90b:2703:b0:2ee:aed6:9ec2 with SMTP id 98e67ed59e1d1-3087bb53257mr194474a91.14.1744916703293; Thu, 17 Apr 2025 12:05:03 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1151:15:6f0c:5f5a:e370:874b? ([2620:10d:c090:500::5:a81]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73dbfaab922sm211321b3a.133.2025.04.17.12.05.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Apr 2025 12:05:02 -0700 (PDT) Message-ID: <337ce68f-5309-4bb2-83ae-cb43268f447d@gmail.com> Date: Thu, 17 Apr 2025 12:05:01 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 4/5] cgroup: use separate rstat trees for each subsystem To: =?UTF-8?Q?Michal_Koutn=C3=BD?= Cc: tj@kernel.org, shakeel.butt@linux.dev, yosryahmed@google.com, hannes@cmpxchg.org, akpm@linux-foundation.org, linux-mm@kvack.org, cgroups@vger.kernel.org, kernel-team@meta.com References: <20250404011050.121777-1-inwardvessel@gmail.com> <20250404011050.121777-5-inwardvessel@gmail.com> <2llytbsvkathgttzutwmrm2zwajls74p4eixxx3jyncawe5jfe@og3vps4y2tnc> <88f07e01-ef0e-4e7d-933a-906c308f6ab4@gmail.com> Content-Language: en-US From: JP Kobryn In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 813B34000B X-Rspamd-Server: rspam04 X-Stat-Signature: a5g6pa9sjhcxogiomad7yzj41pzcfaeu X-HE-Tag: 1744916704-191520 X-HE-Meta: U2FsdGVkX18pyUiNTWVulC6VSuXiBCCy34TiXmWiOoexDl07U/AFB0LqKFymUAzWsIPTLsykBRi87N2PjNiX5vDJnktfeyh3P4mut/5T3STXUA3bJJvYbog8lvx1Zl2Az+tdmHl6B7JmzDJyIDFBxpcy8Y+6pyJAP+sFNcAvbI4nHfPzvDOiwty8tBpRJ1dxeuBH4WeAb0GIEqaCNSgCxwj4U6Q4ItKHbXnWCYTusnrNGPuT1jd+F6lDrve9TFWarx0d+68sSuYdv9P9xldXFDSH6M7fQvODw7ZLrGGUroNsP7GdMFQu1+HTnVYsDnGtgfIWEkKCz/zLHGKbDDOSHrFxJdrg88syvN8FFkAdotd74fCD/YNiV0JyD4qE/2rsq0Jt8JyrFflp13U87UkE0+Uipx8xzbQlM4+4s83JCIaxO8puobWoEAHobzY5+3C6xQUKY4UwNbn9Y0/aS4XN8+jNJmFgqFx4s87YhZebmhfVMEY/dbZUL3iJ11FjF+Y1Y3a2NT7b1W5sroq7oEhBBboQ/UWJrPyR9239JW/tVI8FVvc+ROq/pBYrBlYRJXJj9C18P1ee+7hB1D8u2SdcPkkTJJBbbjBVLf6AlqwDVhmKG26Zkik2n+9bSrv7KKTOc6JasI6od3v0Elgpgi7KHoaNS9qN7lAvg9DX5AIgj3HClJysoayIadTTmCLzvmfrWQ3nrEvg2VAGUFsP7a/I2mrHO46Bn+wXlkST6qBByi8gaOGLYEURNRFO3dUvZrwzl3eOd9YOB4dAb3og7gYP6LrzLq+Clu0mDhVNTDdo5/SMFRohY4QDjd6tfxrGuCPoa2QJg4oKTGy35vFj1/gNvJ/qlF09UG/sZcS6hB9PzK476vkVE1U9W3EcNNXK9aqumXxU9ZVxJG9JfPu98j7r+V4F09/gocJ6tp1bT8txiBCCaRrd0TyX1vz8LfoEYaRwAtYHTjmo/1P6zx2nmAX pq+A8SFu FDL4Y7MyfpBjwsJbTzL5Y29BeyFBT481xZ+FGfbnowcGwtR7XrC09yU+mCThS/234s7W1LRvVesRnmOK94XADsEecgkvP8u1h/7KVqKtIxWWSHPOzl9cL6Q4PM04Ab126mdzIDHt1fOUcD47gzzefh9GJo+r2v5JHDjQyvaZknrCn1upPRw801uFQD0O7lSHHcz/EGa1iLyWdLPEbJ/TzrWuxD8jWugVas21qreQUuHmXqKdNu6PhV24fLMTtZW8F5/Bl8O78fwwVfmeq3KAm0DIsx1bHQAeWL16c2QNxxkxwdwGoZFoxoNM6rhhsjQIEALrSyfOl72X5fBZE8sS2SAcz8GTO9ko2K9PNZ7sjiJop0G4H8Zrj/jzH+2pBoUzVQBwfKnMcepY3N/gTFDHXzQkzevPIrTi414UZSFm22vCSAcJOkWxWY83/CEjvYZ4F0TcMm/60BiBGnDI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002993, 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 4/17/25 2:26 AM, Michal Koutný wrote: > On Wed, Apr 16, 2025 at 02:43:57PM -0700, JP Kobryn wrote: >> Hmmm I checked my initial assumptions. I'm still finding that css's from >> any subsystem regardless of rstat usage can reach this call to exit. >> Without the guard there will be undefined behavior. > > At which place is the UB? (I saw that all funnels to css_rstat_flush() > that does the check but I may have overlooked something in the diffs.) It would occur on access to the per-cpu rstat pointer during the tree building in the sequence below. css_rstat_exit(css) css_rstat_flush(css) css_rstat_updated_list(css, cpu) rstatc = css_rstat_cpu(css, cpu) per_cpu_ptr(css->rstat_cpu, cpu) Since I'm doing the early checks in css_rstat_flush() in the next rev though, I was thinking of this: void css_rstat_flush(css) { bool is_cgroup = css_is_cgroup(css); if (!is_cgroup && !css->ss->css_rstat_flush) return; ... for (...) { if (is_cgroup) /* flush base stats and bpf */ else /* flush via css_rstat_flush */ } } Then we could remove the two conditional guards in css_release_work_fn() and css_free_rwork_fn(). Thoughts? Note that I was also thinking of doing the same early check in css_rstat_updated() since it is exposed as a kfunc and someone could pass in a non-rstat css other than cgroup::self.