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 1E921C54E67 for ; Thu, 28 Mar 2024 02:21:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7E3C36B0082; Wed, 27 Mar 2024 22:21:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 76D676B0083; Wed, 27 Mar 2024 22:21:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 60C236B0085; Wed, 27 Mar 2024 22:21:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 425D96B0082 for ; Wed, 27 Mar 2024 22:21:52 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C26A3160E89 for ; Thu, 28 Mar 2024 02:21:51 +0000 (UTC) X-FDA: 81944847222.13.367FB65 Received: from mail-oo1-f44.google.com (mail-oo1-f44.google.com [209.85.161.44]) by imf28.hostedemail.com (Postfix) with ESMTP id 4417AC0009 for ; Thu, 28 Mar 2024 02:21:49 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="JU/haXBx"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf28.hostedemail.com: domain of cuiyunhui@bytedance.com designates 209.85.161.44 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=1711592510; 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=yt1qJ/aapzEk7b+bqj1PXxdFxkUP6vsNQasniKK4Xiw=; b=1sDUZS6fECnGbcIFRvWhf69SUMzGMcIRWCZSSxo3LUZSbIpLvKXtqaENRQA3JFxuQwrjCG iTiGizyZPluN1KBg5i07/mdwgMVU3J0IUDG+FqENf+d5aW2xOlNoiw4YUnSYhRmlIbWEN/ AONm6B1eiQgO1ZX4MB8fjFCxTi7yoFg= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="JU/haXBx"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf28.hostedemail.com: domain of cuiyunhui@bytedance.com designates 209.85.161.44 as permitted sender) smtp.mailfrom=cuiyunhui@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711592510; a=rsa-sha256; cv=none; b=tzRGG5VGaCeFv90J0gVGVHn6P+4iJwFYznMQ8BpGxplzhPOGXGXuuPYXgAy6Ok1duzNFOZ TZgxZhP60E5TK6Ez6geO+m8VyHroxVaIY4mznvG3PtQjEJa13jnHGXTgh7v8uJrdCCVMjv qJntsmFycOrjmjE9w5b8DEjZuMjN6Zk= Received: by mail-oo1-f44.google.com with SMTP id 006d021491bc7-5a493475aefso696468eaf.1 for ; Wed, 27 Mar 2024 19:21:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1711592508; x=1712197308; 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=yt1qJ/aapzEk7b+bqj1PXxdFxkUP6vsNQasniKK4Xiw=; b=JU/haXBxT6oqJpHskdtUsBZJc5sMzHVcqIW65VkH4cWGdlaj9gv0gr54zrKadPt+8d lMKkaCiS7G0Bpwbzq6FRFSPubITapdIfSEILEZ9vIVBBCbdYt3Ar77lVSRVDme9s2zUH DE1+FqDgi49VX02n5O8UBrS2CCgcAeiqS67nINdZMWANObs3ggSX2UC/QSfmScFMRvDX FGg00TBO2yvb87K5+75YejLkOs6j7uV0Wt8rWuXpHvjMfikIzq/ncB1D10I7woI0am8G sAv9gE8il4AUeVXyg8qrBUO8r5yLw6WapxaF6qvzGIzSiH5tlItblsdadRh0E4r0Igza 5zHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711592508; x=1712197308; 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=yt1qJ/aapzEk7b+bqj1PXxdFxkUP6vsNQasniKK4Xiw=; b=vqvsFY1zo73PEu51TzG9R+04JgEy3jOQ4oBLql8YGQGSCFN5v1+dDdGqiJMHiE+1Ma NDV80nDmkABKi/6y4yfsqyHTL4WHsatmT3PHy084HMjOg1x3kBUEZeVXm5rxJynctjos 5MUSFihhFjbvdbro/WsXI/afvezOplxDzB3w0ab55uQqj0Q1EZ/PjpLhaclsaC+G0yok 1nB4D1APrXWc1tX9Gk8WpXETtXwZynsUnBX/cX7U61td+TZaS7QrFpJdWxaDThW8PtU3 WrCAie55jrwTbiQnT3+TcdntUyZI/4TXbsGPVg6Z9JIaOc94DQHGlPbf61C4JCrPz1BJ RHiQ== X-Forwarded-Encrypted: i=1; AJvYcCXGQOrek2TlfZYZgf8k7li6tnOsWZ0rZuaTakhrN6P1xdH3y2pohjjgbQMkKf/etGw1opwOAguz9LPouF/7hPBglmg= X-Gm-Message-State: AOJu0Yw1sIEcqZT0dp28Na/hSlX9NhkcDrh6z+94fJ1C7EwQPVo75LJp 7Pu7NePXMjt6ibOCeF6oUi3rXWZyNLdE1Jak6rz2EggB0cV3mzutVZebZRuyY/mtgyDSJuhV5Ym H/aWwDF+xz9NWwYDTaVD/MTsC+/Sxf0N9OE/6tQ== X-Google-Smtp-Source: AGHT+IF7mvHjc+uzeHTN+S+gkIbUZbxU6z0DSjgvfA9hDpJa/w883Lt26dgm5e98f7MAdqqDGgZYC4cyC2x9ZkE+D3M= X-Received: by 2002:a05:6870:e97:b0:222:8961:43fa with SMTP id mm23-20020a0568700e9700b00222896143famr445494oab.15.1711592508022; Wed, 27 Mar 2024 19:21:48 -0700 (PDT) MIME-Version: 1.0 References: <20240327045035.368512-1-samuel.holland@sifive.com> <20240327045035.368512-6-samuel.holland@sifive.com> In-Reply-To: From: yunhui cui Date: Thu, 28 Mar 2024 10:21:37 +0800 Message-ID: Subject: Re: [External] [PATCH v6 05/13] riscv: Only send remote fences when some other CPU is online 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: 4417AC0009 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: boh1c4muf468wf5r339s15gru5k3ucx7 X-HE-Tag: 1711592509-198490 X-HE-Meta: U2FsdGVkX1/Y+cihsnqHy62N8Os8G3wwSlwR4uZTLKORGUkAtkHdOsSCOs2vSlYvTIL3EAx5+U9gD3viR7cq1iU+7jOKeceEJf38PKu2k+aSmEZPMtLQDBMsXgTWCH7UzvQx/1KuXtU8XeubTD9pIyOaYulIXVA2Q5txoLyQMbYjtsI0m2FtJH/pNuKVDCRwXE5oWvKBURWhj1iG7DYruBVlZk8Qk3XVRsd7R2jfGpPvKh4WXtEE4v3ARQdsZ6JoLpQby/XKbZWQcKn9c1jt7Dr8xY34HZTiMV9izTTCdtaeT7iuZ+26ilGhNvs/zVYKwDow9re3kCPoj4avhdYM7KHF0aIZceWt1QBEXxIXqU4l605bi94m+IrORDSniwz6lkYk0OeT3a0L0Iixp+2t6/TeCnL7sKwitZ2c3x+uAjbfyDoph4U/O73TcF4Ex2VYId/7quXDeG/gJWqoI05ukMlAdL3enBfMmd0iZD2M5jEI/d4Pjcfg85hn9p53D/SMJhMY19N7I0W7/XB/ii8xuxliIexoY9hIG1v2GjZFIhY2rLRnNxuE1+jlm/raSdPylgngHxQ2MyJyZPutTDkuaT5AbsTRhJU633UcaLCdjsGuEjgRtCPdds6i117VCkzdpp5YkLfkc9J6dMIBRmi8xEGJQ5EoSTJcc/LIXvGdHrXP5U8GpmITy6ut9bwLTUsEE2cXOAnnbF+zMwoPERGEWx9N04B+0wJFZmE5d7azDNEB6JGA7a1VM2OCRFcEhC2IiNAHzylld8W0LWhUb2SJJrWkw+3r/Pogi5Sse71moo1mE2ZxZHFNCfbpi7YeFJqXdmktpR7letef6mo20z+Aobwt3O7SSKnoqSLfOPFqAMQyJI3OyhoUTmV68x780eOn2b/YPz1z7HkGgn0WqS4QOOjMcYNYRyoWSAo4Jo7A9AOkZVrpUx0AilFh6NUPD5YzqxcqQBbeYz+EtjC6tIh NIU1YNeG 28VZ/6FGoZFbnRDNzVgLnxCEQKPf48GgVWAR6yAV/zQXYX74RTDkHqMfnOGIsNQSAzA7pQU+IEzR93DmEBuRpOSOA1aadBUl09ky2SDXGExmKDsDf+tSNTyGgSkOWF5BgtvTfpb7WiGzVwJU3ndUx/zKTbFIpBhQU964f8ovqRcF2b05t2UhqG08Y5zdjwWGh+wmZphP15TX9+DEgKLu8f6vQ4Wf1w8Hgy87a+n5wmbSIiofe3f/xUK6oX6A9wVlr0ztaA/AfhuwOs6J4oWCiEJZ/xbViovJY260zn/NQYVqxiiY= X-Bogosity: Ham, tests=bogofilter, spamicity=0.019534, 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 Thu, Mar 28, 2024 at 4:14=E2=80=AFAM Samuel Holland wrote: > > Hi Yunhui, > > On 2024-03-27 1:16 AM, yunhui cui wrote: > > On Wed, Mar 27, 2024 at 12:50=E2=80=AFPM Samuel Holland > > wrote: > >> > >> If no other CPU is online, a local cache or TLB flush is sufficient. > >> These checks can be constant-folded when SMP is disabled. > >> > >> Signed-off-by: Samuel Holland > >> --- > >> > >> (no changes since v4) > >> > >> Changes in v4: > >> - New patch for v4 > >> > >> arch/riscv/mm/cacheflush.c | 4 +++- > >> arch/riscv/mm/tlbflush.c | 4 +++- > >> 2 files changed, 6 insertions(+), 2 deletions(-) > >> > >> diff --git a/arch/riscv/mm/cacheflush.c b/arch/riscv/mm/cacheflush.c > >> index d76fc73e594b..f5be1fec8191 100644 > >> --- a/arch/riscv/mm/cacheflush.c > >> +++ b/arch/riscv/mm/cacheflush.c > >> @@ -21,7 +21,9 @@ void flush_icache_all(void) > >> { > >> local_flush_icache_all(); > >> > >> - if (riscv_use_sbi_for_rfence()) > >> + if (num_online_cpus() < 2) > >> + return; > >> + else if (riscv_use_sbi_for_rfence()) > >> sbi_remote_fence_i(NULL); > >> else > >> on_each_cpu(ipi_remote_fence_i, NULL, 1); > >> diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c > >> index da821315d43e..0901aa47b58f 100644 > >> --- a/arch/riscv/mm/tlbflush.c > >> +++ b/arch/riscv/mm/tlbflush.c > >> @@ -79,7 +79,9 @@ static void __ipi_flush_tlb_all(void *info) > >> > >> void flush_tlb_all(void) > >> { > >> - if (riscv_use_sbi_for_rfence()) > >> + if (num_online_cpus() < 2) > >> + local_flush_tlb_all(); > >> + else if (riscv_use_sbi_for_rfence()) > >> sbi_remote_sfence_vma_asid(NULL, 0, FLUSH_TLB_MAX_SIZE= , FLUSH_TLB_NO_ASID); > >> else > >> on_each_cpu(__ipi_flush_tlb_all, NULL, 1); > >> -- > >> 2.43.1 > >> > > > > From a perceptual point of view, the modification here is not > > necessary. There is such logic in on_each_cpu(). Can you share your > > test data? > > The logic in on_each_cpu() doesn't apply when riscv_use_sbi_for_rfence() = is > true, so we would make unnecessary SBI calls, and cannot be oppimized out= when > CONFIG_SMP=3Dn. Is it possible to do this: "sbi_remote_sfence_vma_asid(cpu_online_mask,...); " instead of adding: "if (num_online_cpus() < 2)" ? Thanks, Yunhui