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 DDC84CD1292 for ; Thu, 4 Apr 2024 08:04:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 704776B00A5; Thu, 4 Apr 2024 04:04:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6B52B6B00A6; Thu, 4 Apr 2024 04:04:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 57BB06B00A7; Thu, 4 Apr 2024 04:04:13 -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 37A916B00A5 for ; Thu, 4 Apr 2024 04:04:13 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E04FF80E2C for ; Thu, 4 Apr 2024 08:04:12 +0000 (UTC) X-FDA: 81971111544.26.F27F5AF Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by imf15.hostedemail.com (Postfix) with ESMTP id 22527A000A for ; Thu, 4 Apr 2024 08:04:10 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of alex@ghiti.fr designates 217.70.183.196 as permitted sender) smtp.mailfrom=alex@ghiti.fr; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712217851; 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; bh=ZflYejt5YFI5d7U1xZXMaufx7pxYzeyLA32aM805nBs=; b=sY/oooHFMxYBOxQzcqmyj52kwIdjvdD2oFspSnpn9SmXGlc9gFxQ/PhYBYw1PKbb6zGeUn NqCCo45N8/dwYOpDjBV3khGvU3HwhwcIPTVOmfG4Ahqrva0J/hkVPAi/ozSGzYMTQp8dTx ejmsDz1dd2XiDSYYLydHEPhEmNs78+Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712217851; a=rsa-sha256; cv=none; b=zQxPIo+e6eByRGwcDUDqJS9fTLBrsJ5nJd6uP/14Qmumb5qcg0xiipBgR/WO5xcMGyvL+s ucTyugMbSq76txkYoVrc9dCFEkbJl72BwVXeQPSsqDBUvSS4FVUmnNM1RYWA7YQEHO9i77 fMgUn7VmcajRd8Rzj2lSRwFOBEYwyvM= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of alex@ghiti.fr designates 217.70.183.196 as permitted sender) smtp.mailfrom=alex@ghiti.fr; dmarc=none Received: by mail.gandi.net (Postfix) with ESMTPSA id 54BBAE0011; Thu, 4 Apr 2024 08:04:06 +0000 (UTC) Message-ID: Date: Thu, 4 Apr 2024 10:04:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 05/13] riscv: Only send remote fences when some other CPU is online Content-Language: en-US To: Samuel Holland , Palmer Dabbelt , linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Jisheng Zhang , Yunhui Cui References: <20240327045035.368512-1-samuel.holland@sifive.com> <20240327045035.368512-6-samuel.holland@sifive.com> From: Alexandre Ghiti In-Reply-To: <20240327045035.368512-6-samuel.holland@sifive.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-GND-Sasl: alex@ghiti.fr X-Rspamd-Queue-Id: 22527A000A X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 7yhcdmze7us5eti9d6zsmfrud4ugpopi X-HE-Tag: 1712217850-418261 X-HE-Meta: U2FsdGVkX1+CXGoKVvGeR1hxAQpfgt3+1TTLo0DMuF5F9ddfvIFyJR2Ukjap48auh0J7LZbww4JoCh1N6xJHZyUClXmYIJFncvxLZXuJDHCfxsRznvEnlBdMpvSmmnOJzBTu/MzxU0VDnI5OKUjSJ83aMGj0vBqaDikfvXwTiyB5b+sykfX++7u2Jdk6De5NoPvf0zSZQWdinOzf892dXuaDJKcabs8X90NUL+baeg8VXazlri0rBOiM5fyO206VvvKUDTw8vvZ2ErujLu69dxNQF4L5W7Im8gW6CLALe4j5xoZ1oZ60xLv17gGN6R/LEu99D8zV62Yc4D5C6WG/UBfafs/hyqK42xYKmouFpGnxNXdOPg8m/zWH3HechiOWm5HyhRtpAsZlGGiIMttA2+ckkpNQmeojiAgvznxmBW/em+tJbXCMYnQVROjfgB9nbUIBcPFLE9XN1lNr49y750r9IvRnN/uWqB/PueiYivg/0ltRl49IilhV1m835I7FKWT2SDKx0FdgbIav9ieFairQG2oPtljC72EubHyUlh0krbr144+Hr3DPIsR/dlWgCU49mdDBwJqw9703IwEH6Gb69H5DtZTWE/VJRDkAFumSikP5PCnHnEKT2aIX2R90hrRnNlpO8GX37qiB74YBXdEkmF2sTRxFdNlk9vAbZ49wIpyH/raWKTeN97BMTnA57SQdi7VvJjDIMAf4nn7zXDowNm62RXjckR3lA0Rpd1go6dCpkvmrIucubO+fkuPGMQE5NTKCzupfSa08A9p93OgOxu6uDLH08bq/Y9A8lDZYpZfcIOkY1Y0Yhj0q36cIAXjJCgLw6CAsH80hxd2VThoViaMKCE1VP6RfCKMlTSCQdE84NGvJsbqm9Wumc0WaNWwaZbChVS24HlgoXsoBz7SJyQHlduEufUeP0b5IqnfMMpRbyp5opRuf9wjhLwDqY53jzbcpPdRzJ9ZDw6R +qcGXQ2O 6Txzt2L0b6sdLdpY10QP31Cp2KqUgdqC2urUjNDzjfJ5okHNeYYNt96I8xFeLalkTuGJUskWechWyRyLD37qOo1smpuOCA8bW+5oy/j3exEtcWxiOFNnxpdoP2KI1AyhHeVgvHjK2hutj+OIsaYx/xcOufHfsn/aQ5xVUuHZEbIxQ8kFWA/t4a4m08AXLP0XhDP9O8GeGt0aq2ak= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000125, 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 27/03/2024 05:49, 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); Could this be done directly in __sbi_rfence() instead? Otherwise: Reviewed-by: Alexandre Ghiti