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 AB127C369C2 for ; Wed, 23 Apr 2025 01:10:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33E776B0005; Tue, 22 Apr 2025 21:10:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EB0D6B0007; Tue, 22 Apr 2025 21:10:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1DB6B6B0008; Tue, 22 Apr 2025 21:10:27 -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 003BD6B0005 for ; Tue, 22 Apr 2025 21:10:26 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 172D61D1749 for ; Wed, 23 Apr 2025 01:10:27 +0000 (UTC) X-FDA: 83363528094.20.8299C70 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf12.hostedemail.com (Postfix) with ESMTP id 77EF240007 for ; Wed, 23 Apr 2025 01:10:25 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=X4j68ywu; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of kuba@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=kuba@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745370625; a=rsa-sha256; cv=none; b=M+kVvgIXbxff+qvg+lfaEV69YjK5BAU69lXfQkYfSOt5hJwkqdxtHBtH9siUH+0au4hqr1 zKnwArevc8TIShwSwPckL/CYpSYwl4Tqmxse0JeiE7S3yJ6cQVMb/NvzNdRJq4vpLfGEw9 on/rTAbCi1glfQ+g3M3wiBPFd6JvrSM= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=X4j68ywu; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of kuba@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=kuba@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745370625; 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=CEz7uzcpq7WQHNDtdUIRjNmnBUUMeXhFvoyfVBLsA2U=; b=cVrlDkdmDmjEzRS6J3RKPqcPA6xQSCO4tiDEIjerXUer3TSxiJ2f8Y+FZwRtqUX8wICIGP 9BfFeAyEOCGsy+RBEbOsDyfIefKtP1lQXz13ZJw8tyrGZdkC1WI+yF0/hGI3URTtWPoLu+ PyECzMt1ybrtTmrvzigDEswhkbOi6K8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 741A95C5736; Wed, 23 Apr 2025 01:08:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F11EC4CEE9; Wed, 23 Apr 2025 01:10:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745370624; bh=sjPUyN4F/YaLRPmL3I2xyElWDgsGew8KjWR4AzAnMJU=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=X4j68ywuYSRMjIZ4uPsLtTCTyphXRs4hb6s2H+9sm+Lerq7r5BeXgCrRUwpKuaZXd NCzUKd/DqznGMuX/3I+yj/EHefLowhjmjVXRie2Z4Hj9N+LxJaMrXN+LsNWMVZdXyh rfrOvPOhRTzuNkKHYHxO0AiQGOcqZxuYVUDGrOZGcUbxTCY0jXIRBkZW98TIiyXm+a qvY91vYxzTDJOsgvaPnICQg3MncgTs4Xf86av15xJadSbTD9GYZ0Suifr1VyOaSG73 Rkd9HalVLjcfOOXzP3a/2IddJNngepg7rJb1eO67Qka5OAcghbN1uWHTDUf9wCMNBo gtSAlRYs4PIrQ== Date: Tue, 22 Apr 2025 18:10:22 -0700 From: Jakub Kicinski To: Shakeel Butt Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Vlastimil Babka , Eric Dumazet , Soheil Hassas Yeganeh , linux-mm@kvack.org, cgroups@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Subject: Re: [PATCH] memcg: multi-memcg percpu charge cache Message-ID: <20250422181022.308116c1@kernel.org> In-Reply-To: <20250416180229.2902751-1-shakeel.butt@linux.dev> References: <20250416180229.2902751-1-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 77EF240007 X-Stat-Signature: au7fdj1he4wnmgtj1ray9334uz466kbr X-HE-Tag: 1745370625-564900 X-HE-Meta: U2FsdGVkX18J+GaapwS0H5b490XO7heafAwLdWBIS2vACqi7pugB210JsAQl+hCSq74R5lkO62X6YOCeomKFMFLG6iHxf4uHZDQ7+quT3lAmaL+rMSd23c64G9vUAo68MsW/HBjfIjA7t1x0aCXc5EFw0oilbM3O2LdWausp9e28uaCOEvNzDJHsOCJvtZ/UN6dgD6g3qIsEHhCHDu4dL1UFmJDtPMkE3AoUxpfVxtExK04UT5b96TEt6Sh8P84f7hwcEOMDJJOgrQ2MLkDQc391TPr9a1B0nMFy2XdodVbOc5JYdr8dYW9ScT+5TRwzcLGPoIaplx7RNgXiti+kpvYmCRIyX+xCWkNbcgTgBxBRZwwdtc/Zwnb+B1uySad7ZLihdjUHDDXr9DYIFBSn+SQh2/hS7kyh8sg4YTHbOkvTICBdMu4a62l3vT9xwW8d5TRhBEIc6rqSj5qWFj40ZPjJ3STuPnBhgKmihlErCAzIONoH52JqzKI+98TfYQOO8wuAMD39asmpameaBmtOdoKBeMDEexN+6X1P4fomVrCFdU15x9JKs+FQKZa/MZuqDSGE/jZetJ3DZfWNpXSnyv0RLhDjREYrIzQY8+lXgomu0MSzNXdmAPEUDTL08vWTNNTElx4O+8jAeaDfQq3rwhWUHZywyGOGN4ghMIMvP6b1jl9PBkA7YlDZlO8flKlRfnXFvVxryOVcxoJA4RX/AA0lHLq+rOLkNTuNOeU6G6GVNSr2IgQ7SI2TMHI7cAhxSnJq+3mg/RrpaxJzy0hFcd3Oh7bvxY1nqapkmFogbcHMmbyVdnAqN1xJQJzq8cLDKzkdI3wZBdHXgxO0TZnIhhavyBYXZH4Th3dWR3ViceISnuEKnnspYfJw2+l8phk1qKCqRUnRTxrSQlZbdtRxBqW8kxQkN6MAPEqhlV8PXMI384w3ZskxMtDeUMFLkgBhVCuSMCebZA3NhDWQy7Y EnxLi4qB OTwSs1ZoFkJqr7Nfwq4UhDp4hB4dlf+EZucRw2EQ/h962IgwUwY+y+l7YyCF9BCK5WzsomrhILmBdYm57GkUrUEy3MuDTqYdL5E97LTtCsvzILje3XQUVT3oof4MhgYuPMIeYnUstkA3zNml+WVN6AzWFuEJMA1hnXwpOhRuWp6USxP4d1GRKpa9SuR7kYl6bsiejqZeKv0tBX5R/xUhfCDGD3XoUSuD2+Siclqxeu0aiRcbJiqnilLaR8xpE6c4J28gegqLHQCyvzrwZmroTXlnFXQ== 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 Wed, 16 Apr 2025 11:02:29 -0700 Shakeel Butt wrote: > static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages) > { > struct memcg_stock_pcp *stock; > - unsigned int stock_pages; > + struct mem_cgroup *cached; > + uint8_t stock_pages; Is it okay to use uintX_t now? > unsigned long flags; > + bool evict = true; > + int i; > > VM_WARN_ON_ONCE(mem_cgroup_is_root(memcg)); > > - if (!local_trylock_irqsave(&memcg_stock.stock_lock, flags)) { > + if (nr_pages > MEMCG_CHARGE_BATCH || > + !local_trylock_irqsave(&memcg_stock.stock_lock, flags)) { > /* > - * In case of unlikely failure to lock percpu stock_lock > - * uncharge memcg directly. > + * In case of larger than batch refill or unlikely failure to > + * lock the percpu stock_lock, uncharge memcg directly. > */ We're bypassing the cache for > CHARGE_BATCH because the u8 math may overflow? Could be useful to refocus the comment on the 'why' > memcg_uncharge(memcg, nr_pages); > return; > } nits notwithstanding: Acked-by: Jakub Kicinski Thanks!