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 B2B19C369CB for ; Wed, 23 Apr 2025 22:17:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E76B6B000C; Wed, 23 Apr 2025 18:17:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 96D4F6B000D; Wed, 23 Apr 2025 18:17:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 812326B000E; Wed, 23 Apr 2025 18:17:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 647096B000C for ; Wed, 23 Apr 2025 18:17:11 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 698351605AA for ; Wed, 23 Apr 2025 22:17:11 +0000 (UTC) X-FDA: 83366720262.11.30A69F0 Received: from out-180.mta1.migadu.com (out-180.mta1.migadu.com [95.215.58.180]) by imf18.hostedemail.com (Postfix) with ESMTP id 8D8521C0002 for ; Wed, 23 Apr 2025 22:17:09 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=RswZ3qZu; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf18.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.180 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745446629; a=rsa-sha256; cv=none; b=jMy4NRjhqVYsBpalaHN4moU9bkk1rk0LcI8Wpyo0q3QFnmgrtBDbLl3nOT+g+I6bWYynzV wT0qxwO4iNTwICqvLXy18XDiREpUU/ntNkJmi0knI0E2dAGqeSgkzJAIZl5att1HAz0bEB 86/O5X2OJq+uVsxEhyXKciWQRyiqXjI= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=RswZ3qZu; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf18.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.180 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745446629; 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=r0Pugca4uCw8q3SU8l12BS7UQCUB0ByIynMRUd5StOU=; b=LiLTl0DeuMY/xzCvQht85pulrdkLHiuL7LeTB7UPdZpgaXiDZSB2VYwI1QH6OsAsT8lJyI lNnYciR+i4j6IVkZnfh37kwrdkKs2+x/lbm2vKNNu2QQ1ppwMxAg97ZSFmO/4PM1/052ab HhcoQc7AO/uLuV20yMZvKWgwLfg0Xw0= Date: Wed, 23 Apr 2025 15:16:56 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1745446625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=r0Pugca4uCw8q3SU8l12BS7UQCUB0ByIynMRUd5StOU=; b=RswZ3qZubhaGXoBHAYXa6YrNySCpNwcOXqbp5gTNYF0OU+2jqfcWS0YtXQLS0dsldUPu7A 7JMFUnvbgAqR1gkJK1wgITJqNxDU/z3lAyOYg/IxNcuUYL8qSWCFvi7Np82V8FL6TOrbrM bR6zTCcS+EAfqwhnSYyhnbdOR3CNxRY= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Jakub Kicinski 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: References: <20250416180229.2902751-1-shakeel.butt@linux.dev> <20250422181022.308116c1@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250422181022.308116c1@kernel.org> X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Rspamd-Queue-Id: 8D8521C0002 X-Rspamd-Server: rspam04 X-Stat-Signature: 6p51dm6datiau64m8nq8bheiq8w7648x X-HE-Tag: 1745446629-818232 X-HE-Meta: U2FsdGVkX18w6/7bb0yr800qTw6aLxjUTjFtLzM/FRlBrbgecvzioegc09uPTlWxfu+pEJCtNrFCsLVP6h5MWkRZurFbD6bwPNrwl3NIuEghwXsNYSTeQZuJMGfFlVXgqSYmnU2sTfOvEVRSYzfKy7Pxc62y95nJiTk4ByQKIKheWEOk8+NexFEgQS/1x0u2ymTzX19fHVG6BhcnAkbexuzMSyEUDRpDVZgc4IsaQhOWIoH25TZn28huDTqEAY8oqAPKw3/jEREa+zqAl8TETEzwTXLmX/5Z+hEAiBv/ZMyyTg2HjxVAtbmWM7umlJNFwgreesRQsC6AtV0S7pa7Rr1GTqF5ArYkpBN4S0mooYX32GWKT+2idJJeBOUlOmXP0LivAPaBpa9j2EvQKvzKpxH9ErOfFi58kruEnFdqgl2E7NeX7quNQ14dsHFTlk9WcaJ+t6vzzlyb8A8CDUUnPXJf96//DEucUy1jX8qiXLfr+2G+jUIbX5czKoIirUZvAxnl/Wy4TqPza/VFbfVKO+G5rmc3cf7+lk5jBUXGdfv1e48OKlmza1y7J2k0NlfUQPk78uxhrXmeD5u7n4aO9uz1V8XBZhoX4jvbQShHtZyfRbF37AKc6+pY+9D1HWGc09vDZmrfZvQGqtsPVIdkzqQ9hx0Hd+U8OOeexzbcMqhrlUDYxu7oeIpnihD0DawLxr7QIGXaB/9sTFRGoDMqa+VPX5MQcfRsTDGBxQayJtloLfOXuy3Bdl+pPAJhUzHOWZrmST3YH3HFjn3Nc2vSggviIBy1kBafxBCpqaQEno31EpWMk1FzTRZYsx6xlg14Rb+ENRotH7ZWnIgB9xIvMWhcN2WbgGH+L5fOMssecRH+GLa8vxOEHjB8cRypi7YSFl23uTONw4qfjMfCcAeLaGTzROVHAR9q53d0unOSqk7zu3joPw4BJ5T7FwyETRyAvTJcgcSoBYQ+j+n8AdS /+FLy22V ATjDGkT6cPnd4cnglJcB3D2PncVM3kNUGgmIG36VKj/UGZli0j16RyJswaeYU6g3+hhmthhkL2285ZCfxYjkiO+mHTPLmaC0Ij2owK0QiprFt7pnFrJ8+NdcpoTXitNTQ+aUfXXm+lLPJxJuPk1PtNrtjJ2IQrT4kLyVtrdHuimh7c8PtJd5Uga2rz23G6h/2oGcJiJCmpYp15iE= 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: Hi Jakub, On Tue, Apr 22, 2025 at 06:10:22PM -0700, Jakub Kicinski wrote: > 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' > We actually never put more than MEMCG_CHARGE_BATCH in the cache and thus we can use u8 as type here. Though we may increase the batch size in future, so I should put a BUILD_BUG_ON somewhere here. > > memcg_uncharge(memcg, nr_pages); > > return; > > } > > nits notwithstanding: > > Acked-by: Jakub Kicinski Thanks a lot for the review.