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 B725EC369C7 for ; Wed, 16 Apr 2025 21:44:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0038280142; Wed, 16 Apr 2025 17:44:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D8648280141; Wed, 16 Apr 2025 17:44:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BFF97280142; Wed, 16 Apr 2025 17:44:23 -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 9EFCC280141 for ; Wed, 16 Apr 2025 17:44:23 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 35784140BE0 for ; Wed, 16 Apr 2025 21:44:03 +0000 (UTC) X-FDA: 83341235166.17.CF84318 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by imf21.hostedemail.com (Postfix) with ESMTP id 3950D1C0007 for ; Wed, 16 Apr 2025 21:44:01 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UthVVXRX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.222.180 as permitted sender) smtp.mailfrom=inwardvessel@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744839841; a=rsa-sha256; cv=none; b=w7glRvGr8gfy1W1cH4D2lsoH0rxi/nMAgTKd2jzu8gj1dlthuE55sQZWNZWTQw6LzNjI3o PnrTbU9tJ/FSThPVmMIKp+W4FeFkK7RsRqucGtHI0VNAW5nznDpuZpvlpjvfXLJHx8+aC9 bFUFgmFdn9j9FIuk9CRnfFH8HfxGqHE= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UthVVXRX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of inwardvessel@gmail.com designates 209.85.222.180 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=1744839841; 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=/OIyk1ZENdNQZu/9TYzK311bLdd6xKD/ifEusl7LbEA=; b=g4yng8Jmjl8RRPu5RNx1U+HrNIp2p3VQ6J6oMFWRKGTO63DMTBV+DkYAIKG/8x5rQe5Ex4 0gMXoLxXIqgqG/eQpLqJj4xs0T/oyYHC2Ara+SKzFnpVoXaXGRgROJcnFmIegf5ODV6JlR dhN+DqaGfEfzp6tQWUzOlVXNPQTySGQ= Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-7c07cd527e4so7060385a.3 for ; Wed, 16 Apr 2025 14:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744839840; x=1745444640; 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=/OIyk1ZENdNQZu/9TYzK311bLdd6xKD/ifEusl7LbEA=; b=UthVVXRXsNNDYmvigz0mn0lQ19/8dbBocTAUdKty4AqNAVaCTl1aLiG0MZG0xsTIMs j7yjFSY0yaiYxMQDIOvTE7EVKDK+G8+cHRfh0+SX59p4hsF4jcPbXRPE/QHgo+wDaggs K4Wjdf/aRSwSpMG7i5HONPHJiYGJ7SX3QMFE9cZMTMBX5BT+AIsxdd8PIq5KD646gkJ7 0WOraUpc66giqYTm5MbDFG2lEYtMiYhug9f+MwbrRaYa/GVrM84Toiu7ww2mperf6rvm 7ubB1WdZzSdBD3+19SZlchKxY6NDpmmdWjYQCQCYiSHzr/qqIFoCrmMIkyGriMdkGYWt 2Sog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744839840; x=1745444640; 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=/OIyk1ZENdNQZu/9TYzK311bLdd6xKD/ifEusl7LbEA=; b=ava3CbK9wHP0BEPSpbEv8ppeWbJQiOfo8fKUQKlTLsPJzQ4IhrrvMzEZoN2TKo94xi TqnW2vwHCbSKZTf9QbZO9rT4T+HQ4bHnyJI2pghSQT6f7DnZnmHEf53h3oD7kW6YBtG2 ahRWyd0zuaNGcq7XZcTkP7Skt6LRjolOrtbzWOLxTpi6yn1U89EpbkWQfFurlVRCOTAs WrOJ6fy4Fxm7zefjIX94zul6fIKelUiyXWM91NjGtv1bt6oriBDi0ZPkZ7E25ncGJ/H7 f2p+wd2FpFZxSQtpweEVJ7LbKyeX10DhOUjCaNAL8B4+glaIkHKnOEYmTJ7dJGdGsw3S csQA== X-Forwarded-Encrypted: i=1; AJvYcCWRCmE8s/04ZOzWPuQkWW0WeftU/z7dUzsIqLranEZpZFGBIRjT/o54NAxBiXMWKqaKrSwcgnBx3g==@kvack.org X-Gm-Message-State: AOJu0Ywok1HPAmNuOL5Do+P7Rq2Osavnbhq66AIGx8LmR4jdX5g8QyNd OqMbdadktJvUj7lJraD+EhPZu1o/gZrY5CDPWXC+CBotburHgb8N X-Gm-Gg: ASbGncsUHWxpwEeih1ROhFUNWEHgjxtWKPwLKReaDJZryGD1lApRIDShxffDAZr7NdY +Jq4/jJvtItg01+9g899N/0wkNXA9mttXCbskGP8COCHT3/ALohtj4nb9AX71s8rYN9XfeuzCJP ODUPz7CVGPWyvbPzYUo40q+OlkbFF3s92HmPlVLJUeMcSXFQK9PKdnuTcVY7Udq2Ib+mOmM32cD V838mESndS0TqMkX9VAgHlhI0WxqYqSn5u+k2YWVHIbt7XdBRlwxYkil/9s7+uEO8VSW/l9VdwM 90A5/EnKce6GpGcWUbS2wa56PZyD+jdze2ODXYEsYWfBwMTKWrFzLfJhIuzlsBYjQy6/D4+s X-Google-Smtp-Source: AGHT+IHU21QnA2LHSogdD/CErEVvhghGtE3hBs14ZAZayn0m+D+RKDdHjiJDnwlqMDn1XIlARkcCVA== X-Received: by 2002:a05:620a:1988:b0:7c5:94b2:99da with SMTP id af79cd13be357-7c9190022bamr499544485a.28.1744839840158; Wed, 16 Apr 2025 14:44:00 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1151:15:b31:ddc1:afa7:7c1e? ([2620:10d:c090:500::4:d585]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c7a8a0de11sm1099335485a.101.2025.04.16.14.43.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 16 Apr 2025 14:43:59 -0700 (PDT) Message-ID: <88f07e01-ef0e-4e7d-933a-906c308f6ab4@gmail.com> Date: Wed, 16 Apr 2025 14:43:57 -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> Content-Language: en-US From: JP Kobryn In-Reply-To: <2llytbsvkathgttzutwmrm2zwajls74p4eixxx3jyncawe5jfe@og3vps4y2tnc> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 3950D1C0007 X-Stat-Signature: oj46ik6c9z5sk8p1ukaq9fd3fd5rc66k X-Rspam-User: X-HE-Tag: 1744839841-537227 X-HE-Meta: U2FsdGVkX18L8R1vysd9NWOTwYGd4keD9amF+ykHBPqanf/k0DKXvYfawBUn8DnPzETe9QJaq5sT9QkdVcXOV9+VDBZWKzZYvJY3SgMP/lvjvSu51y5ks7orq1yex6BKtpupmRptzW6yMh2xS4zar70ksAoCHDZ3HQOsDPK3flEdBzDRrxR4o5Dit6ERrQ7Boq/uqWZvwLTdxk9oDNyrtQrt3WD+Fvabk+CHafsIitC3xuEj8O3MIPSkYTVLBHyq7jl07MW1InqVMiU9oSenyyGs242Tbqm9qyEj3B3fS7E73FR7kBYd4pbKk5Gx3uhtc5GK6Ntgbkf2vZJcl+xbvAUdJ+7Qi2KmMal3O/rrO+1N4+3d8gN5Sv5xqxKE3wRU3P+3tc8y0M5fK5HqzBgJgIAW2E2q/d9ClsGiu+9hiJMzUGMV7YZfp0VerYEOtDzVNOYBJwiyvu4amYoBGXeh4v1XX55Lt8xDezhuvhBpKSkiPUJEAsXwoNq2e9v0Dhld8cGC4VNd2mggGZTM5yt7QilUtHLguQIkIfFp0IfsLQskz+1xCQjQ8mb0mpS8NH+7GpeALlw4HYG/FYPLRBtbP+KNV/ZBqVrnZtJZEj6tCa8J4yi36qI/K7la8J2kWhUWFGPaBnEhb0pYLICG15Fqw+k75DkBIB8Z0fWN/6kLjVm6exofp/0neTjry9ZybfAWIxYhURJ3IVhg24tNGaK/XHUCcSdAut65M+yRO6/pL4qbMe/KlFU5pHzYJS/cH2XgYpffBC/9XW1YZSFQEW+w35+7RGi78edcSyu0yR/hsezkCawdjumEkj2xAZjhaMZ1mTwHiqY4r0LZK57v1HRZBWxaRUX/wACcmoHOV7NL1Tp8zlHriVnu8msggaWZu/gXs2cX6jnURxD20sBPo0vMYkrllPGXqPUyOHWmv84BIEGDlAe8UBMibHRsvvSjGBDaa1NyrwY1UBEgXWog19v ZlAaqbzM OiXzpr3vIWtc3Y8Y/vV3H+CKe9uL25JYN9sy9wEAG/+MxA2o1L509TAz/ssWbTj8ywFMspbJJ1Vak3IOMm7c4oHTbAFehaLADLNiEdqwWmrNXLE2d/Hmp8j74YioS3Awfw+R4igDdyKN/NjPhplrF6RFD2+zoeNd1PQBtaysT8gPLFk9V1jMfjx1NPF/E7QPqfdS6iSFrSXDRjfdXQkCrDbtQuxg+ZJTYHRt9G0KLNvGyn79paqRCEFCLIjdi1fHrB6g28BeCV/MIJcUTkA/+730emgPL2WbhgXzzIvB4zOtLzOPVHW2FhR3qCcpeUC/PNeVIxy1HdzbQ5kxWCjjUSthasTTQt/el3MvpPFvVENseKZn8Rqv/X9tvyhO6cCTkvc6urZkJhoojBKuaKlb4WOxpF8tWo+UOlYC3lvP17ZinKZjcaHzQfewWuOPPDX4xnhbHKWWQfySOMWk= 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: On 4/15/25 10:15 AM, Michal Koutný wrote: > On Thu, Apr 03, 2025 at 06:10:49PM -0700, JP Kobryn wrote: >> --- a/kernel/cgroup/cgroup.c >> +++ b/kernel/cgroup/cgroup.c > ... >> @@ -5425,6 +5417,9 @@ static void css_free_rwork_fn(struct work_struct *work) >> struct cgroup_subsys_state *parent = css->parent; >> int id = css->id; >> >> + if (ss->css_rstat_flush) >> + css_rstat_exit(css); >> + > > It should be safe to call this unguarded (see also my comment below at > css_rstat_flush()). 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. > >> ss->css_free(css); >> cgroup_idr_remove(&ss->css_idr, id); >> cgroup_put(cgrp); >> @@ -5477,11 +5472,8 @@ static void css_release_work_fn(struct work_struct *work) >> if (ss) { >> struct cgroup *parent_cgrp; >> >> - /* css release path */ >> - if (!list_empty(&css->rstat_css_node)) { >> + if (ss->css_rstat_flush) >> css_rstat_flush(css); >> - list_del_rcu(&css->rstat_css_node); >> - } > > Ditto. Same as mentioned above, there are cases where some css's belonging to a subsystem like "cpu" (via CONFIG_CGROUP_SCHED) can reach this code. > > These conditions -- css_is_cgroup(pos) and pos->ss->css_rstat_flush > should be invariant wrt pos in the split tree, right? It's a good point. Yes, I would say so. > It's a μoptimization but may be worth checking only once before > processing the update tree? Let me do that that in the next rev.