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 1DE72C6FD1D for ; Thu, 30 Mar 2023 19:55:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A6E696B0071; Thu, 30 Mar 2023 15:55:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A1EA96B0072; Thu, 30 Mar 2023 15:55:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E63F6B0075; Thu, 30 Mar 2023 15:55:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7C1C86B0071 for ; Thu, 30 Mar 2023 15:55:36 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 510A080254 for ; Thu, 30 Mar 2023 19:55:36 +0000 (UTC) X-FDA: 80626619472.09.C2B24E5 Received: from mail-yb1-f176.google.com (mail-yb1-f176.google.com [209.85.219.176]) by imf21.hostedemail.com (Postfix) with ESMTP id 8A4ED1C001F for ; Thu, 30 Mar 2023 19:55:34 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=s0h7rvKG; spf=pass (imf21.hostedemail.com: domain of shakeelb@google.com designates 209.85.219.176 as permitted sender) smtp.mailfrom=shakeelb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680206134; 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=KCcB5OY8SQyKSb7z+4YaRuPUYL+j2up2EUbXt0Mw2dI=; b=wMTE9FVSve20VyJGjMMNt/bLsDfA0LYo0oXtrz7sa4Kad0XzP/Vov4S+PhAhlDPVR5ptYh pwP5S5FHQuFJUweEeT3TuovGwpsYmAgAS51GKk0Mb1WDiP5HbQ5n3303bWBePAplgczIEe bdNP7KqKLVxS3fH5nDcSiEAFuN5uLa0= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=s0h7rvKG; spf=pass (imf21.hostedemail.com: domain of shakeelb@google.com designates 209.85.219.176 as permitted sender) smtp.mailfrom=shakeelb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680206134; a=rsa-sha256; cv=none; b=ERYwKOj3+8y8iAHie9rPF17jP4HcOPr+KAojNW3xlJv09y+Xkmzgu/y8u5foKOaNkV/hOa cci3hJfmptNFKeFRrLuQPHpUUUHSCr9y2w47gVwIFF1dUAk0vAZyqyZpXL+v0jL2OuRlM+ Iz7S+540rQjr6ivPvL52UbCfXj7kpC8= Received: by mail-yb1-f176.google.com with SMTP id p15so24962265ybl.9 for ; Thu, 30 Mar 2023 12:55:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680206133; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=KCcB5OY8SQyKSb7z+4YaRuPUYL+j2up2EUbXt0Mw2dI=; b=s0h7rvKGInOi0krE3W8LR7VJ4S4A7z47vZbouVSzXWKE9OjUtQB8Kt/A8uBBIsuYGg 4OuHcmQ4+Q4F1sDHKG50ARafeyCKVXEeGq498f2n0uv3uMtsJe7LztATHDsOfRm0/Uv3 qBEgbeb3R3H6vPV2spHKFSswGjl0VxrnrilRHlDX4iyrlduGRh+HZ052Ab6z9K8z8vmK rSDI8ZX7m+n9V4wmKZOrZoNCzwkLWJ8PTOJBCUonW3k5MJRT6IJxOmwtin//hOXolTMo VG23NIaNap7GNfw+Ghsn50qUCERUmmyivY8RTvZvz2qsDe5q2fUUPL2UXjXx/KTDJFpL /2nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680206133; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KCcB5OY8SQyKSb7z+4YaRuPUYL+j2up2EUbXt0Mw2dI=; b=YuIWwlGLkfZIG/nCs5VQUIiLPRt0zCYPK2HPnHgLT/QDovXYmBqfSkKo8JiTxc3reA lLnXebyym8fGPObJHGFpo9PZtr2jsMnFQNpCxwjeKu58ozy8t4SfAw8JAC8zz2ZfQzy2 dYY1BSsSknalGB7x6q6dm38An1loz2kEYyvg5wq//g4Iyfbe4/U86UNnTUyV4UjZTwWl miZws9eVOdsvGXrQ30BFS2KSntWZ6plVvXuDU2h8XkvID9UN+tfnc2qgzfiwTF6eaKV8 A3l/UyEMjO96xbd8/JMAeDvAtVvc/8tAvLWws4USGmbQQx+XURc+y0XrYw4UmY2l/1K2 BBzg== X-Gm-Message-State: AAQBX9d06x9ntQG+SLVub6yJhLw1AY4f07lv9ctjKCYUq2Gtopu4f9l1 pgoJbyVKuBUXJzgjYVHDRqulccrBp3b5IUPMA3iYJw== X-Google-Smtp-Source: AKy350Yojbn7iVVCaWAHI4hTk9wpIP45sSlDaCmOwbzyJh+Ki2GMk2GhBn+Uos49hMtA/f8mHTBe8kqwB+IBkWttIPw= X-Received: by 2002:a05:6902:154e:b0:b77:d2db:5f8f with SMTP id r14-20020a056902154e00b00b77d2db5f8fmr15921642ybu.12.1680206133587; Thu, 30 Mar 2023 12:55:33 -0700 (PDT) MIME-Version: 1.0 References: <20230330133822.66271-1-mathieu.desnoyers@efficios.com> <20230330124230.9f3d4f63374eb15a3b990ff8@linux-foundation.org> In-Reply-To: <20230330124230.9f3d4f63374eb15a3b990ff8@linux-foundation.org> From: Shakeel Butt Date: Thu, 30 Mar 2023 12:55:22 -0700 Message-ID: Subject: Re: [PATCH 1/1] mm: Fix memory leak on mm_init error handling To: Andrew Morton Cc: Mathieu Desnoyers , linux-kernel@vger.kernel.org, Marek Szyprowski , linux-mm@kvack.org, stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 8A4ED1C001F X-Stat-Signature: zcnjuq5zaxg73jnq687g7oy33ta15164 X-HE-Tag: 1680206134-403153 X-HE-Meta: U2FsdGVkX1+KbylsezySCe1qgNM/vs1ciWFXbrVjQN87UOMVvk0HZQ+fGjR1cg0kKKGeK5Y6iw92ZBICsLHLlAaDb0YPc248gkdXLxDezlquXAhgsG4wjlHrm1r1S2EeGiOsddoloQVjS450KrIsEfyO3OTYYmHKY49Kk+p9KM+rwzdNmrS2mEscSWH2WeTCNG0Z14oZiJdOuoumE9ODKvL6uldtGJHqP0mIQcqm3OQdYSIe/VTJWcDuFvHcLSa2dBSCy8KcdgmOp7RJuTIq2DQqKPjsgBQBNfOgL2kB23oGB+NnJxlP2l/rWZyVUkv69J/ms3ft8cxxwzdYoKPdOgUuTPbG5bFo9HZlfzPmqxCApTGWGeDi9lyqqvxS33wmHuj1RvACP9eMpG03Z1CU6R0pWKCOgOKTJMwmjhZdAtKoKKjMC+DeVwVSOjbQ3EI2Lv14jf4tMgB0WfwwSZvCFmhVdDlwH1Y6Jkha6eEwf+SuvRcNt3HxLNXEmrG/I8zV54C2mF/UVGUdBFVpq9ln3yRmdbl1iiaPZKrYZl2O4dPt6cR35tFmC94pJlmrwPim0cgrLuTpSRCstF8UO6WBhK5J96ZTlasqI9QFMNZNIxb3OQcaQXf6gDoKqotUwxmaQIeRSABWQFCi9hZFb/4TFS8F2JwlReY1gixqJiP1nKADxje4OC8COnETnnXsgLz3ewWNZmtSZuGkUrQpygFawQZPSb+9A5tOxLXWGz4rBld/ynZIkEjI22xbuKRCCvhdwcaJ+P+ciHX4BLjBDhjIyk2vH64teo4Sff+ieq58iJOvl4DZ7ZaY587rxf7S+J/EDoQ/doZTBjBFoSu26SY0Q5lQWpvss7Cqxndy8USgzAk0p2pohW8VStc4Z9i6V0KAJXpKYzPrGrqizjtkQSvM6pI9IG7NF7uWhjrJ61/TaxdY75h4cTTd3WTQTo7E700DOHwzTz8NxzlHHFioX3q 05bPRbBs xUSozSOKhmmwzWRCER1YSWmggOljJLwOP57xun+WTIq2Lc34x6id7MH/cGq+bA1btbNccPa7G4L5MFs3i57oCPvGSAshxbGles8vFxsO1Qo6Yy3slnYVN9jQ5hNYV5+QKIPU6jGfAEkvBndzd9fFl8u2rXgxvbY9QGwX3HkoEaPyXdIECeGPGP7hp0Bi3QB8092u/TISgkwYo3PVG3GNCamr1jNbjpFNfnpDElKZyeqRS7RpEY/ryB/oB6hFqKXa2D1iZJkt7GsMwvFXLVM38dwI+hfxYGOxxwNrdazCoaWm51ziVCdHLntbA4n6ICIp6caH+8Y98eCNuyBHqTwESQASIwILHMnc1rGjlz2oOUAjXB5JdUIpvDY3sPHSqU75DyG6fX7nMzTMsd1MPlk/o7eGH+Q== 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 Thu, Mar 30, 2023 at 12:42=E2=80=AFPM Andrew Morton wrote: > > On Thu, 30 Mar 2023 09:38:22 -0400 Mathieu Desnoyers wrote: > > > commit f1a7941243c1 ("mm: convert mm's rss stats into percpu_counter") > > introduces a memory leak by missing a call to destroy_context() when a > > percpu_counter fails to allocate. > > > > Before introducing the per-cpu counter allocations, init_new_context() > > was the last call that could fail in mm_init(), and thus there was no > > need to ever invoke destroy_context() in the error paths. Adding the > > following percpu counter allocations adds error paths after > > init_new_context(), which means its associated destroy_context() needs > > to be called when percpu counters fail to allocate. > > > > ... > > > > --- a/kernel/fork.c > > +++ b/kernel/fork.c > > @@ -1171,6 +1171,7 @@ static struct mm_struct *mm_init(struct mm_struct= *mm, struct task_struct *p, > > fail_pcpu: > > while (i > 0) > > percpu_counter_destroy(&mm->rss_stat[--i]); > > + destroy_context(mm); > > fail_nocontext: > > mm_free_pgd(mm); > > fail_nopgd: > > Is there really a leak? I wasn't able to find a version of > init_new_context() which performs allocation. > There are more than 20 archs defining this function and I couldn't check each one of them. I think we can assume there might be new allocation in the future.