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 6C6BFC5475B for ; Fri, 1 Mar 2024 15:47:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B903E6B007B; Fri, 1 Mar 2024 10:47:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B3F736B007D; Fri, 1 Mar 2024 10:47:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A07F06B007E; Fri, 1 Mar 2024 10:47:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 8FAEC6B007B for ; Fri, 1 Mar 2024 10:47:02 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 48779140544 for ; Fri, 1 Mar 2024 15:47:02 +0000 (UTC) X-FDA: 81848898684.27.1F24048 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf22.hostedemail.com (Postfix) with ESMTP id A812FC0025 for ; Fri, 1 Mar 2024 15:46:59 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=OC0qNVoZ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="jyC/HNgI"; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=RTnMNSFG; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=dU4opQGH; dmarc=none; spf=pass (imf22.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709308020; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=XlsPmO0fYs6SV3Rau9KRVldMtwtUf8pufWAUkARxZXc=; b=tBhMhDIhcbri52oCbFL8y05F4SoKX1HnK7Nq4INb1XCR/LjUos0bGOVV4jtRTsCBJE3hms u/hKadgI7yUPyPxaCM8t/UAdDgjyc162QxvZIN+2wq8ZbcRjCutGO1MAJawmM3plMf1RqX rK+6tKidDsE2T8Bx/0kvshI+S6IRRjM= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=OC0qNVoZ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="jyC/HNgI"; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=RTnMNSFG; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=dU4opQGH; dmarc=none; spf=pass (imf22.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709308020; a=rsa-sha256; cv=none; b=a1ewB6B+bG06sJ2LMvYjLOjdf8mXBT2Ph/+Cm0MtR/inNbZFlpTmykb8xNuG8uixBP0Lc5 la1GvLCLsavHzFVnxuoe5Emis2B32XJ4IxmENnUgmM5yQl7zxXoOPgMgaKYhE/xPiZma8L i21ELRRTu4D8+Gm3euf+z5i8gW5E5Qk= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 82F3E33C1D; Fri, 1 Mar 2024 15:46:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1709308017; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XlsPmO0fYs6SV3Rau9KRVldMtwtUf8pufWAUkARxZXc=; b=OC0qNVoZ+k9G46etcUxkDUZR0vndVc6ZWhzmyZh35km3jWHLlxNcWjeRQN5wA1WT/cYjKT VoO35WagYG+I2iGwrrHhbWFfynDoaqGi4QP5G5rXvTaRGUCMSZGFPRkL/6kzBM36j4kbyQ PoFb3GEq2FIjte1iB0qJTPRUe90FZ48= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1709308017; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XlsPmO0fYs6SV3Rau9KRVldMtwtUf8pufWAUkARxZXc=; b=jyC/HNgItckgoR/hI5xTj/QUOoG9qu3++IWRcOxopMjHrTmZb2oK4O1k1YT1kD6v6ThI8J UG2oNPl/h0nxnUBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1709308015; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XlsPmO0fYs6SV3Rau9KRVldMtwtUf8pufWAUkARxZXc=; b=RTnMNSFGIC3SZNc48wg1ezIQpnd5FM703bbBzlXGQt7a1Su3o7ITdIxV22cho5GvEKnvL4 qAFbxIfW7cw2JMp+3cXKzhDq0eYk9Cfn8OlUzFWZX21D+8jdlO/vgiwiZUsvxfk4VdM74M JE5allTLXG9yGgYaOAn1/3h0gLrfpsU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1709308015; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XlsPmO0fYs6SV3Rau9KRVldMtwtUf8pufWAUkARxZXc=; b=dU4opQGHMtCz9ljRUmzqo3IGUzMT0LBKW13pODYCPdTnjpr2uTT3Znm/dBzY3g1CjJ17BY fkQWOuZzB4IonEAw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6920113A80; Fri, 1 Mar 2024 15:46:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id T349GW/44WXvAwAAD6G6ig (envelope-from ); Fri, 01 Mar 2024 15:46:55 +0000 Message-ID: Date: Fri, 1 Mar 2024 16:46:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/slab: Fix a kmemleak in kmem_cache_destroy() To: Xiaolei Wang , cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240228030408.2740647-1-xiaolei.wang@windriver.com> Content-Language: en-US From: Vlastimil Babka In-Reply-To: <20240228030408.2740647-1-xiaolei.wang@windriver.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: A812FC0025 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: wabq6wydmda9zhbpbnq8b5bgyk94yuty X-HE-Tag: 1709308019-158856 X-HE-Meta: U2FsdGVkX182LIPgTfxHXt7aBflxySsghLKtzTno6fwDzV2eHJmGEko0UK1yV4aIFmR1RQ4plXCX3qg3WR6i74jOETFRgM+mfSdXgkC8ZrnTm71O1ot/8Ni3rierXDULCAUjR2o/N18ds7l2Xb/+khwFHvuxBOjwZICh8Sqk9pjWHQsfnGo1r74I1gFtBmOjkMgT0daoPELGDW0FM4EBs1Pa+j2CMYvCN7SCeWKT1ZhiqmG00kcSILstGQrn1uO4pqZxaBFn7nWwJyDoSDQYJ+qM3nGLxIaY0NWMrKsZTy7mXgLOZuaJxHGf20t2et06L56znNi5/mwHRx4uCuI/ZpvA+OaeoOcLCY+DIs16P7e1kRmHPr3R1A8HZtoAuwBCerdscLaE8xFAuBs1/4+RKXW2wvFE2IEKAdJUnZHp5lm85yu6FFEoCLKTmCfCqKXbsxbg/shCTeSsxrCYKo2IEJrZji2evguDHNnObtLOTlY7km0aWvRP9YBdBl9x5FGFItphvqWEI3dAtRcbWbJkVD6mz6MMw7xl+kkDHWvnvSzcPGeBuTCH7UtPhirnxVIqRo4Q77C0ulkqqjebYW4GhyO5wzYcDv1KSM9WRXQ24vBbNWhKTSUlGbC92VwBz8ORoOwtToGGenJt4f1zIsbgWUFbmJ4DD+qEuz/CLhOW/VkdWJuaIalnGOxzQoV+a0A0vazz1AJ1aQA4CfYcb8AIVMKy3Kq0c/PhjzbVCu+2tdZhlMS1d8wK8cYqi37M80+gOYKq3QaJlxR4gDoL8T7QwvrFloUrwD/r+OmUATUeWY/STnTePpCnPaiPx4/N2G1eg7N5GMVHIxJMgtgh1eFqiqW7/N+NG7RNMDaMHGRsBvBbo7FouxDOm6ho6h+ij2hGZvDVu/LUfCRKuB1S0mq++zuUELSlW1vyNwGXgDuRpDCmgX7kVIQSwefjQMCOTJ0Bg2FAKk85oD3LShpUy9P U+DsHAIv K5TIQZ8Fe0Dt3hWsTev+cxG66wLiWi4VkKlGVp8ECNN/m56RP/8gAEFw4RjnUhBNy37VeyngHlv5Q0vr106SA9hMuDyxr8E3xUhUXfBwH3xi3SemMKA23G8jlaUOJ4aO/TctLFxwWD0FHe9eu4UHxEfzEEBhipbrFHOQehFyvIpV1yG9UVgBzd03JPfno2zCMA/GTbYLCBZFrRE4GXTMYMbjQMlUFsi1KRMI1TF701XoGnBxFlvGT2NjIpV0CUOBiktUSk2o+lXszOUiwZNyRfmABJRVUeFYnm/75kQ3GKOfwz+04wMwBzgIAYnoCpCq52G+tD1VCWcP5r0UUQm5d9zXfYgeTeulUZQ4Otc4H97Y9pyfyEpfyK+AbGSNWAksaX3tZi5yUPDlEXw4PvlVA7NiNQyID9t5v/1W4/+TQ+pqKPwdazixZnyxYvA== 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 2/28/24 04:04, Xiaolei Wang wrote: > For earlier kmem cache creation, slab_sysfs_init() has not been called. > Consequently, kmem_cache_destroy() cannot utilize kobj_type::release to > release the kmem_cache structure. Therefore, tweak kmem_cache_release() > to use slab_kmem_cache_release() for releasing kmem_cache when slab_state > isn't FULL. This will fixes the memory leaks like following: > > unreferenced object 0xffff0000c2d87080 (size 128): > comm "swapper/0", pid 1, jiffies 4294893428 > hex dump (first 32 bytes): > 00 00 00 00 ad 4e ad de ff ff ff ff 6b 6b 6b 6b .....N......kkkk > ff ff ff ff ff ff ff ff b8 ab 48 89 00 80 ff ff.....H..... > backtrace (crc 8819d0f6): > [] kmemleak_alloc+0xb0/0xc4 > [] kmem_cache_alloc_node+0x288/0x3a8 > [] __kmem_cache_create+0x1e4/0x64c > [] kmem_cache_create_usercopy+0x1c4/0x2cc > [] kmem_cache_create+0x1c/0x28 > [] arm_v7s_alloc_pgtable+0x1c0/0x6d4 > [] alloc_io_pgtable_ops+0xe8/0x2d0 > [] arm_v7s_do_selftests+0xe0/0x73c > [] do_one_initcall+0x11c/0x7ac > [] kernel_init_freeable+0x53c/0xbb8 > [] kernel_init+0x24/0x144 > [] ret_from_fork+0x10/0x20 > > Signed-off-by: Xiaolei Wang Thanks, added to slab/for-next > --- > mm/slab_common.c | 8 ++++++-- > mm/slub.c | 6 ++---- > 2 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/mm/slab_common.c b/mm/slab_common.c > index 238293b1dbe1..b6b35bcdd196 100644 > --- a/mm/slab_common.c > +++ b/mm/slab_common.c > @@ -404,8 +404,12 @@ EXPORT_SYMBOL(kmem_cache_create); > */ > static void kmem_cache_release(struct kmem_cache *s) > { > - sysfs_slab_unlink(s); > - sysfs_slab_release(s); > + if (slab_state >= FULL) { > + sysfs_slab_unlink(s); > + sysfs_slab_release(s); > + } else { > + slab_kmem_cache_release(s); > + } > } > #else > static void kmem_cache_release(struct kmem_cache *s) > diff --git a/mm/slub.c b/mm/slub.c > index 2ef88bbf56a3..9ba59d064b6d 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -6792,14 +6792,12 @@ static int sysfs_slab_add(struct kmem_cache *s) > > void sysfs_slab_unlink(struct kmem_cache *s) > { > - if (slab_state >= FULL) > - kobject_del(&s->kobj); > + kobject_del(&s->kobj); > } > > void sysfs_slab_release(struct kmem_cache *s) > { > - if (slab_state >= FULL) > - kobject_put(&s->kobj); > + kobject_put(&s->kobj); > } > > /*