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 9EF8EC433EF for ; Wed, 13 Jul 2022 14:24:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0EE5940139; Wed, 13 Jul 2022 10:24:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D979F940134; Wed, 13 Jul 2022 10:24:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C380A940139; Wed, 13 Jul 2022 10:24:20 -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 B1E2B940134 for ; Wed, 13 Jul 2022 10:24:20 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7FDA030E8D for ; Wed, 13 Jul 2022 14:24:20 +0000 (UTC) X-FDA: 79682296680.23.747107A Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by imf24.hostedemail.com (Postfix) with ESMTP id EE99D1800A4 for ; Wed, 13 Jul 2022 14:24:18 +0000 (UTC) Received: by mail-pg1-f181.google.com with SMTP id s27so10558036pga.13 for ; Wed, 13 Jul 2022 07:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=iZg4jV9qnfZ0cCGgCJhgdQT0+ATbFFKvPnKzJuPEFBg=; b=nIjE3fdScssfGbGhj5AXLnpdMh20vhlpDufc+QPyNHwtFHhXLJzOstGW7gTkD4OQKK FHDb8LG8k6W/FGT85Wep9ks6SInwfyFg4fnzpNzAqCLiRROa6MbsPO33ZRwrBINoYfz0 0Zxj4R5Yg3PsEpET4L15WQOksv1YepAR+SMHXFKsOcBs/VxbHgcs25qlRsS7wWifP3L3 1CV/mA6TLlEVx+XlsnPeq2B722iio3vXtP2LXnkp7yOUKg+Og39xri7BZTWb0r4Ih4Ak KPWewfgTb79s6NsadVNBVzSgKV7AiCsvGnSjoExlEoQjA9y8h6uYz9yj921WELAF58qz BZwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=iZg4jV9qnfZ0cCGgCJhgdQT0+ATbFFKvPnKzJuPEFBg=; b=T1QCggT1Oh3wdCsTxBH+uc6ccw1YUSK9gwCaVl9gBkayzYeAh/1IjH9RspApCWdVW1 HiBSsjSVWtJSInAqbXOmNlMCUz1cgAbPyf5V6AkpOvqUa3X9jsf9RMchsz/L4qazVn5O CBOnzDRJ5K10MF2NJS3NCxvkJSNIs+y+Y8H93ylbIvjdbnPt7JpowM6q1EWeLX1UFjSr TsZkY2L3aaFApSlXQMMYqMFbC/ntWs8l9xpFGo/ru7gTDk6iyH5d7gPhrCx/nnm9JDRM qvmtOBRhmQuwPLhZxY3ivTt5McxGJL0PZPE/J/mdwyciYsqYBHws26B0RaTKHGTtLZdP +SCQ== X-Gm-Message-State: AJIora9hTC8qTlHyBIwqFsUWhBpsPWtx4nuMjeq3D4G1xwaoSACt8XQO XBN7gNTza03CaDSeC66S8sDbNQ== X-Google-Smtp-Source: AGRyM1vxsQVbA5kAcWs5mJCADfkSTANLlvfyl4jcgvqjBIWIjnx87Wn/UG9vyvu2JXY/xXEaMW5r1Q== X-Received: by 2002:aa7:88d0:0:b0:52a:f0ea:1fbb with SMTP id k16-20020aa788d0000000b0052af0ea1fbbmr3400167pff.85.1657722257668; Wed, 13 Jul 2022 07:24:17 -0700 (PDT) Received: from google.com (55.212.185.35.bc.googleusercontent.com. [35.185.212.55]) by smtp.gmail.com with ESMTPSA id y145-20020a626497000000b00528655cd6a6sm8928260pfb.53.2022.07.13.07.24.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Jul 2022 07:24:17 -0700 (PDT) Date: Wed, 13 Jul 2022 07:24:14 -0700 From: Zach O'Keefe To: Yang Shi Cc: Dan Carpenter , kbuild@lists.01.org, kernel test robot , kbuild-all@lists.01.org, Linux Kernel Mailing List , Andrew Morton , Linux Memory Management List Subject: Re: [akpm-mm:mm-unstable 284/293] mm/khugepaged.c:2409 madvise_collapse() warn: possible memory leak of 'cc' Message-ID: References: <202207100715.TBIYQ4fc-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1657722259; a=rsa-sha256; cv=none; b=icI/HnErqKuLl3Eh/Kl53A8FPhyuB+95iRpOzeWgi1JAfgjFghsB4PzI2TayymFH2SQcFU x8IBC3vL/GfRI83tCkpBQYUbuCSWEnesAEJIziuydCSUKUh8qNAH7CYQsgcdCI1SW+8/+P zLnUtqMMaV+WX1mjk3LhXSTm8IOZzpE= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=nIjE3fdS; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of zokeefe@google.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=zokeefe@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1657722259; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=iZg4jV9qnfZ0cCGgCJhgdQT0+ATbFFKvPnKzJuPEFBg=; b=SK6+C/QSsEaZyjUjQgpknZllYhl2QINiuSSU3KYRRigNqej+9Bu/4Q1lPDc9HcUq76kgfK Yiq7VtUNZq6N7ISMGEErcmctggrL0+HVQrIVEPfbbQ1lf9mly7P6moMRFE1Xc2yH9Na3ri L4yCl/FYlw4SyXLf8tPlGou+T6mZeWo= Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=nIjE3fdS; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of zokeefe@google.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=zokeefe@google.com X-Rspam-User: X-Stat-Signature: 3bh3xmnkiy9fe5t5at8aofmg5k68essn X-Rspamd-Queue-Id: EE99D1800A4 X-Rspamd-Server: rspam08 X-HE-Tag: 1657722258-344394 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 Jul 12 10:02, Yang Shi wrote: > On Tue, Jul 12, 2022 at 5:36 AM Dan Carpenter wrote: > > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable > > head: 0e9f775fb0b4adf1a4ef50ea156ead09a0fc5194 > > commit: 9f626ffb1d1c5c26b4a8e0fdffec784a5f773274 [284/293] mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse > > config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220710/202207100715.TBIYQ4fc-lkp@intel.com/config) > > compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 > > > > If you fix the issue, kindly add following tag where applicable > > Reported-by: kernel test robot > > Reported-by: Dan Carpenter > > > > smatch warnings: > > mm/khugepaged.c:2409 madvise_collapse() warn: possible memory leak of 'cc' > > > > vim +/cc +2409 mm/khugepaged.c > > > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2387 int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2388 unsigned long start, unsigned long end) > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2389 { > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2390 struct collapse_control *cc; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2391 struct mm_struct *mm = vma->vm_mm; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2392 unsigned long hstart, hend, addr; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2393 int thps = 0, last_fail = SCAN_FAIL; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2394 bool mmap_locked = true; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2395 > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2396 BUG_ON(vma->vm_start > start); > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2397 BUG_ON(vma->vm_end < end); > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2398 > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2399 cc = kmalloc(sizeof(*cc), GFP_KERNEL); > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2400 if (!cc) > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2401 return -ENOMEM; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2402 cc->is_khugepaged = false; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2403 cc->last_target_node = NUMA_NO_NODE; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2404 > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2405 *prev = vma; > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2406 > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2407 /* TODO: Support file/shmem */ > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 2408 if (!vma->anon_vma || !vma_is_anonymous(vma)) > > 9f626ffb1d1c5c Zach O'Keefe 2022-07-06 @2409 return -EINVAL; > > It seems better to move the cc kmalloc after the anonymous vma check? > Agreed - something I only noticed when fixing this. I've cleaned up some ordering here, now looks like: ---8<--- BUG_ON(vma->vm_start > start); BUG_ON(vma->vm_end < end); *prev = vma; /* TODO: Support file/shmem */ if (!vma->anon_vma || !vma_is_anonymous(vma)) return -EINVAL; if (!hugepage_vma_check(vma, vma->vm_flags, false, false, false)) return -EINVAL; cc = kmalloc(sizeof(*cc), GFP_KERNEL); if (!cc) return -ENOMEM; cc->is_khugepaged = false; cc->last_target_node = NUMA_NO_NODE; mmgrab(mm); lru_add_drain_all(); hstart = (start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK; hend = end & HPAGE_PMD_MASK; for (addr = hstart; addr < hend; addr += HPAGE_PMD_SIZE) { ---8<--- out_nolock: mmap_assert_locked(mm); mmdrop(mm); kfree(cc); ---8<--- > > > > kfree(cc);? > > > > > > -- > > 0-DAY CI Kernel Test Service > > https://01.org/lkp > > > >