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 4219DC7114C for ; Thu, 29 Aug 2024 00:20:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C880E6B00B8; Wed, 28 Aug 2024 20:20:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C38246B00D7; Wed, 28 Aug 2024 20:20:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD7A26B00D8; Wed, 28 Aug 2024 20:20:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 8B65B6B00B8 for ; Wed, 28 Aug 2024 20:20:49 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 53D7A40282 for ; Thu, 29 Aug 2024 00:20:49 +0000 (UTC) X-FDA: 82503377418.07.4AF6745 Received: from out-171.mta0.migadu.com (out-171.mta0.migadu.com [91.218.175.171]) by imf25.hostedemail.com (Postfix) with ESMTP id 525CEA000C for ; Thu, 29 Aug 2024 00:20:47 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=wEfWSVSL; spf=pass (imf25.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.171 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=1724890758; 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=bLXGCrNct9jGqEI7ms61SYRJsNBSmqcaMgAuOY37bXA=; b=PZvggdMpZHpLJs+SG/e2CwnSRs+bNxqUVLCwAn2wdVAyj22IrKJzIt6EDxbYywhqrmb1FH p/fJ49kHKNw50yZCFiLZH6k5+OFSWbDrGUmIYlCrieCBDHuns3/4TqwX9qdaHS0Hj8Rl4j 6f0YTn6eTLlCaZGCsO7UQ85+GNxQuk4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724890759; a=rsa-sha256; cv=none; b=q8AnYMO4xg4GuV+WotO2yAhtgowhyh3JZWGCBAea5fOVbfsZjsFn4C/IFR+3VNabYWvtS/ 9MQ3vzj0ClAjF656ruR55rp2eHtyuXVdbD8aFzNMzGhwXRAt3llTrfUvIrtq99fCrGD3Ky nHQOqfWRy0JhoMp0hIlC6EMAI/A2bxc= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=wEfWSVSL; spf=pass (imf25.hostedemail.com: domain of shakeel.butt@linux.dev designates 91.218.175.171 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev Date: Wed, 28 Aug 2024 17:20:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1724890844; 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=bLXGCrNct9jGqEI7ms61SYRJsNBSmqcaMgAuOY37bXA=; b=wEfWSVSLfFpu7JERnDYNjiiIwW4JZQsCwl4xp8Syd1XmPU8IE/Irj0KslMKizlipQuShWx 5T8jRqwGe8wgiCwQsQa3Tl0rqCQb8+Wdw8Ylgxw8Ti0A1lTYqkbH2IJP+TmIQYE9fpQh2x 0WhlCBfkY/CW+AUV00RfKzHiTPlEfcY= 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: 7yjxzxau5u3bgf87qzy3damn67gofw3w X-Rspamd-Queue-Id: 525CEA000C X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1724890847-281710 X-HE-Meta: U2FsdGVkX19P9Aj8dfnBugY7GqnEbebuAXYeLxuCfXGAq1cJV1ZyFBRJcw0nBATmsVh3S94fGFqDoHBWxz/Z/pringcWFt6mkZj0zwqb2vsnT/ibvUzyqAeNrk5HMtv+g+ONPyxTxxThdUio/dpGNDQO0aAFgKybb6yFHAq+TnaGrBSgQqsmyXNSWIrG7jSv2egZG9lMRpxEe7ITm5PahKkMWnZkQX/l7llW2QUSGc4TCFgeJ8HrU6guyxW/eL9ZR4YnDEw1khS1JnUe6CXgIECmRAs+oA0dggUDIkom7PyzjDM7WgsmLPl2hwIegcFU+4NV5xCZ060WfObYIF0ESHLllNjdMAqA7/X2fspxdJ8F7vPWE3rkCbGIIhG2D9+oKSBHb6oY+NDqivmqlqX96hRJrQoSYk18gw0o26+O3xYz6DcIZONILO/p5NGp4zTV2UogzC7tIYhhiovphmMW3NWkYvD+MPdGMAwNmsO6gjV3foiBmzbpF0HYyuwbBmkSOpIpx3DEWyHfYqI/A8rfrMfGH4fWknYBiqCnGsSblSrHF0klG7J31Mp+6cwczUGkHEFhqlUTu/5WwAm1+4DJkh83JeupL9CA6DaLYlyPr9MdQ1oqnG2dIHEQw4FveN8ohx87JMOWVJcHvNVn5L7Y9LGJtQM57hQjLWr9Ex8lNdlAinVdAkd/darU7eDdF7KWlhBnaGw3FnI84s0nGNO43dmsDsaUs5ataebnZgVZjymBEl7M1VDPeplXeCkDA78hM3rN3BkJvM1A9E42wO8VGVIfSXLEjBOEfNVbIx8Kf5KkgWHYpPDpvfPdkUtJd/VuGBW+pr/ZP2B3RfPDZn4+ztLyxv+VNiDcJVhqTwK9L2/XCZyD6G4XgRYs0sf5YhiYuGtwVDQEy89SB8l4okll4M9E39o8XHL7a/ZtUIo2gXPL6rbqa940+TJD5ZZAJW7zMwVjIbTfClLXcsUbrvH V5CzdNXy f+uokIVRgECf4bPDbul8rHx9ibsgoaXLk1aeHcBRmI/YTkuBksUfujeXYW19UaPCliSaobCZfy6lfqKL8Lg/QHneHHTVpFHbisqaLAkMxd/ZKW2u1rESR2NCWiqphS2KC++vf70MzsMuWwwgfO+nQf/q3PE+5On0Das1adKdQBTdKL8MsV13uqN2n3SNVn7I7KkZ/t53YBbNTa1lNKcGfdoWpcbQT0HYIaBIyMup/e23LN6gRDFs+3E8Lpxop/zAlCtj/9hfn+gnd7jM= 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, Aug 28, 2024 at 04:25:30PM GMT, Yosry Ahmed wrote: > On Tue, Aug 27, 2024 at 4:52 PM Shakeel Butt wrote: > > [...] > > + > > + /* Ignore KMALLOC_NORMAL cache to avoid circular dependency. */ > > + if ((s->flags & KMALLOC_TYPE) == SLAB_KMALLOC) > > + return true; > > Taking a step back here, why do we need this? Which circular > dependency are we avoiding here? commit 494c1dfe855ec1f70f89552fce5eadf4a1717552 Author: Waiman Long Date: Mon Jun 28 19:37:38 2021 -0700 mm: memcg/slab: create a new set of kmalloc-cg- caches There are currently two problems in the way the objcg pointer array (memcg_data) in the page structure is being allocated and freed. On its allocation, it is possible that the allocated objcg pointer array comes from the same slab that requires memory accounting. If this happens, the slab will never become empty again as there is at least one object left (the obj_cgroup array) in the slab. When it is freed, the objcg pointer array object may be the last one in its slab and hence causes kfree() to be called again. With the right workload, the slab cache may be set up in a way that allows the recursive kfree() calling loop to nest deep enough to cause a kernel stack overflow and panic the system. ...