Received: by 2002:a05:6a10:c7c6:0:0:0:0 with SMTP id h6csp1390503pxy; Sun, 1 Aug 2021 23:45:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLa5Mumm+lkXuXldhFFoi72uGXDExQ1NEnhlgbqEKW5YSQrVp8z0Ma4KTI2BSZMCWEx5ZC X-Received: by 2002:a5d:914b:: with SMTP id y11mr324078ioq.6.1627886745425; Sun, 01 Aug 2021 23:45:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627886745; cv=none; d=google.com; s=arc-20160816; b=gFjngEaln9a+Er+kMWsWHxeTDsWhL6+wfeSVxgW5uW3Cq0EMRrNHQUoF+p/vpzQ7Xv bbH2ccPHrmYIjqpzk1zRY6yAC4Mug0G4+qWMIpcYRBLUJSZ4yaog8vO1HgeLKQaE1Xai gUF76QZJL8ZH1vikmBdhbGa6HPFAs8qPGPoGn7HH+eSVFFvyF9Er2He81uaN0fqGFXJY BVzoJsQk4+caCw3FhAUXjMQS1G6hs7FWcQlyiClDwxMyxtRdyVxU656GwMBKWJGel4N7 UqtsH6P2USAz6csmrDB13JeKevHDJ68NF+IfeWp3N+geMlHVGOtkyfX/poaSDGbrGYgd ZARA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=kKU12K2fBZbHqr4t5nmrbX+sTG0uq/OYc4mzSKOcY+E=; b=eGv2XQ++rIfDJr9SnLdCVEne1HX+sP+p71gdfZJ3mW0kqokQobgEhTD3rzbnmo77O7 EuW+/BoFbRkakzXz9HgsUqunoXTHX6fu9llKtVNIMd3HweVf43Zq6YBK2pJEIVPsK3fB 1hI5ng1rK2B1zlpCC7pwLOImkRSh99WcHmeK47SxLBDNTEL6+V7x86b7oUWfiAPeRA28 YFWHFKakrNtUUNdu0q0o4hiuK7IYVjR9KzReJo48jtugSPbl3uGHRFacnCnNxG+GaJYj yWFDRGkELre65N0WZlvSgIWnEGGkSIghIcmmFTPJEMZBA6hgQAfv2YUYoOr7zqdcfSWS olHg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b="ItZF/JTn"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g6si10631711ioc.2.2021.08.01.23.45.34; Sun, 01 Aug 2021 23:45:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b="ItZF/JTn"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232385AbhHBGn0 (ORCPT + 99 others); Mon, 2 Aug 2021 02:43:26 -0400 Received: from smtp-out1.suse.de ([195.135.220.28]:49236 "EHLO smtp-out1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232331AbhHBGnZ (ORCPT ); Mon, 2 Aug 2021 02:43:25 -0400 Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id EC3E121FC1; Mon, 2 Aug 2021 06:43:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1627886595; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=kKU12K2fBZbHqr4t5nmrbX+sTG0uq/OYc4mzSKOcY+E=; b=ItZF/JTnMqza/U+as0Qgt/GrVy+8VM1qC0l9HUtskjjbfn77AOblkta5K0FTgJiLUeh9Mw DdqJFqHwU0JniuUu0LJhAsf07/XaWh1xfVTZ5mjIwN2OdEBMxIz4qBTcOBnmJJnObwnS8c 8XQkm1MjNBQBx8WecYSxILo3+yYTO6s= Received: from suse.cz (unknown [10.100.201.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 46A27A3B83; Mon, 2 Aug 2021 06:43:15 +0000 (UTC) Date: Mon, 2 Aug 2021 08:43:13 +0200 From: Michal Hocko To: Miaohe Lin Cc: Roman Gushchin , hannes@cmpxchg.org, vdavydov.dev@gmail.com, akpm@linux-foundation.org, shakeelb@google.com, willy@infradead.org, alexs@kernel.org, richard.weiyang@gmail.com, songmuchun@bytedance.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org Subject: Re: [PATCH 4/5] mm, memcg: avoid possible NULL pointer dereferencing in mem_cgroup_init() Message-ID: References: <20210729125755.16871-1-linmiaohe@huawei.com> <20210729125755.16871-5-linmiaohe@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat 31-07-21 10:05:51, Miaohe Lin wrote: > On 2021/7/30 14:44, Michal Hocko wrote: > > On Thu 29-07-21 20:12:43, Roman Gushchin wrote: > >> On Thu, Jul 29, 2021 at 08:57:54PM +0800, Miaohe Lin wrote: > >>> rtpn might be NULL in very rare case. We have better to check it before > >>> dereferencing it. Since memcg can live with NULL rb_tree_per_node in > >>> soft_limit_tree, warn this case and continue. > >>> > >>> Signed-off-by: Miaohe Lin > >>> --- > >>> mm/memcontrol.c | 2 ++ > >>> 1 file changed, 2 insertions(+) > >>> > >>> diff --git a/mm/memcontrol.c b/mm/memcontrol.c > >>> index 5b4592d1e0f2..70a32174e7c4 100644 > >>> --- a/mm/memcontrol.c > >>> +++ b/mm/memcontrol.c > >>> @@ -7109,6 +7109,8 @@ static int __init mem_cgroup_init(void) > >>> rtpn = kzalloc_node(sizeof(*rtpn), GFP_KERNEL, > >>> node_online(node) ? node : NUMA_NO_NODE); > >>> > >>> + if (WARN_ON_ONCE(!rtpn)) > >>> + continue; > >> > >> I also really doubt that it makes any sense to continue in this case. > >> If this allocations fails (at the very beginning of the system's life, it's an __init function), > >> something is terribly wrong and panic'ing on a NULL-pointer dereference sounds like > >> a perfect choice. > > > > Moreover this is 24B allocation during early boot. Kernel will OOM and > > panic when not being able to find any victim. I do not think we need to > > Agree with you. But IMO it may not be a good idea to leave the rtpn without NULL check. We should defend > it though it could hardly happen. But I'm not insist on this check. I will drop this patch if you insist. It is not that I would insist. I just do not see any point in the code churn. This check is not going to ever trigger and there is nothing you can do to recover anyway so crashing the kernel is likely the only choice left. -- Michal Hocko SUSE Labs