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 760D9C54E4A for ; Fri, 1 Mar 2024 02:12:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D1DB86B00A8; Thu, 29 Feb 2024 21:12:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CCD476B00A9; Thu, 29 Feb 2024 21:12:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B95B36B00AA; Thu, 29 Feb 2024 21:12:43 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id AA0E26B00A8 for ; Thu, 29 Feb 2024 21:12:43 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 7CDC61C0D0A for ; Fri, 1 Mar 2024 02:12:43 +0000 (UTC) X-FDA: 81846846606.19.FF18F97 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) by imf13.hostedemail.com (Postfix) with ESMTP id E4EAC20007 for ; Fri, 1 Mar 2024 02:12:40 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=iZNVq2Fw; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf13.hostedemail.com: domain of cuiyunhui@bytedance.com designates 209.85.210.51 as permitted sender) smtp.mailfrom=cuiyunhui@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709259161; 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=r3SFfjWGyTSE99qrr0Tnrw16LTdrZNolz0yFIJjwrxw=; b=BXxt+LMrZP6tpo3ZGhqRgDeOJUoMbDMkb2jAGY8lMQ4SK4QEpcgT9BAwDVVEv2myHv1JrL mc3QKyNBtl8PHX2GYAK0KnoVPjXkc0Orx4mnojRHDheSif185/y/qzVZkWz2Gyh95scvk0 HOOYjheW+VQN7dMKqeZvW7bBVKhEdWI= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=iZNVq2Fw; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf13.hostedemail.com: domain of cuiyunhui@bytedance.com designates 209.85.210.51 as permitted sender) smtp.mailfrom=cuiyunhui@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709259161; a=rsa-sha256; cv=none; b=ESfmItdRZWnRIEtmmlrzHO/GTt1uvER0emL2z8cOY+xKaoC6NnXbnqSALEXAvWY2LZCcXW LhZn9YFiqzzWEZMpqztMU3aSjbtfnYZfI3z7Gv/2oquq7MqU+LsX+Po+xh1dcekAdpycBE 9tDHHWAcYBDKG724AZy25TT2Ia456mQ= Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-6e49872f576so863277a34.1 for ; Thu, 29 Feb 2024 18:12:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1709259160; x=1709863960; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=r3SFfjWGyTSE99qrr0Tnrw16LTdrZNolz0yFIJjwrxw=; b=iZNVq2FwWG1aJmF3aJdo+LyxCYedzzcMrKZd0pnj3GNPCwWGp9cPVOK69l55bWExbt QRoXkLsFDk/s5kLMln9A/uCubeCToSc7132aLaSq/XX7NSZ/9oFfzYgXaJduzE2bDtJi UvmlcDDhtY4LYbroS2ors5S4m+KdemGyy7Eli1c2nkoJn6mNYq+50pE8zFKXgEzJNWnr Ld6vuVlE6HOB8Q+lku0gicc0JlriTSXG7NX03GICDzBdIhzS5HbQkUd+pAFQisok0U2m MSa0U9NuR+e88WNU3+KffbxR1pB9wdSXM5G0EXcESdN9uPnU5YN/pAPVvpp/YaekZ9GN ZE5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709259160; x=1709863960; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r3SFfjWGyTSE99qrr0Tnrw16LTdrZNolz0yFIJjwrxw=; b=TBbDbvut8g1Tuw2r3ujNS2skUGFbAGxxLxsxDVJDQQ+ucIsJmCzg29zWIIhSwt9fQL hbiJFGMz0SVMRZfRmDUAcvOEUHsp3IYmYkhZmle6KGYDHXLvKTdnaghHldfZTOjN7vtu r2+fVWHcctg7QOWqIysTTCr5EO1PkSAKXV9eqcWQ+59T48iwS1xAKn9qxT2DPTNTv+6a cKasvg8wqc3IiaJpac88jdyUOqYCzGBCqY9n77LwWbl71VIib0KkoAUODhG20Zp+O6Ld uCsdicGMVYrYEXizt1s2pBxyVWRGZGyQqMq584ysbb2hkprr5pXpHKREztnz3OJxBeqg BoPA== X-Forwarded-Encrypted: i=1; AJvYcCWKPDddRu8mW+mT8TT+HKTwhnbNfht3Mr6oOLQOYmFUJKH4++vOqhPZYJNG0a93cMRN//PlajNoXjUKZ7vgqEZy7es= X-Gm-Message-State: AOJu0Yz7LKfH98YWRswqvo16nDBPvIyncOGsj/Y3w7jvVlhGR+OJxP2n l+Lfx74PwAWYXxSVtylsvdnO50fsp/KV4kt87+u3Z3Y/rkbx7lhHmMIAv7lXdhZ1eSN0rhzDghj t0g4MZHuz39xyihkgYGQGw8R2sj8soZFercZWCQ== X-Google-Smtp-Source: AGHT+IHo//tiM479EyQm3qLlzScCeQGdZKUojNRzyefzcHNqYrNX/D/mumQN7bmlRV1/paZVkvfk9qXQoBjLMcEk9aI= X-Received: by 2002:a05:6870:2b19:b0:220:abe0:8efb with SMTP id ld25-20020a0568702b1900b00220abe08efbmr375688oab.13.1709259159890; Thu, 29 Feb 2024 18:12:39 -0800 (PST) MIME-Version: 1.0 References: <20240229232211.161961-1-samuel.holland@sifive.com> <20240229232211.161961-7-samuel.holland@sifive.com> In-Reply-To: <20240229232211.161961-7-samuel.holland@sifive.com> From: yunhui cui Date: Fri, 1 Mar 2024 10:12:28 +0800 Message-ID: Subject: Re: [External] [PATCH v5 06/13] riscv: mm: Combine the SMP and UP TLB flush code To: Samuel Holland Cc: Palmer Dabbelt , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Jisheng Zhang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: E4EAC20007 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: emb7ciuk3ojdeyjopmydjofswcgzd7p1 X-HE-Tag: 1709259160-628655 X-HE-Meta: U2FsdGVkX1/Nl1ABpNzhV1Jq64mNppAE54yCS0z6dGGC9PntHVb160O2qioxQlrOD1z2Esr5yJliuBhOY25ie3r45DBiC2pIQJjSPIuGX3gIFRDJMpS3dMOFNTRnHzl311KtnOCcwvkbFPIMx/PR0rkdBLyKfwk285XJxjLwvFd4SVOYAxnO9psTsdmeV/N9ZU2hG0pTiEnz2AsIPIV0Cts8qCJsFylKMWpyPc6cWw5hF25gI1UIGW7APkO/mCHck6TocO9e/uZQptPyBrpGpR5CIdC+JKGxZIxMIsgm8+A2mPz9tD5UgMIyYxUO3khapfxjztAmMotrn5hzL5hIpbRfDLAWyxzcLHdHIh04AnJxtSkCbSOKjOFJkL7n/wGXe4KNgatXnufYlW6rXR5/FJKLfkp6s3reV8FPodaT3xpo6eHKJeZia19mrmLju4CgcyZ/NHQiSsgHbCysrBduhfvI8VEi4/rIsXJnGdXf3WmNzJVw3G9OvI8zEVTmvcONa8wG7jbwJg9BDYNb8UxWiP9L3SAD76OpmJUQuidThapLqAf2o/ZI3GuRciWM1gY82RftWNg01C1mplMA397bBCIleO/oS/BeGhvIDmyZDh/sngqltIMABdn/X+XEpFgqyR6XfNVSLZZlr/U6crtf/d3o/W3hM8LDofpo/0HaJzCRqZEoLmd/e73+Ih9MQYpd0inSAkbYNYcLSZ1bb/kDcuYj4eTxUaJV/nhWSoQLuAijsgvkF7xlE20RWAW7XhXquPrfH4V9oyJp6pxkwk8XudcLcxnB/wSh28Txa/ZIhgf6v0veFuojzxHZqGLZud1PxUGEMjU27W+oyXJZRZkn7xmgP7YJZHuDlkRtMiWteKWbIBzevvvLrYXMAEe/8bB530GXew3O/XAqmFOCmcpbU55XrtnvdKZL5CJCLisXtWzuj0OlD3/B4sjPdjrRSJNU4hw850pEgtY2VwVfMLV JcxftPvH ws4ONs9QBtOlEQKVVOXv0AAiyZFdoH56/KYakVZv1n0dzMaDwZDwEaqNDeQHj+SSTOjln38Py/tUmizjqveQujsvce5EyI6AoIhPv8X/Rv//dht7T2lN2Whsw64ARggyLICM2m1dvxlt4mgM0cJiFotiWffXk99T9j9wRQFZXwSodNNK2w2Ge181rMbOgstghjGKeltP5sealJ5jvYWP3fhsWe7z+LkNH8XtBcU9QIIXXCofKEp5NSeHlzgZLvFjqzLbr3lD+lcqSQkjaM4+XMwo49k6sEGa+ZeL6j4dvCCNx9EA8HBwBnttcZNRtGAJbYd6Uu3n7j1w+c8QfNdWMmllScihJOOjWFllHBjaK3E4Bs/BtF3KfFgxKyI+hsMykQ0AAOJv6AW8qiUODjdJI8Lc7K0rpWK151/0PmPzntPu5Wtg= 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 Samuel, On Fri, Mar 1, 2024 at 7:22=E2=80=AFAM 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/t= lbflush.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_un= map_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 :=3D n > > obj-y +=3D init.o > -obj-$(CONFIG_MMU) +=3D extable.o fault.o pageattr.o pgtable.o > +obj-$(CONFIG_MMU) +=3D extable.o fault.o pageattr.o pgtable.o tlbflush.o > obj-y +=3D cacheflush.o > obj-y +=3D context.o > obj-y +=3D pmem.o > > -ifeq ($(CONFIG_MMU),y) > -obj-$(CONFIG_SMP) +=3D tlbflush.o > -endif > obj-$(CONFIG_HUGETLB_PAGE) +=3D hugetlbpage.o > obj-$(CONFIG_PTDUMP_CORE) +=3D ptdump.o > obj-$(CONFIG_KASAN) +=3D kasan_init.o > -- > 2.43.1 > git am the patch failed. Was it a patch based on the top commit of linux-ne= xt ? Thanks, Yunhui