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 A8F7DC369CB for ; Wed, 23 Apr 2025 22:30:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BF636B0006; Wed, 23 Apr 2025 18:30:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 76D096B0007; Wed, 23 Apr 2025 18:30:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65BA86B0008; Wed, 23 Apr 2025 18:30:49 -0400 (EDT) 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 49C2D6B0006 for ; Wed, 23 Apr 2025 18:30:49 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 93A0F1C9252 for ; Wed, 23 Apr 2025 22:30:50 +0000 (UTC) X-FDA: 83366754660.25.D6FEB1B Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf01.hostedemail.com (Postfix) with ESMTP id D628B40004 for ; Wed, 23 Apr 2025 22:30:48 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=HrRV4qEm; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf01.hostedemail.com: domain of kuba@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=kuba@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745447449; a=rsa-sha256; cv=none; b=ff1Vs1uOmE6jJExKr0Yvjr2HI1rRKTXu790nisMouqU9m/6yICe0vW2Qt4SML1nz/XVSSl dFueb6dnmiNeltOT3iYDwMPdwyeuH/yG1+ZghP6gc3V/RSDisNxV1rLQEqMF2T7HBBSz7m qIesRumBWVXEE4LdN1Ha+mCB2IY9XW0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=HrRV4qEm; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf01.hostedemail.com: domain of kuba@kernel.org designates 172.234.252.31 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=1745447449; 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=+1PaD6mrMM+Ak2gPCsjsBas3qY8Dy0RGkiGc82BdjOM=; b=zOVS1WbGV/PqcrbeXk4YSUxpTaSsVJedEPmc6X5sHD/1+SXYDq9LADRMU0dVyjgLAGSik0 jt+iEPV+7w4DBcxrkDabHscM9wF3CRYmPwgZTfZv2wZ2+EcybYxiuKF45PhvQkQwWrRRqi edDBjjqQ/Z7xR0NNsj9wB9C8fqzjRO0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id E08EB49F10; Wed, 23 Apr 2025 22:30:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2E1FC4CEE2; Wed, 23 Apr 2025 22:30:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745447447; bh=v7uvC031KbxPygQ0Q81LLAIVu0y2fzp6RXRgtN9+ces=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=HrRV4qEm6Cum6fI3+/bCX5YNQAKLuTD927Q2pC/abmq7LAWalH9WkoEGZvSIU/kh3 S7dfEp4onAh4HJ6uLpqCPOOPpEH+7/W8e1MLo50qTkHIzGz/D0fUvrf6Y8jP4WKbjl bHw3fi2RMZhStqMTCmsvuPZ2Hmx9wVT1a7goTJk2e6HyLXSIpyi3shdN7mmM4QJg8z CjCuXWcr8WZOERehn2xkctPrjdLpoKCivbf0+u34uldkimkfjPgaISQ0J/Qki/LSA0 1kMQAGNrv26tHwdDS9IpulTnccD01AHMATiBSM5acU6uhDPAudunhyYoI6ivvlmqOd lM48p9wYIM5Jg== Date: Wed, 23 Apr 2025 15:30:46 -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: <20250423153046.54d135f2@kernel.org> In-Reply-To: References: <20250416180229.2902751-1-shakeel.butt@linux.dev> <20250422181022.308116c1@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: D628B40004 X-Stat-Signature: mcms8yq5fqadabnwgqaj7ajfzyckgn6k X-Rspam-User: X-HE-Tag: 1745447448-977970 X-HE-Meta: U2FsdGVkX1+u32ZVLtZnrcFyfmiwLi/L05eegTujeyhjCqYwZa5ZERgu4cl3tpvQN4BYojUfoQlSKSOPQOWgAUP/wTywRY6L9rARXtqgmxWm/S34MB8xpBU+bJRXEmvwygGjy6QVhbwnbuVUGrsctKCKlBlk6jSlLJUIQQpM6dBEGgcMtQ7yKhHVmkmBKRjtgjQodyPcYJPRTfQwTnRymi8Cgl6CRtiQIzNPNNGMveSZ8yBbjmvaDH2VaWPjXtq6kNNaJpl2fFajrRHRe3i3W8ygD8xm6IGizVCIP/mwQpkG5SxjZQjSw3m24Z6Tdg1kfkAYD40l8h+97WvasFUd1MJ4FWlw6AxVau1DIUg0wEdHaSZkOAIJdenAlP5ducvs8yXZoARCeDpHFTyRRh+KwCXpvRWmKonkOiDQIfvaXZdQPW5VsKVkdPrbBw9v2jFvbVbWCEMamRWjWytNMkh0cVjrFo3DRdoaFlsDrJJzxEw3d/ntGzbW8I7ynMCUVbudi2nmuXwfpgAR9tH6mMtp5vwB70QniAD59AMNaDEW0ODTatzY/aP8MxN+vw20Lnxrl5KgYmwGMZEP1y9WjN0b1GHwkpQGCjHnf3KbuFRPac7NONEEYU9o9XCLbrcLPN/TJjkyUdbwfwVRFvMqFwVotAF61QTiVvG/G81anxBrPGciPqkwdiBEynKd3BHAKogJRq0B5SPcGEwD/4w8Z4mWhuLu3cWnBavPR/9VbLTwWeugfiG2sLEtdBnYcpNUQI1nJx6IvfVIId0HtTJjJr+nxWsL2ETOESVwjbB9Kfo9gT1akOR1WdzCiw0WV0cytSzCsYuCsjHB04MxXuKzRmVo+uQl5ZE8h9Ht5uNfDEnaEJdGNq0MLYP7X5hs/eFXuB8TIijIWCmpTBqsj2YMsE0upp2MZGMBovF3aYr8/1GsfsMGCOehlquKrNyMCJZFV/VVY3c54oUV/90QCFWAcdL jXtGBXXg J2H5uqMOxE3QMvypVJI7ukFKi1jubH9mF/VjdpmanKgsBeV5vKKDi4qFIJoQsWUgQHxwEE1sjsqJmyfHMkCQRIegQGHefcQ3kFk954az8kNg8tcfOR3wbLCuAxbpDUG9pQOPwz+NsuiX8AW3bNdDNCCWT3mWJVTJwC16L4hB2TVjgjM+xGFznEtqkztS1Kfnc+OnFtnJyocX+DLlhZ3SgrW4FgHuip8b6TEUTNaZB9pbwzCRYocL5TKhbY7FWw48LRMzX 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, 23 Apr 2025 15:16:56 -0700 Shakeel Butt wrote: > > > - 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. No idea if this matters enough to deserve its own commit but basically I was wondering if that behavior change is a separate optimization. Previously we'd check if the cache was for the releasing cgroup and sum was over BATCH - drain its stock completely. Now we bypass looking at the cache if nr_pages > BATCH so the cgroup may retain some stock.