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 18CBBC77B70 for ; Tue, 11 Apr 2023 17:06:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7D55D900003; Tue, 11 Apr 2023 13:06:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 75E71900002; Tue, 11 Apr 2023 13:06:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 62686900003; Tue, 11 Apr 2023 13:06:36 -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 4EDF1900002 for ; Tue, 11 Apr 2023 13:06:36 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 1C5A614079C for ; Tue, 11 Apr 2023 17:06:36 +0000 (UTC) X-FDA: 80669739192.19.ACEDCEE Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf25.hostedemail.com (Postfix) with ESMTP id 1231DA001B for ; Tue, 11 Apr 2023 17:06:33 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=QLRkeFhp; spf=none (imf25.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681232794; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=qXSUqs709mPoEWjhPkPxBY4/Kitrc5N1pONlGUnsnHA=; b=V5yb9c+IiJ1TiaH0XQ/5ftvDzzHKFwEOAEWhtfCtMLv9qUrL8H1u7EQewXaDx6KgEmYFd4 KOHrEaTb0Wj7YTajWTzD8U/5diqMASpDAtXwffaJCNwylW1WlqBAiAsDIfVaX7LYCj3U6d IM55aVUK1UgJau//jN8iDDbV6C/+3B0= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=QLRkeFhp; spf=none (imf25.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681232794; a=rsa-sha256; cv=none; b=0oPle+dr/ufMsaBMV/aLaMx6X/amr+IeSj88xtjr0FCY7O98ywdvy3ALHAUWbr24JBBjJE MKsJn5LZ5s9lMzMv55N9RqDVv2lzz8kiiuF5lRd0B1KS1B8pGHdSrRTE29Yj3okknXaSYL Stvk0WLKQp4d3mjRmyhJ6g8qyQP03ak= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=qXSUqs709mPoEWjhPkPxBY4/Kitrc5N1pONlGUnsnHA=; b=QLRkeFhpxsne1oCl6QAgwIwzp6 aCHOnrke4Z1SB9hoa5DBA5mm2fNNpv/M3zSFkCNNFYIq4toApNrJS15LwBMq4c8FodZKIOn3VWZWo GmZ4fGADGdzdER6+LL9Gyj1HJtE3x9cMwUGWsY40ru+kE1tP1mjeYdtvovZYEEJi2v3pE5ZqKb0CR s4i+AmQUhYYrHuq4LjE7jFdXBL0f9SKS+xMHfAEDqo5eBstMD5gQIZiXvzVVFzNnKROsZaNtkO4RO lgaq0tI3F3kwPNYohTGZaLgUhbC/d++NEqjsBFvD4FFNrd03XYZ91MaI8uue2wfiHz0bH8zaqvYd/ WtLvYIaw==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1pmHRo-000fLj-2K; Tue, 11 Apr 2023 17:06:24 +0000 Date: Tue, 11 Apr 2023 10:06:24 -0700 From: Luis Chamberlain To: Catalin Marinas Cc: david@redhat.com, patches@lists.linux.dev, linux-modules@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, pmladek@suse.com, petr.pavlu@suse.com, prarit@redhat.com, torvalds@linux-foundation.org, gregkh@linuxfoundation.org, rafael@kernel.org, christophe.leroy@csgroup.eu, tglx@linutronix.de, peterz@infradead.org, song@kernel.org, rppt@kernel.org, dave@stgolabs.net, willy@infradead.org, vbabka@suse.cz, mhocko@suse.com, dave.hansen@linux.intel.com, colin.i.king@gmail.com, jim.cromie@gmail.com, jbaron@akamai.com, rick.p.edgecombe@intel.com Subject: Re: [PATCH v2 1/6] module: fix kmemleak annotations for non init ELF sections Message-ID: References: <20230405022702.753323-1-mcgrof@kernel.org> <20230405022702.753323-2-mcgrof@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1231DA001B X-Rspam-User: X-Stat-Signature: n7zmxhg1gwp4476e9ot38pzft4rj4ns8 X-HE-Tag: 1681232793-283810 X-HE-Meta: U2FsdGVkX1+mVwc3fp2BjcHDRkEnmEJr+fVsEcZC6C7q1E7XCVQ8AcKoZ/3ytSWTlSVmPbe+/MZeBTCD0/ye5L9GJ9Aw0YINMpoYo25mTW/2t1h3a3tymOcK3dZlGAOV2wXUOtz/j95B8vnmPye385ruSt3IpIP+5hPN+hshAImVW9FgiGVEzVS7QxLtGLeQvku7OeBJ24CoDomM3g/5zDk0seq9vezJU3mwhtcmcgG55Ur6F+RcK7rC8t662toicot6SGmRIzkdEJd1ODrDn9Dk19WgRMm1E67ji7c+v9tkKnaSQwYlYN9QeZQDxToU0ywCBHbLv+12ry8VpfRvQZ8OqlzULsHGnxVkG4+DzgRydC2PCl296sJl/caS2+pSJsSpXWd55IAI31ZTO3uu+TglWnHcBNj7020Fqh0WKjFAgEEZpQKYIz0RRMbKEmYU7EIFCD7LsCG0OF2EU+2w7clCVRDfSD4X/zLiScAlmNg2VbOp0b8MTBxY4CIOJf1f2t0/1kvG91URrOLajIn/uFMRFXjSq/AtkBIbiNeCqv38mLHAl1dkl1kFztT+x7gIDaXGQTEF+u+nat7FYAgkt3bD2zvqJgBnOgJmtprMy51GKgnSsuRBzaqgpHwTKHUbFDTyIg6acfpR80rth8/0qfZCfDw42GZ0kNMQ7kgLoOoAthtgmTmHgcDecqRlPPn65bopt+0WC8TBb0dV1x3Cgcwvm082hHLcFaSKHuKvfaabWsokHKlHjzzZd+Ad9Hfwv4FTv6pwL2+Qe9PXOTugfCn3hSb+FL17nV5zTklqhWe/FhF6cbPH2YtT6xY0c/b/SPj+TE+K0/WFbLKjHd2OghoV3opC49/AYzctZ2uSRDRCLnxguRZhfBXOjHWpCKnpQ+FMNoIfuUIF3RCqDztbRkxq2qJJ2mOSo9CIJyj2cqzaEwd0GlBaHNyP+9CrFjKmgivHH5kuq3iUqw2Nzu7 2vg95cEq cN80xIMr9VMo3nC6I0SS+Ve3BAcUUg95MAX5nSXbLWKu4ZYrB2vKkkDvOtnwECmhcNb6qHNeIGwYGg3zJ1iEhvuSfsP2mNl+U6D7SF7J6/jbuk/hiGPXIBMih9fSKYj//fzakCHQoEVb/Oj/0nvdcVToRCiXj4VDEY7mH/W268rt9WSwHbLElA/9QekY5WiqMcHFQOASxLHsBXl/N7ddw4KiAqRCH+c1jbWbX1yTfI307C9O4xaktkOm8kH5EwaUAK+n4ACcGJUTl7Auj8YlDSpbPeG9PcbpcMIWqGV3oi/O5FySaknqOM2uZ1d9cFaEEJDox9UAA84/XURScoGiHsn1N0xtY/4eGEVbIPyC2IOSzGl5AgP8MYuXd5MXdbDERhJo1KIr7qm6viyI= 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 Tue, Apr 11, 2023 at 04:17:35PM +0100, Catalin Marinas wrote: > On Tue, Apr 04, 2023 at 07:26:57PM -0700, Luis Chamberlain wrote: > > diff --git a/kernel/module/main.c b/kernel/module/main.c > > index 5cc21083af04..d8bb23fa6989 100644 > > --- a/kernel/module/main.c > > +++ b/kernel/module/main.c > > @@ -2233,11 +2233,23 @@ static int move_module(struct module *mod, struct load_info *info) > > ptr = module_memory_alloc(mod->mem[type].size, type); > > > > /* > > - * The pointer to this block is stored in the module structure > > - * which is inside the block. Just mark it as not being a > > - * leak. > > + * The pointer to these blocks of memory are stored on the module > > + * structure and we keep that around so long as the module is > > + * around. We only free that memory when we unload the module. > > + * Just mark them as not being a leak then. The .init* ELF > > + * sections *do* get freed after boot so we treat them slightly > > + * differently and only grey them out -- they work as typical > > + * memory allocations which *do* eventually get freed. > > */ > > - kmemleak_ignore(ptr); > > + switch (type) { > > + case MOD_INIT_TEXT: /* fallthrough */ > > + case MOD_INIT_DATA: /* fallthrough */ > > + case MOD_INIT_RODATA: /* fallthrough */ > > + kmemleak_ignore(ptr); > > + break; > > + default: > > + kmemleak_not_leak(ptr); > > + } > > This works as well but if you want to keep it simple, just call > kmemleak_not_leak() in all cases. When freeing the init sections, they > would be removed from the kmemleak tracing anyway. It is up to you as you were the one who originally used different calls here, so I didn't want to change the old mechanism. Changing it to use kmemleak_not_leak() would be a functional change, do we loose anything for using kmemleak_not_leak() for all? Ie, why had you used a different set of calls when you first added this depending on the if its init or not? Is the value no longer there? Luis