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 CB15BC47073 for ; Thu, 4 Jan 2024 12:36:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A8058D006F; Thu, 4 Jan 2024 07:36:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 05A428D006C; Thu, 4 Jan 2024 07:36:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E3A708D006F; Thu, 4 Jan 2024 07:36:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CE8FB8D006C for ; Thu, 4 Jan 2024 07:36:51 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9C972A085A for ; Thu, 4 Jan 2024 12:36:51 +0000 (UTC) X-FDA: 81641577822.30.BC72F93 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf12.hostedemail.com (Postfix) with ESMTP id BFD8E40013 for ; Thu, 4 Jan 2024 12:36:49 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=QkGibvAi; dmarc=none; spf=pass (imf12.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704371809; 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=0rbdo4C/X6bEIX/A1ZdBX4InlDHJmGdJuXNskE1V/Lk=; b=YSSXto37/pLOJYbGBxc+ivYNoKYZZb+tIl+jAZvtT3nxLKxIKYT9dkQlSNRFVPc6JuHvjE r+eDju4WNXhLQBR4WyL/AvuOSn6cjTtWizsgluROfwNwcQZ1IIZw6qNZxQvjWHnmod/CB+ YR/1UiTD6H6jFmrYfIToYk6m//ldPq4= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=QkGibvAi; dmarc=none; spf=pass (imf12.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704371809; a=rsa-sha256; cv=none; b=eQiNAxelr9+1LKs6t9OUK0hQ5QTE5hRjT+ALoMIuW9TCBxsb7m9hJgDRYAWf8zCk38qnEL YfgF7U7FwO6+nAaSPRwZgILykMUvahY2Ckhs1/kN9NOrg3h1DIEQyu+PAA/40c65hJUxLu 5W4nxYaJZotJ59rFD8ehihohR6dsK+c= Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-55692ad81e3so537081a12.1 for ; Thu, 04 Jan 2024 04:36:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1704371808; x=1704976608; 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=0rbdo4C/X6bEIX/A1ZdBX4InlDHJmGdJuXNskE1V/Lk=; b=QkGibvAieHYErs2SWY+zHf39aj/QLG6N5DnY+Rukcfu0+QZDbCSSIxtmrGUO/j4JaA Te7T9XCKiqvwiujdh/ixEUmSUQzwosthnlFa8r4wztLPk1tsnU5eWWWkopwTjBYOmi5L v3t/RzuYJieuv0DAKzZgdNkQWm9BvaX8nknqUcHBgMfjI3vbp6UcXAzJwtep9nfGvz6o /md7SSr4sJr3vcGrOS4uc2wJbEUO869VvdClRflM8Jdqp+KQdEC48w6PkZX5HzSxBMeX Pse15sUVS2i0dZq5a+c6jDXZIV8GTxofwlOanNc0tepsJw/sP4U+rVSDreQKSiJSbzzz yLDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704371808; x=1704976608; 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=0rbdo4C/X6bEIX/A1ZdBX4InlDHJmGdJuXNskE1V/Lk=; b=CnCEkuL40ylV+z3a0zgmDBez9Uy8OqtN7A2AmC1tOG+Wkz21w8VxCmKVazT23hBLTE wBy0t1bqRcspJF/xXrucpLPGFeobmxph2bbkVWvGhz63zl8i98EBlKqja0gG6Hjk1qpL c+PtX5RZ33yHR6JY3Ranx5aAjvJA8+pOZN8PHXuWbW1DpeGo+3Cbwzb2Nh1Dl4tPQjfv oEeKkoWiTb4OBwckwzQHrb1nvkDMRDrVOqQOQN8W3+Rw8/h958pXQJB52eyGxmK4sKLu uLWnP1vZy9hUILuFqOxLSySQE1Zv2ENWcVrnik4xuI6bQ0XdazDOzuffnCm/Yg60e9dB FtTw== X-Gm-Message-State: AOJu0YzjLeKAlYxKN1U1oVzT1ZL+uICSPlzhECkBsN16vKEQrgkJqkvf ryCS/ZuYhHITzsfG22GnrSviKpE1MDun7g39yxkmXCSiJhM61g05kXPKAkO+lHM= X-Google-Smtp-Source: AGHT+IGrAlcRpWxucvqwsc1/ERZuXk0N2sSJ8gsatbwcwVv03z9oBwqPMxWY/LDrXUnQbg+z7RR2d1qVfgbCtNvd/Cc= X-Received: by 2002:a17:906:58d:b0:a28:893:64a8 with SMTP id 13-20020a170906058d00b00a28089364a8mr336250ejn.85.1704371808415; Thu, 04 Jan 2024 04:36:48 -0800 (PST) MIME-Version: 1.0 References: <20240102220134.3229156-1-samuel.holland@sifive.com> <20240102220134.3229156-6-samuel.holland@sifive.com> In-Reply-To: <20240102220134.3229156-6-samuel.holland@sifive.com> From: Alexandre Ghiti Date: Thu, 4 Jan 2024 13:36:37 +0100 Message-ID: Subject: Re: [PATCH v4 05/12] 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: BFD8E40013 X-Stat-Signature: rg9qtrnjt4qpq1rkdwdqcuw6nnzd9aq1 X-HE-Tag: 1704371809-622727 X-HE-Meta: U2FsdGVkX1+ZaZvWLPsiABZqeMYmWupPr2agpkR1+vv9FvDzFWu+2ZJCiDYE3R8ofasjSnC1V5FY4tv6nXvBqkUf8JxNXiGNyi2uPxaG4WAfRi97BXPgtwYDrxHj7vTqkXNHOrqq+D/XjNuDPt/3lc/3xuZ0026HArvDOVt5dbHApZfWLztcJuEJif979FY6t7xbXqhcjxpqH0qwCH8wcmylTZpHFDkaoTdxP4C5CQO+nu4pD1+0QLhHLG7YJFrYYkcMjzfZMHEDXl3w/3uICxyt9Uwwa9tBmxXDfoMvYguD/yREGY1GhB5/weRv36A9FzYKbBjjEndadOPCJqxJNupA3AOrQAyx922m6QXELQmbK3QLo7LTWCwdEV2QlotMRY5gV3p5kFpDH/dblIMgCAgRtCg+9+lyVy30ecYNkWsgReafTSlj9oCRgvx42jCf7v/ZTV5AAZI2pVy9X1Ee3iRVBKcBEbi2VCgNSSDFkTWz34988xhFc2XE5ikSGoFS5RiuEmjMddyQlzpGL/Vjy4lDyKY6TWbBcPEkXZIpQvLspkiobyMUVbhkBmrV0LJ/KH7IVDaiK0D7xyySWPMB3qN1Ys3d+KpLNd0UFEGOaMarSBglYfd0hDFWJsk8TPlSTHq8vUs+5UuUir44mOlpyFmpPZtkzvaSS4e47MxbzJiBPEDqvNHyjTKOePzl28yFb1Qv93je7WuVBM5fq7rFM1Yb7wMIvC51vTTTr50Qz0B9LxVDsGRqX06/Twv3nPT1QD3JkST802zRCXEUeBEuIVeY/2xI2VizmQyt8AqhEch3y0EdX+tjF2g6aglF6q9bkqyaE27i1f5R6LsWcXkUTfaitPO0+zs2AECGQgD7QEEIL42z//X+SePYQkMyjHX5iRL6smdOOvXdOlWjem9a2wvsuCJqO7q7TjNZeDoR1oe6luzfJuIBUHaS1WnifQFg4wuoxJoS6XWG0bXgojh peEfp1lk atvZwQ3RoYWfqUU6oU+hPF+Ncagd7D0ACfZzDqBBcyvJVoodQ8XzOFVf6GzQzSjEZGz+XBugz8gh9fB3qzhnWsddlo05iU8+9tOpQloy13Zp1cpdcer6ujo++03ZKJTpKTLldAIs9TIGEG0wc6IYvYa96ZD9l9qmUTlGj7wzrxjRrbdRJzhW1WYuo7QzoKt7T7yX6KgrIAIYgGZvfEjvYozaU8/5jvuQtaCi+B+StjDlqRtdJ5+k4e4CUWXyZwzv5pNJPgq4QUs4Uifnro2cAsPacf0nHyy4CxMwJ7npbAjbD7YFEdJnbNPbYPwkahp8sB/JWNAh8BoSz7SHR+J6wWy74Bw== 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: On Tue, Jan 2, 2024 at 11:01=E2=80=AFPM 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. > > Signed-off-by: Samuel Holland > --- > > 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/include/asm/tlbflush.h | 29 +++-------------------------- > arch/riscv/mm/Makefile | 5 +---- > 2 files changed, 4 insertions(+), 30 deletions(-) > > diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/t= lbflush.h > index 8f3418c5f172..7712ffe2f6c4 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, > @@ -46,26 +41,8 @@ void flush_tlb_kernel_range(unsigned long start, unsig= ned long end); > void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start= , > unsigned long end); > #endif > -#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 3a4dfc8babcf..96e65c571ce8 100644 > --- a/arch/riscv/mm/Makefile > +++ b/arch/riscv/mm/Makefile > @@ -13,15 +13,12 @@ endif > KCOV_INSTRUMENT_init.o :=3D n > > obj-y +=3D init.o > -obj-$(CONFIG_MMU) +=3D extable.o fault.o pageattr.o > +obj-$(CONFIG_MMU) +=3D extable.o fault.o pageattr.o tlbflush.o > obj-y +=3D cacheflush.o > obj-y +=3D context.o > obj-y +=3D pgtable.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.42.0 > Nice one, you can add: Reviewed-by: Alexandre Ghiti Thanks, Alex