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 847B5CDB47E for ; Wed, 18 Oct 2023 07:44:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E335C6B007B; Wed, 18 Oct 2023 03:44:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DBC6D6B0080; Wed, 18 Oct 2023 03:44:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C5CC96B0088; Wed, 18 Oct 2023 03:44:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B6C0D6B007B for ; Wed, 18 Oct 2023 03:44:40 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 82E591412A3 for ; Wed, 18 Oct 2023 07:44:40 +0000 (UTC) X-FDA: 81357795120.11.886E4D4 Received: from out-206.mta1.migadu.com (out-206.mta1.migadu.com [95.215.58.206]) by imf07.hostedemail.com (Postfix) with ESMTP id 9D1F24001C for ; Wed, 18 Oct 2023 07:44:37 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=AnzxZLNE; spf=pass (imf07.hostedemail.com: domain of chengming.zhou@linux.dev designates 95.215.58.206 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697615077; a=rsa-sha256; cv=none; b=YdH+IzjxrsTCc1OgrJ+NArGH2iE8gdYd94vdSSyOK1ViM9sEr9zic15RowhmBSwvWvX8yO 7UjJkCYk58JvACILWsiAkpnu/oNgedJiSVAV1J3Q4jDGsjYh4faT+Bz16qy/jsenCOWMF3 EG8qi00aEJSZof1ZQH5BeNaMr6ZyqUs= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=AnzxZLNE; spf=pass (imf07.hostedemail.com: domain of chengming.zhou@linux.dev designates 95.215.58.206 as permitted sender) smtp.mailfrom=chengming.zhou@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=1697615077; 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=9bMgqpjKJctONHZa51iGAlmtZ2Iy4OZNrzOKRecYBwM=; b=bNkEL/e7/iGGRCu8VpHEsTlCtIsWwktOKFMIGwhE8cH2K0lGYkScaEpPZ4EUsSeIHy6TGU Gtd/t4Bjp2hY4bb/W/J3oyzQPcXCrrckWjCDs+7oI0nvFKmvfnrcgKydI7sm8bpso+s8bo rm1kaXV4qlCqheg8xpnV/EOrOl6OUPM= Message-ID: <8cff8994-28a3-4a7e-8a6e-217c4da49ca1@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1697615075; 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=9bMgqpjKJctONHZa51iGAlmtZ2Iy4OZNrzOKRecYBwM=; b=AnzxZLNEyZMWE71XrW9O12ISDXjmlBUDBvfft5mO1leMCK6hyuSW9SjQbr3rfOVLx+/VHp /VwVvNQQHyuHoJsRBXYoRfHR2Hub1OckrJ7JYlt8KHNYFHVKN1gQoXTp3n3vwhLyADfFSn QUxmRIuvnWh0LC1Bi/3Rr7/q3kJcsKA= Date: Wed, 18 Oct 2023 15:44:29 +0800 MIME-Version: 1.0 Subject: Re: [RFC PATCH 0/5] slub: Delay freezing of CPU partial slabs Content-Language: en-US To: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, vbabka@suse.cz, roman.gushchin@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Chengming Zhou References: <20231017154439.3036608-1-chengming.zhou@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Chengming Zhou In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 9D1F24001C X-Stat-Signature: fdaegkonkjan1zxayfhcuhkxymrui4su X-Rspam-User: X-HE-Tag: 1697615077-778749 X-HE-Meta: U2FsdGVkX19dC0o7BBNsyxugY8cEFkAk4EiZcm9UQPQoI95kG1c/ah2wCfALWHJsKa6SNZ5pFNpUykspDE/bb0ZNphyJq1mqtc1maAUxllWmuHPrU1HAZZ0oBOZW6IpgsM2wrycIzfp8NoTwQOJC7qxmiTLLjuxd4nAJimRzywzmKsd4j3g4F3+NBwWSlGzTItmA/YE1ySQPSIZy4VGRo7vgMDzh8mGoSjSHfqJ1gkAr3efv0hpSFFrGp5GDwxm0iKmYc9neZXyigo/W3x6n9httBA1dYGlFmSM7pyRUl50+i/4NZF9Vq1oH5y6Ir3m8y/SPEWfniKSZseLHQUW1QWTqSLPCrJwgk+eJX1rnCeUNroJYA12lBLbZJ3Grc9ZVzRTE1998k2Cs7f3nBpHOXIAqLKK64hvyzpzywNnLvzgvYEe9+Y1Mm/dnFYqMrx8GWHJ5SAbhye2GI60K7ZiFXf2j/0XwSJnw1Jtg0f8ioF5whlMUxYKhZwzpqNQdN5XI2qG/peTWppl9tfHgaK8pa65LL5LERRhGg7f+ZxWx6aiE3gh9FudZC/TnAybEOx//RPlTVwYEvPrWu5LCzkd7na7LzktMSHVV3uyxdpMOn0Iqc+I3ZOFLrLVtoWxWapFMbKOKDFyFtx3chKrt2jrwioFovV/IiTnJjYfw78RPQ76r7GO/L/HUNniMceVocl0QGpB/WKsKFvTAfAfYLqeF2FIBoQ+KogGQuLpCj81/Y+AwmjWJawDYo+cNGccWTiVPcpgWn8gKVdKnvnjawpfykjGqeNnN0oaaoW+w6pZu/pjxozfT5BS1oEiVkE2CbnZeQuleo1SErFylqzhxBw7h86i1XR8ZtAOJ/b+mgMrv31Qb46OwutedWmFTC3KqbYlVRHdr2dKmvDmmvueyhmQFID6AsR3sHohj7z8x7DIlTX9O9Kptscw0NoyMJ3Rf62xLhrsZDZweIbQ5l+9GTXh Mh6uLO3R zaa1lJAjsqTlPb+ASOveF1T2vYSBibOihQVNAZ57MgW2Oy7UbnuLTl6CxnxhNXzOCBxG+q0AK349aUpLBf4x+4Mcwmy5yOA6eDdtF8+tII2Vwh5EVf6q7I2DI4fYCSx+zWbCmHKWsFX59AQh+dvKB+ZzMvnezRuNaXs1x4kMIC6NGD0hWTzOzYR/r3/pxVULnlC7dAPkxzEvMvBjp+6+cvquYADQSIZM6KwfF 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: On 2023/10/18 14:34, Hyeonggon Yoo wrote: > On Wed, Oct 18, 2023 at 12:45 AM wrote: >> 4. Testing >> ========== >> We just did some simple testing on a server with 128 CPUs (2 nodes) to >> compare performance for now. >> >> - perf bench sched messaging -g 5 -t -l 100000 >> baseline RFC >> 7.042s 6.966s >> 7.022s 7.045s >> 7.054s 6.985s >> >> - stress-ng --rawpkt 128 --rawpkt-ops 100000000 >> baseline RFC >> 2.42s 2.15s >> 2.45s 2.16s >> 2.44s 2.17s >> >> It shows above there is about 10% improvement on stress-ng rawpkt >> testcase, although no much improvement on perf sched bench testcase. >> >> Thanks for any comment and code review! > > Hi Chengming, this is the kerneltesting.org test report for your patch series. > > I applied this series on my slab-experimental tree [1] for testing, > and I observed several kernel panics [2] [3] [4] on kernels without > CONFIG_SLUB_CPU_PARTIAL. > > To verify that this series caused kernel panics, I tested before and after > applying it on Vlastimil's slab/for-next and yeah, this series was the cause. > > System is deadlocked on memory and the OOM-killer says there is a > huge amount of slab memory. So maybe there is a memory leak or it makes > slab memory grow unboundedly? Thanks for the testing! I can reproduce the OOM locally without CONFIG_SLUB_CPU_PARTIAL. I made a quick fix below (will need to get another better fix). The root cause is in patch-4, which wrongly put some partial slabs onto the CPU partial list even without CONFIG_SLUB_CPU_PARTIAL. So these partial slabs are leaked. diff --git a/mm/slub.c b/mm/slub.c index d58eaf8447fd..b7ba6c008122 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2339,12 +2339,12 @@ static void *get_partial_node(struct kmem_cache *s, struct kmem_cache_node *n, } } +#ifdef CONFIG_SLUB_CPU_PARTIAL remove_partial(n, slab); put_cpu_partial(s, slab, 0); stat(s, CPU_PARTIAL_NODE); partial_slabs++; -#ifdef CONFIG_SLUB_CPU_PARTIAL if (!kmem_cache_has_cpu_partial(s) || partial_slabs > s->cpu_partial_slabs / 2) break; > > [1] https://git.kerneltesting.org/slab-experimental/ > [2] https://lava.kerneltesting.org/scheduler/job/127#bottom > [3] https://lava.kerneltesting.org/scheduler/job/131#bottom > [4] https://lava.kerneltesting.org/scheduler/job/134#bottom > >> >> Chengming Zhou (5): >> slub: Introduce on_partial() >> slub: Don't manipulate slab list when used by cpu >> slub: Optimize deactivate_slab() >> slub: Don't freeze slabs for cpu partial >> slub: Introduce get_cpu_partial() >> >> mm/slab.h | 2 +- >> mm/slub.c | 257 +++++++++++++++++++++++++++++++----------------------- >> 2 files changed, 150 insertions(+), 109 deletions(-) >> >> -- >> 2.40.1 >>