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 48BA9D11708 for ; Fri, 25 Oct 2024 07:12:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B6E496B007B; Fri, 25 Oct 2024 03:12:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B1DAD6B0082; Fri, 25 Oct 2024 03:12:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9E5A36B0083; Fri, 25 Oct 2024 03:12:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 7FCBB6B007B for ; Fri, 25 Oct 2024 03:12:18 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5734DC01B9 for ; Fri, 25 Oct 2024 07:11:57 +0000 (UTC) X-FDA: 82711255368.24.78FAF0F Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf23.hostedemail.com (Postfix) with ESMTP id F2856140014 for ; Fri, 25 Oct 2024 07:12:01 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=XgKnQuxx; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf23.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729840296; a=rsa-sha256; cv=none; b=1uxE6gQj0PxG9DidNESzCoOocVR7aS7fqGTCyLfNOKbm1kUigsNPjtD7lZREQ/hQIwpbry b8HChDXI2BUgLs1P+yqc2e9KiPhL19o1PCp4X/7fd25p1SkbUUT6HTXw+s4Z5ROw/vZxoT 3uGZwxcLQnM/46CN5W7OfJoBd3VObCc= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=XgKnQuxx; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf23.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729840296; 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=B/cCbKNuKB3gronXLhNY7Z0mGjddFinoZE4u7tpjqcQ=; b=LWTDLbzWYh7eGqrjn6ZINjGyx3rBz4rAPzZpUIPSJpAfeeHUq+6HzirET4ml1amGv1UgJD MvrQiBpM1I5DeeOBuqb0hdEvOCaaJwkaRBirBaE+e8ZTK3KzbtBgo3vaEJ71opq9Ngw/2Y 5xs8qz9wzxkRgXJGQcMO1mH6kSJeO+g= Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-2e34a089cd3so1345541a91.3 for ; Fri, 25 Oct 2024 00:12:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1729840333; x=1730445133; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=B/cCbKNuKB3gronXLhNY7Z0mGjddFinoZE4u7tpjqcQ=; b=XgKnQuxxH6EOghiSb9m5dKUwir2g8A6a6ydxk1T0eC5xWj6oQ9SLeuBqtnG400c5QR S7flHM+lxj9rIG2cyM/r8sp+WGdVi9YJDovQRK7q4uflT8oO/twDj8+LCwEGJQvV2tyn 2UpU8neupJBti0xXQSCqeFet8XR1psbQNxESwC7Ihvg7xEX/Kw83xqr6Pc65HLpwUEaK xqapNCT8OHY5mNttWL78YP+qqECQBBc3G7kA8ihEBV3xzi3duNSW0yFFv81pKX6dIsH5 VOHb74hwTWWDAvyEMoHhQ78dVNv8hNdu0jqjiOlCe/mVit57uoIUoMzoiCDvDkQXX5bq cF6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729840333; x=1730445133; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=B/cCbKNuKB3gronXLhNY7Z0mGjddFinoZE4u7tpjqcQ=; b=VkeX8UGb86CenRGMcPrSC9Jzw/vSSi52hCEhmmof367FLxlpb5RXpyNVSPGtGft9wK GDhPkcwUeqVrGYMnlFbMk3/wQPyxvHFyiMBv1lppuR1kLNDV9CI3dV9piMo+memiM2i7 64euQcnnMWhrbILC6wzFwnRxprLKjD/wEQVFc9Tj+1DoQaIUa+nEIKcgcv7z01JCNSU5 3BpVYLFDvuD9Re436Iyq/UK+//RVgKEh3XplIAb5YOzee+qrVb6/q2Ucbcaxs06NG4qR sHSdnd99fVrfacOsaj91u8cWRcnLweG5HeqONwaRNMQZBzrPgZKtjeeTPjdP5zzFzgP+ 2fJg== X-Forwarded-Encrypted: i=1; AJvYcCWm1VeKpqEj2eYhLwEUZO/dZGGRd6/FWlA+I15SZMhVEJghZhH6inoeKTtFWs5cEnMPdUXWQrY82w==@kvack.org X-Gm-Message-State: AOJu0YxiXFpVBIA64sAuhLijZ+HV2NHkskJsk5N40GWu5hANxoSjL5/o VRGRd9oihMIALut/+lrCW5m83k2IIM4Sl2RGKUQ54nF+RK13MNE8Qyd33bZwqrU= X-Google-Smtp-Source: AGHT+IGhkMBbXaJu0HAzi5N/CRI5uaJ6PKnhoP/gUop/fnR0Kchxwudsu8opRczYoCn/Ys9J0p54QQ== X-Received: by 2002:a17:90b:17cf:b0:2e2:cc47:f1b0 with SMTP id 98e67ed59e1d1-2e77f321aa7mr5463083a91.3.1729840332999; Fri, 25 Oct 2024 00:12:12 -0700 (PDT) Received: from [10.84.149.95] ([63.216.146.178]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2e8e377179asm666395a91.53.2024.10.25.00.12.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Oct 2024 00:12:12 -0700 (PDT) Message-ID: Date: Fri, 25 Oct 2024 15:12:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] mm: shrinker: avoid memleak in alloc_shrinker_info Content-Language: en-US To: Chen Ridong Cc: akpm@linux-foundation.org, david@fromorbit.com, roman.gushchin@linux.dev, muchun.song@linux.dev, anshuman.khandual@arm.com, vbabka@suse.cz, kirill@shutemov.name, linux-mm@kvack.org, linux-kernel@vger.kernel.org, chenridong@huawei.com, wangweiyang2@huawei.com References: <20241025060942.1049263-1-chenridong@huaweicloud.com> From: Qi Zheng In-Reply-To: <20241025060942.1049263-1-chenridong@huaweicloud.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: fnf9hfx8ptkrt9akdgjw7ky6gw7jt37p X-Rspamd-Queue-Id: F2856140014 X-Rspamd-Server: rspam02 X-HE-Tag: 1729840321-317561 X-HE-Meta: U2FsdGVkX18X9mYlPxgDsXBt//BNJ4D71JBPCziJvM/y+arSo+PB6aVD6gUhWbqIYgqNobRZqzzWl65j4GAJdqxOy309LHwsuHjdakPgqINt2VU7CocbR1JJ38uI2j/w3eNnVDtsIpd+MLMyB8cIrrAmeHEt05QL742zk/wW3FanvrujV15ZBj1URHixcscwjobVWOkIrO47NJ8rpBQLJJ2VMLO4yRnhPG87gC28VEtvaziHCBHqQldmJ5So9+Rczm6BA+A3hRfSiyTntzShNwBnlTOpAjry2Y9p21EixBVbX6bXhGUMx0c4M7hPrmrli8gx1m9Ac/WuPEtIC17jYahQtqmnQmQN3Cozip8y17X8nh3w0bvK0PRW9osXbJ7yM70AIc+qi1m1bGl2It0pW8Z0jNGjjBW9uqd58b02KkDZRb1/5BhVyErHOHRPwZIP4XzGOPSITCjwspuwMqeb/wtDtXUgxtWS3uOe3D9+QJ364RdegKr6Qb0JD9hL/7IC9jSQWzD2ECrI/JcTdFfcrTmwc5edWYgMNHOdQYQoQ2pS1uyceXS2+GrblAxTgWI99iEDQL8ARMFfoAo8jxvYZLD+6mCMMVEeQFLlH/a4j2meuOwqcZhzbD+wBiepfT0goeCFJ+hhw1R/W2ti7QmzI7pvXFwFDqM5XnwvZhrQFf2QlA3GDAw8IE1FhZxw05koLIdrK1ZwweBd/W6vdiHC5FmpPAlKDSjOyrvi+d/OXmEXtAAEScnK37XkSvTRvH81dGbroHuxCWh5NQEGAEgKSzLyvBebWI8B4terT1pdH4UXtzTzc676e3B9ARZqNxrojb1/IJQ4xN2ptV6q74APaa2XPiFTJYgseC0OIFbQxQpgVDaiLTF27suwrHOCOHIhFU3OR1+5Z4PwHlm9QlzZwHparetseRYsu5QcsGMKASDg4z8GG/qWEcrVw6Cg8hnw/0CZj1Dob3SiFARFubZ 5JUyky6k X69+4sQwVWNAq01bnfb/YHJRzqYpY21JE/1hTbNyUQMgUkhxpvgCwRpmvtJ2FsohVqudI/aptQuaQuEH0CjKTb9+WBSzFHHT7XRvZpfsRVbNDhoJEXFH3c/ibrtOj8LU7buqeaaVJCRhKWP47mj34yv4m7VDSiAP1ZMTpr81+1Wi3qD4saJ0blnla72y8dFeuT2fBeOUdFBjKk9AXdRQARqqwgdmiXz+lxiGGB4xU2r1pRAsyCRGSMVG1tArkQDOmjasq1D4Pr50qAG4cp1XILjhKvEqqvHKxz6H1q/vA0l5iVtU8aPb+4jOFUO6Yay3uqiO33jz7FCwCYtm9rhBedAqEqijmcdN62LeqHC9XNpfm2ijr7RbhZy45D1QJPLj68RhKshpidt37DstPvQYFQtAo0o5JqZjTiKo1+x4bF85KRrVmQ6vkwngSqUw14lx7tn/WC2zmtJkrOYo= 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 2024/10/25 14:09, Chen Ridong wrote: > From: Chen Ridong > > A memleak was found as bellow: > > unreferenced object 0xffff8881010d2a80 (size 32): > comm "mkdir", pid 1559, jiffies 4294932666 > hex dump (first 32 bytes): > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @............... > backtrace (crc 2e7ef6fa): > [] __kmalloc_node_noprof+0x394/0x470 > [] alloc_shrinker_info+0x7b/0x1a0 > [] mem_cgroup_css_online+0x11a/0x3b0 > [] online_css+0x29/0xa0 > [] cgroup_apply_control_enable+0x20d/0x360 > [] cgroup_mkdir+0x168/0x5f0 > [] kernfs_iop_mkdir+0x5e/0x90 > [] vfs_mkdir+0x144/0x220 > [] do_mkdirat+0x87/0x130 > [] __x64_sys_mkdir+0x49/0x70 > [] do_syscall_64+0x68/0x140 > [] entry_SYSCALL_64_after_hwframe+0x76/0x7e > > In the alloc_shrinker_info function, when shrinker_unit_alloc return > err, the info won't be freed. Just fix it. > > Fixes: 307bececcd12 ("mm: shrinker: add a secondary array for shrinker_info::{map, nr_deferred}") Again, please: Cc: stable@vger.kernel.org I think Andrew can help add that. ;) Thanks! > Signed-off-by: Chen Ridong > Acked-by: Qi Zheng > Acked-by: Roman Gushchin > Acked-by: Vlastimil Babka > --- > mm/shrinker.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/mm/shrinker.c b/mm/shrinker.c > index dc5d2a6fcfc4..4a93fd433689 100644 > --- a/mm/shrinker.c > +++ b/mm/shrinker.c > @@ -76,19 +76,21 @@ void free_shrinker_info(struct mem_cgroup *memcg) > > int alloc_shrinker_info(struct mem_cgroup *memcg) > { > - struct shrinker_info *info; > int nid, ret = 0; > int array_size = 0; > > mutex_lock(&shrinker_mutex); > array_size = shrinker_unit_size(shrinker_nr_max); > for_each_node(nid) { > - info = kvzalloc_node(sizeof(*info) + array_size, GFP_KERNEL, nid); > + struct shrinker_info *info = kvzalloc_node(sizeof(*info) + array_size, > + GFP_KERNEL, nid); > if (!info) > goto err; > info->map_nr_max = shrinker_nr_max; > - if (shrinker_unit_alloc(info, NULL, nid)) > + if (shrinker_unit_alloc(info, NULL, nid)) { > + kvfree(info); > goto err; > + } > rcu_assign_pointer(memcg->nodeinfo[nid]->shrinker_info, info); > } > mutex_unlock(&shrinker_mutex);