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 E295AC48BF6 for ; Fri, 1 Mar 2024 02:34:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 621B294000A; Thu, 29 Feb 2024 21:34:34 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D1CF940007; Thu, 29 Feb 2024 21:34:34 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4722E94000A; Thu, 29 Feb 2024 21:34:34 -0500 (EST) 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 356AC940007 for ; Thu, 29 Feb 2024 21:34:34 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0583F120479 for ; Fri, 1 Mar 2024 02:34:33 +0000 (UTC) X-FDA: 81846901668.21.76BC701 Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) by imf21.hostedemail.com (Postfix) with ESMTP id 2E47B1C001B for ; Fri, 1 Mar 2024 02:34:32 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=M7JFbAiK; spf=pass (imf21.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.166.177 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com; dmarc=pass (policy=reject) header.from=sifive.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709260472; 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=yAET4leT0nXdUH/7/mbrBgjLpgYR5i4eKJ96mLEVZIk=; b=AsLsQcBeZYfz5wMGef1kRndwLPilnnjXFibVprANCVu170GpMvvF9ZRJvMMhm0DriWMO1c aEmN6HpR0n9gEVcaiUnwrKK2HifabmbgWGkF4UVYZDN6IgbFCn9qVvRDtSp7Iq1s8yH523 YVTTBBgI4a17E4d83/tZ+oebTtoJnzE= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=M7JFbAiK; spf=pass (imf21.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.166.177 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com; dmarc=pass (policy=reject) header.from=sifive.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709260472; a=rsa-sha256; cv=none; b=jqkvBe5Dh4yyDyBQ6PGaXqA/3GVtXoUFL3IkYYhC1DPRbAx72pGcD+UvBonEc488l86C0M QIGxNPDxqm2rsMimnCOwakGQvsvQvS7eFwifMZ0OfU/jBrmPYztIuZtghMbS4RLxJba6YW iCkVqqkHec5NrmtIaLSe9gXgwyKUptU= Received: by mail-il1-f177.google.com with SMTP id e9e14a558f8ab-36576b35951so10052615ab.3 for ; Thu, 29 Feb 2024 18:34:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1709260471; x=1709865271; 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=yAET4leT0nXdUH/7/mbrBgjLpgYR5i4eKJ96mLEVZIk=; b=M7JFbAiKIhF6yb2TgUBhL69l/6two2UCURlfd5PWq9d0/5EdlwmriR84O/SZFVysy2 a+S12W/bXVcbnwNvE6dRAmdqZvFo3miBz3uYcuus91+32duM/8OvRaKUUcuRSpo9TqSC CEx3XcCcfwa98+K92FJhSalf4BGXBx3aoEjXW5Hxf09RdkdJk/sn8YOJG8TKqAVuW6Nn y1Z0swDJuDfC6ViOfTdPKMplRR7lWh2erp/UpkmQROitXclXpmVw89WThzHZNk2cCU8E n1vWAYDseD72/glb0iJs4ZPv6gIrHfbaOwDkEw7wCFnw6t5rzDYt47ytK3llLztrA6bs 6VDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709260471; x=1709865271; 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=yAET4leT0nXdUH/7/mbrBgjLpgYR5i4eKJ96mLEVZIk=; b=lc80rgy1wfQIvDpY3tx4FghT71Gh96Hop6d6oiTwJsWOSzVbIuu+Z6/Ml4KtAmvB0W xarxG/FX7tz4NcN0fSNnFAh2l5std+zcOgNJjja+GskNkgl3PwLcbngyV3+Gt8qrBPY2 VaeRyT8DivDhuySri8TEyMay72pIS4c0jQEB6SEhcEBQ2NR7VrDx75nCsN/dQFUKm6rs 2xge3arBFmkGM/vf2EorRBuni67gCVtV0YO1ID4skBn7qcK+7twHmy8lBT+YeFZCHEhl DT5BjjNHktD4kU/XQvEZ5Q3hyK4OI0+sZSNyIRgnyXbrZ7jp9W/BuyliOIuedEIXZ26p +SNw== X-Forwarded-Encrypted: i=1; AJvYcCXygsnc8ODizGm2Mtve19BH3WbMF/x/uzATa2w6Zyc13PqAyLgRqfiLLvieMVZWiF7yxqHuZuMPW5qA6d1XYpI65kI= X-Gm-Message-State: AOJu0Yz3kz67avrfl85oYS5q+0mwHLGxsYSbQA0/QLGBDGaqpsYnvHJs BI2Zk1szmCu4mcvvON4GOljHlJMrXJYW0LxGqwsNukV6utbNE6wSPQ9NM10w3wQ= X-Google-Smtp-Source: AGHT+IHd7NbVyfUVYaIJTDtVo/BZe0JoHEDalKRgzupc9cLRGsTgC4gNqvIlKHujIa4XQO9kGrONMg== X-Received: by 2002:a05:6e02:160d:b0:365:23fe:12fb with SMTP id t13-20020a056e02160d00b0036523fe12fbmr613992ilu.11.1709260471245; Thu, 29 Feb 2024 18:34:31 -0800 (PST) Received: from [100.64.0.1] ([170.85.6.201]) by smtp.gmail.com with ESMTPSA id x9-20020a92dc49000000b0036421b06054sm656564ilq.20.2024.02.29.18.34.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 29 Feb 2024 18:34:30 -0800 (PST) Message-ID: <952cad64-d022-4ace-8125-3b20d3684348@sifive.com> Date: Thu, 29 Feb 2024 20:34:29 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [External] [PATCH v5 06/13] riscv: mm: Combine the SMP and UP TLB flush code Content-Language: en-US To: yunhui cui Cc: Palmer Dabbelt , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Jisheng Zhang References: <20240229232211.161961-1-samuel.holland@sifive.com> <20240229232211.161961-7-samuel.holland@sifive.com> From: Samuel Holland In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2E47B1C001B X-Rspam-User: X-Stat-Signature: qj81e6eniwyssthdmmj8pp66k4amsoku X-Rspamd-Server: rspam01 X-HE-Tag: 1709260471-706001 X-HE-Meta: U2FsdGVkX18YKlfFxrVBK7gsboHZkpKQ7z5US3OcF5jC4M9aqeHnCyDpy0lVVnP3IBQDRggHFR60qmYtgMwpnn7olILJ+Da1VWZ6atD6oeQ8tjH4miA064DIuNWCc2HpDOhhxhRUyravZDACEcMmLxEmqUq9lvYKV3DAAKL5ZQ0W0yiXSHzydUKwmBTFgd7RqQvM9xnnT8T5bPQvRnQvtVSRkLSsNrapHn8nur1fs6wMarX0bvDej6RudBkaSvvGFXtSTQSO/5cQdqxu7U50U3ffwENFDyrurENdRzoGk2n8lMeS2jGjkk8lbpMxnkpdAZFlCmh4tUTb1x5rY29G4XA2zVZjaQRQNHxTzngVAchcG3LxeiwBAPAdybY1e9YvHfFkDeCxIupH7h1yY0Ik4fVnUKYP1O9q3GAIGvOzb8lQH6xf7obFPohfGJNEWCd07RUSCd8m1dOH+3bVlXqj76Cr8EdY12WLAXylZJM80jMANDRiO6tVSjQsu0Ml72pOshLPYhl4K6U08PbbSgxx2qzNlWqrbfzC1mQFUV4QtCdnRJSLmVvGP7XgvVN23PYIJxhFpa3pDrsDkL3A4SO0mGNyn1J47WNs18CgYVylLjUUpVIE985QDXmy2Rcc+1YZI5NZTy46ak21faPU+37YwWMsOPBubKFFP2YwV3+mUmyNkWPBDrEeyOtiEm/USVaD/0cnMaN0Brcr8tiABuSnQqKKD58a2i/3F+iDiKUVjg6tkfRBteyhkRqruG+briX5lGrKAToAF9/IDyz8i+ib0lnicFdSxlXdGxo7pOwiCCHEvJ9bJTaPiyChVUT65cCK76YKcrJD2mIgY7p/x1o5qzE8bAlEnhSdugQ0T1x5hAmPWGoxOec+pKKGMhgPHTRrc/cCKS0roMWoHQTFe3/Mm7ciS2vyhGOpTwujLSl5K9fkNX1mSqBDUUysSeTxSmVwUSMNzmf16Mdjs9o9e7B DECaoML9 zAHNPV3uAyHtBRNho1Zx3Nwn9D5l1WEtZmPJ1wRUWuMLET5r+ks/2oTtt7MXW9dtCsIgwi1BtepQhdiSI+cx+ShnL7sAR6uBRD/8nE8G4oCaXsRdS4VKJ3f2PAA== 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: Hi Yunhui, On 2024-02-29 8:12 PM, yunhui cui wrote: > On Fri, Mar 1, 2024 at 7:22 AM Samuel Holland wrote: >> >> In SMP configurations, all TLB flushing narrower than flush_tlb_all() >> goes through __flush_tlb_range(). Do the same in UP configurations. >> >> This allows UP configurations to take advantage of recent improvements >> to the code in tlbflush.c, such as support for huge pages and flushing >> multiple-page ranges. >> >> Reviewed-by: Alexandre Ghiti >> Signed-off-by: Samuel Holland >> --- >> >> (no changes since v4) >> >> Changes in v4: >> - Merge the two copies of __flush_tlb_range() and rely on the compiler >> to optimize out the broadcast path (both clang and gcc do this) >> - Merge the two copies of flush_tlb_all() and rely on constant folding >> >> Changes in v2: >> - Move the SMP/UP merge earlier in the series to avoid build issues >> - Make a copy of __flush_tlb_range() instead of adding ifdefs inside >> - local_flush_tlb_all() is the only function used on !MMU (smpboot.c) >> >> arch/riscv/Kconfig | 2 +- >> arch/riscv/include/asm/tlbflush.h | 30 +++--------------------------- >> arch/riscv/mm/Makefile | 5 +---- >> 3 files changed, 5 insertions(+), 32 deletions(-) >> >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >> index 0bfcfec67ed5..de9b6f2279ff 100644 >> --- a/arch/riscv/Kconfig >> +++ b/arch/riscv/Kconfig >> @@ -60,7 +60,7 @@ config RISCV >> select ARCH_USE_MEMTEST >> select ARCH_USE_QUEUED_RWLOCKS >> select ARCH_USES_CFI_TRAPS if CFI_CLANG >> - select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH if SMP && MMU >> + select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH if MMU >> select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU >> select ARCH_WANT_FRAME_POINTERS >> select ARCH_WANT_GENERAL_HUGETLB if !RISCV_ISA_SVNAPOT >> diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/tlbflush.h >> index 928f096dca21..4f86424b1ba5 100644 >> --- a/arch/riscv/include/asm/tlbflush.h >> +++ b/arch/riscv/include/asm/tlbflush.h >> @@ -27,12 +27,7 @@ static inline void local_flush_tlb_page(unsigned long addr) >> { >> ALT_FLUSH_TLB_PAGE(__asm__ __volatile__ ("sfence.vma %0" : : "r" (addr) : "memory")); >> } >> -#else /* CONFIG_MMU */ >> -#define local_flush_tlb_all() do { } while (0) >> -#define local_flush_tlb_page(addr) do { } while (0) >> -#endif /* CONFIG_MMU */ >> >> -#if defined(CONFIG_SMP) && defined(CONFIG_MMU) >> void flush_tlb_all(void); >> void flush_tlb_mm(struct mm_struct *mm); >> void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, >> @@ -54,27 +49,8 @@ void arch_tlbbatch_add_pending(struct arch_tlbflush_unmap_batch *batch, >> unsigned long uaddr); >> void arch_flush_tlb_batched_pending(struct mm_struct *mm); >> void arch_tlbbatch_flush(struct arch_tlbflush_unmap_batch *batch); >> - >> -#else /* CONFIG_SMP && CONFIG_MMU */ >> - >> -#define flush_tlb_all() local_flush_tlb_all() >> -#define flush_tlb_page(vma, addr) local_flush_tlb_page(addr) >> - >> -static inline void flush_tlb_range(struct vm_area_struct *vma, >> - unsigned long start, unsigned long end) >> -{ >> - local_flush_tlb_all(); >> -} >> - >> -/* Flush a range of kernel pages */ >> -static inline void flush_tlb_kernel_range(unsigned long start, >> - unsigned long end) >> -{ >> - local_flush_tlb_all(); >> -} >> - >> -#define flush_tlb_mm(mm) flush_tlb_all() >> -#define flush_tlb_mm_range(mm, start, end, page_size) flush_tlb_all() >> -#endif /* !CONFIG_SMP || !CONFIG_MMU */ >> +#else /* CONFIG_MMU */ >> +#define local_flush_tlb_all() do { } while (0) >> +#endif /* CONFIG_MMU */ >> >> #endif /* _ASM_RISCV_TLBFLUSH_H */ >> diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile >> index 2c869f8026a8..cbe4d775ef56 100644 >> --- a/arch/riscv/mm/Makefile >> +++ b/arch/riscv/mm/Makefile >> @@ -13,14 +13,11 @@ endif >> KCOV_INSTRUMENT_init.o := n >> >> obj-y += init.o >> -obj-$(CONFIG_MMU) += extable.o fault.o pageattr.o pgtable.o >> +obj-$(CONFIG_MMU) += extable.o fault.o pageattr.o pgtable.o tlbflush.o >> obj-y += cacheflush.o >> obj-y += context.o >> obj-y += pmem.o >> >> -ifeq ($(CONFIG_MMU),y) >> -obj-$(CONFIG_SMP) += tlbflush.o >> -endif >> obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o >> obj-$(CONFIG_PTDUMP_CORE) += ptdump.o >> obj-$(CONFIG_KASAN) += kasan_init.o >> -- >> 2.43.1 >> > > git am the patch failed. Was it a patch based on the top commit of linux-next ? This series is based on the for-next branch of riscv.git, which is where it would be applied. There is a conflict with commit d9807d60c145 ("riscv: mm: execute local TLB flush after populating vmemmap") in the riscv.git fixes branch, which added a uniprocessor-specific local_flush_tlb_kernel_range() definition. The appropriate merge conflict resolution is to remove that new macro, i.e. take the version of the file from this patch series. Regards, Samuel