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 X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5EB89C43381 for ; Wed, 10 Mar 2021 21:49:19 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E54D064FC4 for ; Wed, 10 Mar 2021 21:49:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E54D064FC4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 778BA8D0216; Wed, 10 Mar 2021 16:49:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 750038D01ED; Wed, 10 Mar 2021 16:49:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 619A88D0216; Wed, 10 Mar 2021 16:49:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0203.hostedemail.com [216.40.44.203]) by kanga.kvack.org (Postfix) with ESMTP id 48E818D01ED for ; Wed, 10 Mar 2021 16:49:18 -0500 (EST) Received: from smtpin19.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 0BFE8180ACC31 for ; Wed, 10 Mar 2021 21:49:18 +0000 (UTC) X-FDA: 77905305996.19.BAD2519 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf17.hostedemail.com (Postfix) with ESMTP id BE9694080F48 for ; Wed, 10 Mar 2021 21:49:16 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id E62A764E27; Wed, 10 Mar 2021 21:49:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1615412950; bh=k4nA3Eis+qAbq10nmWD8z7V/kQBE/rHbRJtN9QWQBw0=; h=Date:From:To:Cc:Subject:Reply-To:References:In-Reply-To:From; b=P5sKfqEbajEnmE7axLxcCMjxpejmZbLeK/35uQ75J2PTcy2fnAMV4slxTa8XGxp0O 6M12d7qF70AIb555wieAmHBgSiLAsK5lSUU3DeoewzlfOTT4y0UkJ4zRhwZPYNDRmQ E1NS///fOr6Rjo7kiNl8M89ii91dTn5FmQk2B4FA4u4LRt8pEsJBkMFekpVJW8BqXA kZzgtbp5pwCUxSUIHIhqirnDaeaF6gn6tQjuUN4mlo6pm41bqlBfNFNJfJ9xr++O/a cAJkEKjYuIFGdfkKqeIMidCG0/O19aFeR0P7PkFa03mpo27vHPlgdSIKVMaWYdq+GC 5eSPUE2QdHLuA== Received: by paulmck-ThinkPad-P72.home (Postfix, from userid 1000) id 940603522611; Wed, 10 Mar 2021 13:49:09 -0800 (PST) Date: Wed, 10 Mar 2021 13:49:09 -0800 From: "Paul E. McKenney" To: Michal Hocko Cc: Mike Kravetz , Muchun Song , corbet@lwn.net, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org, mchehab+huawei@kernel.org, pawan.kumar.gupta@linux.intel.com, rdunlap@infradead.org, oneukum@suse.com, anshuman.khandual@arm.com, jroedel@suse.de, almasrymina@google.com, rientjes@google.com, willy@infradead.org, osalvador@suse.de, song.bao.hua@hisilicon.com, david@redhat.com, naoya.horiguchi@nec.com, joao.m.martins@oracle.com, duanxiongchun@bytedance.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, Chen Huang , Bodeddula Balasubramaniam Subject: Re: [PATCH v18 4/9] mm: hugetlb: alloc the vmemmap pages associated with each HugeTLB page Message-ID: <20210310214909.GY2696@paulmck-ThinkPad-P72> Reply-To: paulmck@kernel.org References: <20210308102807.59745-1-songmuchun@bytedance.com> <20210308102807.59745-5-songmuchun@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: BE9694080F48 X-Stat-Signature: 4hx4jj6sgxa79j7mg3pzdk1ous8qquz8 Received-SPF: none (kernel.org>: No applicable sender policy available) receiver=imf17; identity=mailfrom; envelope-from=""; helo=mail.kernel.org; client-ip=198.145.29.99 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1615412956-374512 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 Wed, Mar 10, 2021 at 10:11:22PM +0100, Michal Hocko wrote: > On Wed 10-03-21 10:56:08, Mike Kravetz wrote: > > On 3/10/21 7:19 AM, Michal Hocko wrote: > > > On Mon 08-03-21 18:28:02, Muchun Song wrote: > > > [...] > > >> @@ -1447,7 +1486,7 @@ void free_huge_page(struct page *page) > > >> /* > > >> * Defer freeing if in non-task context to avoid hugetlb_lock deadlock. > > >> */ > > >> - if (!in_task()) { > > >> + if (in_atomic()) { > > > > > > As I've said elsewhere in_atomic doesn't work for CONFIG_PREEMPT_COUNT=n. > > > We need this change for other reasons and so it would be better to pull > > > it out into a separate patch which also makes HUGETLB depend on > > > PREEMPT_COUNT. > > > > Yes, the issue of calling put_page for hugetlb pages from any context > > still needs work. IMO, that is outside the scope of this series. We > > already have code in this path which blocks/sleeps. > > > > Making HUGETLB depend on PREEMPT_COUNT is too restrictive. IIUC, > > PREEMPT_COUNT will only be enabled if we enable: > > PREEMPT "Preemptible Kernel (Low-Latency Desktop)" > > PREEMPT_RT "Fully Preemptible Kernel (Real-Time)" > > or, other 'debug' options. These are not enabled in 'more common' > > kernels. Of course, we do not want to disable HUGETLB in common > > configurations. > > I haven't tried that but PREEMPT_COUNT should be selectable even without > any change to the preemption model (e.g. !PREEMPT). It works reliably for me, for example as in the diff below. So, as Michal says, you should be able to add "select PREEMPT_COUNT" to whatever Kconfig option you need to. Thanx, Paul diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig index 3128b7c..7d9f989 100644 --- a/kernel/rcu/Kconfig +++ b/kernel/rcu/Kconfig @@ -8,6 +8,7 @@ menu "RCU Subsystem" config TREE_RCU bool default y if SMP + select PREEMPT_COUNT help This option selects the RCU implementation that is designed for very large SMP system with hundreds or