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 B65AFC636F0 for ; Wed, 28 Aug 2024 19:14:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2F8416B0085; Wed, 28 Aug 2024 15:14:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2A8F96B0088; Wed, 28 Aug 2024 15:14:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 16FEA6B0089; Wed, 28 Aug 2024 15:14:42 -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 EC27E6B0085 for ; Wed, 28 Aug 2024 15:14:41 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A53D21C0569 for ; Wed, 28 Aug 2024 19:14:41 +0000 (UTC) X-FDA: 82502605962.04.7129412 Received: from out-177.mta1.migadu.com (out-177.mta1.migadu.com [95.215.58.177]) by imf01.hostedemail.com (Postfix) with ESMTP id BD1754001D for ; Wed, 28 Aug 2024 19:14:39 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=RQzxnD0r; spf=pass (imf01.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.177 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724872435; a=rsa-sha256; cv=none; b=3jn7CljShXhgatA2LPwT/oO+ykZLcWumUnoQi0ugAVVVba1XnQsGfixZgd0nv+AGxADAH3 9NpHVpmHz2/oLRBLbUzZj3BzbBnR6++jG73H8KziAUUleD3vdEAipcZA5gtnMIo+KYs8fQ vsvHqI0AGXX7zSpR2BM60IG+CK0qiG8= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=RQzxnD0r; spf=pass (imf01.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.177 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724872435; 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=qpXQCd3cHPTc7+LnUSfvlOIjwY7yTBbxtN2+2WagTe8=; b=UpiVoUUqhwTrfmI2Ew5Du8j/eCuXwAUfRJVSqHz80lP3y9/qYS0jpQHTaLRkwO93YrVkpc Bz6Dr0eiNfBmi5lerHVz7+ptccint++Bg5wecDDcTRxFeXP/Ts46hXBl51v248TUJuF/N8 uq3Dw236ihWBKCQSHB5GyqgYbWasYMk= Date: Wed, 28 Aug 2024 12:14:30 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1724872478; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qpXQCd3cHPTc7+LnUSfvlOIjwY7yTBbxtN2+2WagTe8=; b=RQzxnD0rb7twgkRCrNnll66J54fVZJ/zkE8FG8tk6sw1QrFo+IihvKWDjlADxsInTIF+x+ pz2MmMCUOBTlwuY6bU+BtcedaZx35+WTF5tVuWxMih8mtqK8NEAOffRMyh5ErahNz6Ajet CGO3G6oZMU+7J/7M554Vcg5deIgtHHQ= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Yosry Ahmed Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Vlastimil Babka , David Rientjes , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Eric Dumazet , "David S . Miller" , Jakub Kicinski , Paolo Abeni , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Meta kernel team , cgroups@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH v2] memcg: add charging of already allocated slab objects Message-ID: References: <20240827235228.1591842-1-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Stat-Signature: ha8sw19h4p6ip9jzub4u9j3tddsf1qqj X-Rspamd-Queue-Id: BD1754001D X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1724872479-254636 X-HE-Meta: U2FsdGVkX1+V890zqFvxHj/TaJO+nkOQBEd+DDhg6zxUUWxO+IjrZhQQqIj4m9HGkcnI9sdckTo6W2OzX1g9mtKHO08UdzHgg8XyEhusA242+0rzsdM/f+gSVUVmlfGzAR9AkVcfEQ9tm9wfM5t5KhSNaggaPSVb4v/y0UKeBJ656MqqcoTo2qfOblAjkTiZGh9ipaRSBsAzN2PXtoylSxQuCLzehxs50fda8HU0Rxa3/T+NZt1Y8XZrHCjooLgYtWP2TY7PifJrPQhRc6cP8eRG7fmQ7p/FvOGOsQ53ynJPVTMCntzhfXgJfbjXyHLTdHBjBPDx6WAAIvt6hH7u9n/Qt23rCf/pd8YweDo/NxEetlFW2LWCG+/xhgaCVHchYjDeBcguQtDtftf29ONWVqHtSQMDGru53mmn0Q+RCGYeZL3hU9DVO/Rh+NqV/ax9IxovrlfsHzuV3zvMv0rymxSYhftJ40x41C47nWqzs9ltksUu3sklEh0UBjkU0mvP6tj4/tl4MGrXG2WVrtlioF4nQNPdw1AVZuHAUIMMppCVAks4WRoNecfKo0d/cSF2YgDgGTnfMimwv0RgK2WpcfX7J/zcoq13X3OXw8njvYW4RCGgxavpEg2LdGUdLtR75knT7SU1tsA6lBSfpyEeWDhfTL/NIw/UObDfBHgstRyxbarf2zzzN4FTZK5PddTChwqTNZ6VXThkCAwGfIYWoHUCbwnh1MgboQtYfxr1bFChLBFrklbO61D6Bno/B3TiifAhW5TeBJJu9OA2L8V+suCGM0P2TLoQ3nz5m4PbS+RgzWh1dnpMnx3+OXuasig/cbQ4QBOarleYvt2vnzL7/8R0CwudyySFdDyUlnxvVykM3nA53rUn5XzVUphiQZuxuv/kGnuL8HyRAZ40sokIfP8w6pHVVHNJKdd97/C/3VBZcuN7NqvcedU25TqY21pu5QiBdxEGLMQ18mFDriV B1VnH+Q/ kVaaNObm1uiUddPq1vONtq/oni9GdCnebAkYtK+opfHwmEXfrlASNvtlILKn5iLkiYQzGiuTHU+61bdYwHTyFvWRrBh5lPlp2axc5NS3S2uxIHwExrxAROqGSTYupAIXDRVcls2mDJH3BQSTaeleLjAJioCva1z8sNks2Br/v96RVEL1RkVvRa8TKNkEZlpHO0Z7YkIFctreKkLccszhN+f3wp1o1lZF3kQVqoIy9rIJOlISqphZJdCIQOA== 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 Tue, Aug 27, 2024 at 05:34:24PM GMT, Yosry Ahmed wrote: > On Tue, Aug 27, 2024 at 4:52 PM Shakeel Butt wrote: [...] > > + > > +#define KMALLOC_TYPE (SLAB_KMALLOC | SLAB_CACHE_DMA | \ > > + SLAB_ACCOUNT | SLAB_RECLAIM_ACCOUNT) > > + > > +static __fastpath_inline > > +bool memcg_slab_post_charge(void *p, gfp_t flags) > > +{ > > + struct slabobj_ext *slab_exts; > > + struct kmem_cache *s; > > + struct folio *folio; > > + struct slab *slab; > > + unsigned long off; > > + > > + folio = virt_to_folio(p); > > + if (!folio_test_slab(folio)) { > > + return __memcg_kmem_charge_page(folio_page(folio, 0), flags, > > + folio_order(folio)) == 0; > > Will this charge the folio again if it was already charged? It seems > like we avoid this for already charged slab objects below but not > here. > Thanks for catchig this. It's an easy fix and will do in v3. > > + } > > + > > + slab = folio_slab(folio); > > + s = slab->slab_cache; > > + > > + /* Ignore KMALLOC_NORMAL cache to avoid circular dependency. */ > > + if ((s->flags & KMALLOC_TYPE) == SLAB_KMALLOC) > > + return true; > > Would it be clearer to check if the slab cache is one of > kmalloc_caches[KMALLOC_NORMAL]? This should be doable by comparing the > address of the slab cache with the addresses of > kmalloc_cache[KMALLOC_NORMAL] (perhaps in a helper). I need to refer > to your reply to Roman to understand why this works. > Do you mean looping over kmalloc_caches[KMALLOC_NORMAL] and comparing the given slab cache address? Nah man why do long loop of pointer comparisons when we can simply check the flag of the given kmem cache. Also this array will increase with the recent proposed random kmalloc caches. Thanks, Shakeel