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 9B285C433F5 for ; Fri, 20 May 2022 23:43:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 291BF6B0071; Fri, 20 May 2022 19:43:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 216966B0072; Fri, 20 May 2022 19:43:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 06BF46B0073; Fri, 20 May 2022 19:43:21 -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 E41676B0071 for ; Fri, 20 May 2022 19:43:21 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B35FE2058D for ; Fri, 20 May 2022 23:43:21 +0000 (UTC) X-FDA: 79487750202.22.4272EE6 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by imf16.hostedemail.com (Postfix) with ESMTP id D75771800EB for ; Fri, 20 May 2022 23:43:08 +0000 (UTC) Received: by mail-pj1-f51.google.com with SMTP id l14so9285361pjk.2 for ; Fri, 20 May 2022 16:43:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=9xGh+0nUKZTlYCnx1t+/gNqJD29FnGxAgofH8LwvP5E=; b=npLfugbnU+k1hLqxC75p0GsmrLZ092hERF5MucocTBkDfml6rheihyvWkQ/fw+A0RO lPkVMJDCe4oCt9Fugc2ieAxzLwyqq2H5YbeGEeJMYnzMUL+980ZxS0xrC5HVfWD65ZQc 4M8dJ22njs9P47xVFhSJbvm6zzt8v++vfzIlkwLK/pWdWigCtP69Tl1nct+8Fay+/tcu bmwkZWCnawuysBMbhIqsJAelXDlOQVng4wgnGTZjcw1HvCfxF9VCKoai1ywDwDkcQtiG DHQqCMD5+Yq42s9o/ed65iJjg3VDYwGw7Ha0oe9kZeeIfXqKtwKkKF/0o5PfQADIyTMj t52Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=9xGh+0nUKZTlYCnx1t+/gNqJD29FnGxAgofH8LwvP5E=; b=Odz4lleSCiQHQYbgcxUHO945qgV+skckCHDNMHmbQ0anL1M7r/C6OLC3aWmYv5iMrJ Pd0lW3Hmu94wUIBO60h1ipnVf3PPyMquhgb0GBd7CKfK7VO5dQq6R3OLrEG2u1TI0OXp CSsdNiui5TcIEXzxGogfh5uha8TFIMO0DdrXF1EIqNd4Pp2YDO3M+ktZqenH3XkYq+sG 5IqZ8mSm0NKCFHg00Pv6Fc0PWjiYq6muikEbWBG+wdr5Eqh/oGBsQD9Q61vXn4vz1XW7 s5yld+o5yv4vzZv6JvPo9b3XVd7U1M4LHIrX5UBqxGeFvs2M5iuYyiPNni3PpDQCmi8M KGtA== X-Gm-Message-State: AOAM533TguXKx0ecRTah64YtT6g4qwjX1I56wsCoYbAhCA0z3fAXLK+6 4CJomXd2spnR1otLVx9qeKTIyWdxJho= X-Google-Smtp-Source: ABdhPJzasJ3EDlhCCx5LZuepE1qsJZ4EZ4EXif5ffl94joHQy59k71M13xwj23PKkkZlOQ2o+fmJ8A== X-Received: by 2002:a17:903:2cb:b0:14f:4fb6:2fb0 with SMTP id s11-20020a17090302cb00b0014f4fb62fb0mr11927028plk.172.1653090200058; Fri, 20 May 2022 16:43:20 -0700 (PDT) Received: from google.com ([2620:15c:211:201:828d:ad52:eebc:6659]) by smtp.gmail.com with ESMTPSA id v1-20020a170902b7c100b0015e8d4eb1f8sm291074plz.66.2022.05.20.16.43.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 May 2022 16:43:19 -0700 (PDT) Date: Fri, 20 May 2022 16:43:17 -0700 From: Minchan Kim To: Mike Kravetz Cc: John Hubbard , Andrew Morton , syzbot , linux-kernel@vger.kernel.org, linux-mm@kvack.org, llvm@lists.linux.dev, nathan@kernel.org, ndesaulniers@google.com, syzkaller-bugs@googlegroups.com, trix@redhat.com, Matthew Wilcox , Stephen Rothwell , David Hildenbrand Subject: Re: [syzbot] WARNING in follow_hugetlb_page Message-ID: References: <20220513161910.d1b73583cdb2e33562aa86e5@linux-foundation.org> <4809b134-a37a-50b8-4c25-44548bc1048f@nvidia.com> <6d281052-485c-5e17-4f1c-ef5689831450@oracle.com> <0be9132d-a928-9ebe-a9cf-6d140b907d59@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D75771800EB X-Stat-Signature: 7p9gufbp5jfx5iaxuqjdw6abfoi4qhb8 Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=npLfugbn; spf=pass (imf16.hostedemail.com: domain of minchan.kim@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=minchan.kim@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) X-Rspam-User: X-HE-Tag: 1653090188-850208 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 Fri, May 20, 2022 at 04:31:31PM -0700, Mike Kravetz wrote: > On 5/20/22 15:56, John Hubbard wrote: > > On 5/20/22 15:19, Minchan Kim wrote: > >> The memory offline would be an issue so we shouldn't allow pinning of any > >> pages in *movable zone*. > >> > >> Isn't alloc_contig_range just best effort? Then, it wouldn't be a big > >> problem to allow pinning on those area. The matter is what target range > >> on alloc_contig_range is backed by CMA or movable zone and usecases. > >> > >> IOW, movable zone should be never allowed. But CMA case, if pages > >> are used by normal process memory instead of hugeTLB, we shouldn't > >> allow longterm pinning since someone can claim those memory suddenly. > >> However, we are fine to allow longterm pinning if the CMA memory > >> already claimed and mapped at userspace(hugeTLB case IIUC). > >> > > > > From Mike's comments and yours, plus a rather quick reading of some > > CMA-related code in mm/hugetlb.c (free_gigantic_page(), alloc_gigantic_pages()), the following seems true: > > > > a) hugetlbfs can allocate pages *from* CMA, via cma_alloc() > > > > b) while hugetlbfs is using those CMA-allocated pages, it is debatable > > whether those pages should be allowed to be long term pinned. That's > > because there are two cases: > > > >     Case 1: pages are longterm pinned, then released, all while > >             owned by hugetlbfs. No problem. > > > >     Case 2: pages are longterm pinned, but then hugetlbfs releases the > >             pages entirely (via unmounting hugetlbfs, I presume). In > >             this case, we now have CMA page that are long-term pinned, > >             and that's the state we want to avoid. > > I do not think case 2 can happen. A hugetlb page can only be changed back > to 'normal' (buddy) pages when ref count goes to zero. > > It should also be noted that hugetlb code sets up the CMA area from which > hugetlb pages can be allocated. This area is never unreserved/freed. > > I do not think there is a reason to disallow long term pinning of hugetlb > pages allocated from THE hugetlb CMA area. > > But, I wonder if it is possible for hugetlb pages to be allocated from > another (non-hugetlb) area. For example if someone sets up a huge CMA area > and hugetlb allocations spill over into that area. If this is possible > (still need to research), then we would not want to long term pin such > hugetlb pages. We can check this in the hugetlb code to determine if > long term pinning is allowed. I don't think it's possible because cma_alloc needs "struct cma" just like handle and VM doesn't maintain any fallback list of cma chains so unless someone could steal the handle somehow, there is no way to claim memory others reserved for the CMA purpose.