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 C8676C433EF for ; Mon, 6 Dec 2021 16:22:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0490E6B007E; Mon, 6 Dec 2021 11:21:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F3B9B6B0080; Mon, 6 Dec 2021 11:21:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E02A06B0081; Mon, 6 Dec 2021 11:21:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0103.hostedemail.com [216.40.44.103]) by kanga.kvack.org (Postfix) with ESMTP id CEFA96B007E for ; Mon, 6 Dec 2021 11:21:58 -0500 (EST) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 885CC8249980 for ; Mon, 6 Dec 2021 16:21:48 +0000 (UTC) X-FDA: 78887885496.13.45790BE Received: from brightrain.aerifal.cx (brightrain.aerifal.cx [216.12.86.13]) by imf21.hostedemail.com (Postfix) with ESMTP id D7E9BD035190 for ; Mon, 6 Dec 2021 16:21:47 +0000 (UTC) Date: Mon, 6 Dec 2021 11:21:46 -0500 From: Rich Felker To: Rob Landley Cc: Dennis Zhou , Vladimir Murzin , linux-arch-owner@vger.kernel.org, linux-mm@kvack.org, tj@kernel.org, cl@linux.com, akpm@linux-foundation.org, npiggin@gmail.com, hch@lst.de, arnd@arndb.de, linux-sh@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH] percpu: km: ensure it is used with NOMMU (either UP or SMP) Message-ID: <20211206162140.GJ7074@brightrain.aerifal.cx> References: <20211130172954.129587-1-vladimir.murzin@arm.com> <20211130172954.129587-2-vladimir.murzin@arm.com> <8c2b4666-cf13-3735-be1e-b8a1c71df113@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Rspamd-Queue-Id: D7E9BD035190 Authentication-Results: imf21.hostedemail.com; dkim=none; spf=none (imf21.hostedemail.com: domain of dalias@libc.org has no SPF policy when checking 216.12.86.13) smtp.mailfrom=dalias@libc.org; dmarc=none X-Rspamd-Server: rspam04 X-Stat-Signature: mt65kgk3bfieanidx3apid433xbduzfp X-HE-Tag: 1638807707-256702 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 Mon, Dec 06, 2021 at 06:01:59AM -0600, Rob Landley wrote: > On 12/3/21 3:02 PM, Dennis Zhou wrote: > > On Wed, Dec 01, 2021 at 11:51:04AM +0000, Vladimir Murzin wrote: > >> Hi, > >> > >> On 11/30/21 5:41 PM, Dennis Zhou wrote: > >> > Hello, > >> > > >> > On Tue, Nov 30, 2021 at 05:29:54PM +0000, Vladimir Murzin wrote: > >> >> Currently, NOMMU pull km allocator via !SMP dependency because most of > >> >> them are UP, yet for SMP+NOMMU vm allocator gets pulled which: > >> >> > >> >> * may lead to broken build [1] > >> >> * ...or not working runtime due to [2] > >> >> > >> >> It looks like SMP+NOMMU case was overlooked in bbddff054587 ("percpu: > >> >> use percpu allocator on UP too") so restore that. > >> >> > >> >> [1] > >> >> For ARM SMP+NOMMU (R-class cores) > >> >> > >> >> arm-none-linux-gnueabihf-ld: mm/percpu.o: in function `pcpu_post_unmap_tlb_flush': > >> >> mm/percpu-vm.c:188: undefined reference to `flush_tlb_kernel_range' > >> >> > >> >> [2] > >> >> static inline > >> >> int vmap_pages_range_noflush(unsigned long addr, unsigned long end, > >> >> pgprot_t prot, struct page **pages, unsigned int page_shift) > >> >> { > >> >> return -EINVAL; > >> >> } > >> >> > >> >> Signed-off-by: Vladimir Murzin > >> >> --- > >> >> mm/Kconfig | 3 +-- > >> >> 1 file changed, 1 insertion(+), 2 deletions(-) > >> >> > >> >> diff --git a/mm/Kconfig b/mm/Kconfig > >> >> index d16ba92..66331e0 100644 > >> >> --- a/mm/Kconfig > >> >> +++ b/mm/Kconfig > >> >> @@ -425,9 +425,8 @@ config THP_SWAP > >> >> # UP and nommu archs use km based percpu allocator > >> >> # > >> >> config NEED_PER_CPU_KM > >> >> - depends on !SMP > >> >> bool > >> >> - default y > >> >> + default !SMP || !MMU > >> >> > >> > > >> > Should this be `depends on !SMP || !MMU` with default yes? Because with > >> > SMP && MMU, it shouldn't be an option to run with percpu-km. > >> > >> IIUC these are equivalent, truth table would not change if is under "depends" > >> or "default" > >> > >> SMP MMU NEED_PER_CPU_KM > >> y y !y || !y => n || n => n > >> y n !y || !n => n || y => y > >> n y !n || !y => y || n => y > >> n n !n || !n => y || y => y > >> > > > > I may be wrong, but I think this is slightly different as we're using > > #ifdef / #if defined(). > > > >> > > >> >> config CLEANCACHE > >> >> bool "Enable cleancache driver to cache clean pages if tmem is present" > >> >> -- > >> >> 2.7.4 > >> >> > >> > > >> > It's interesting to me that this is all coming up at once. Earlier this > >> > month I had the same conversation with people involved with sh [1]. > >> > > >> > [1] https://lore.kernel.org/linux-sh/YY7tp5attRyK42Zk@fedora/ > >> > > >> > I can pull this shortly once I see whatever happened to linux-sh. > >> > >> Ahh, good to know! Adding SH folks here (start of discussion [0]). I see you came > >> to the same conclusion, right? > > > > Yeah, I don't see anything else from linux-sh. So I'll go ahead and > > apply this with my change if you're fine with that. > > I can't test against current until I get some unrelated fixes from Rich Felker > (who's been busy over the weekend), but I tested the "depends" version on 5.10 > and got a shell prompt on my "make ARCH=sh j2_defconfig" board. > > Tested-by: Rob Landley Tested-by: Rich Felker I've tested the version as originally posted and it works for j2 (sh2) (both build and runtime checked). I'd tested the other (depends version) before and I'm fine with either going upstream. Rich