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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3D8C4C71135 for ; Fri, 13 Jun 2025 06:58:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6rb/1HUrToFiqSI15yO0Oj1XGOU5oZa4Nl3riChzAjw=; b=nShXqcfV2L+YC5 GzOdQSybn/rutAyJFwODdr/Mr52GRjCeoj5Oo8kWjyvv1vIOxSQEZGNOxHoWnhwY8zy/yDj1THRX4 lvBvEGYAAeXQcouzdFEmYCYJM8dFi91KLDsTeqNHkqvodUbBVvFzuENgDURPnUYHOFyYPFz0cYa8C PZ1eMST9Qq7TSDRpkXnBldS2rRWZ9lVzfC8lSVp2/ONw3LBB1/p2xyliorPD6u+ITGisAnmDhvAE6 0M3xBFH0NlPF3zad+vxtac6wq/a/ZFvS40qv1fCT51JFrFiAoFX+BO/1Unf3hGP0vtqLj8XFBOE12 0+eXL8h1mc6LX3PBizLw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPyMw-0000000FXZm-00GA; Fri, 13 Jun 2025 06:58:30 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPyMu-0000000FXXu-19nc for kvm-riscv@bombadil.infradead.org; Fri, 13 Jun 2025 06:58:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=QAL/DBSW25X8lDXRlQMy0boNSc 8SyV7aSpgsAFdIjm9tSuk9aYZIqewmFd8Glwec+7GipkrjPzEs2FSsNypQ0XjCzsF/RomLxXJH80M 8EGGj35v2F0yZnr0MPrwHsG0AmmV+Gn1zCVzIJvL4hSSCjaqOUFnA5+Yw9RA6XSQ5CpShRCNdMJc4 6gHF0NH9AjOGUrecCTMa1A6BG51vKbrhMQLC8QRSkyj8OybFDxL/g43mlv7dSu0tNiadT1MDFyUHs kd+NrHgYxLFrjoJgt7nRv3dJOChMAIb0HceZy554Vc6riIgR4YDshvfrTTBGLt4BYljf4HonAInVj 8xpVvqNA==; Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPyMs-00000002rvp-076U for kvm-riscv@lists.infradead.org; Fri, 13 Jun 2025 06:58:28 +0000 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-312116d75a6so1605923a91.3 for ; Thu, 12 Jun 2025 23:58:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1749797902; x=1750402702; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=Qi4Kw8iNeu2lPyb3sjL8el5NYL9AzbbSRAs7YcHKp1lugiABmz0fVnzRV57mKUc/zt /8NNzNrztIOSbupLsJQlDLxdFn2y1K+/L1i5EWNZfzZbjpwYMhlXLbvlie9SZGNunVO5 lS7iUux+BAOVl7nJtpx7Gvfsp8QavMwaoBIO5Z6MM0Dbv8Sq2KyLVbxlwZ73luLu/hKz uxUPsfVwsuk6faqJi7lniZXdA+z7yTBmBigQDu2SntTiethrE7GJoAbyKzokUcGWXEk+ KUxqGZt82dKaUO5IXQNSnoNoelz6l0mD9FLcnVjO27Glg2rbKW/ne3fV9527Pm9e7TeC 0nxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749797902; x=1750402702; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=JAwdbI2jCJPXJLtD7dwMWoWSrh3Aa0uaE1YrjGDZS/IEpPOVPcbVLoPRHEswvT5/ue o0jCX73Q214t5OL2LhJwqqqx7E/7bxn6PZx4TyUxASAJpF/qt+hqZdZJJRU96t1ZLcO5 SEylPXVCdlwzZODAxo5iaCjghVCJX3kItwtlFVSy2tS5GQc0d8spFot26ogCW/35k+hn GaiixbOfLwd0L3i0hYEyekDmfql1z5flQLN1yH0VuwxM8tEg80PG0OgJsA7vSHB8/OXE vYX1UkmXqJwjKLGfW4NaH6iERQ3d+YabL3iYhcGnho8iwgNf0e2xhHX7iveP6hkFs69b PfUA== X-Forwarded-Encrypted: i=1; AJvYcCWa3Jsr0whc9GPrV1KZ7+YrqGISB1ONgbPGGBY5wtQm7n6CoiZfV18cA0lfUAOH6aWl8FlormT7SIY=@lists.infradead.org X-Gm-Message-State: AOJu0Yw33OFUzWEkTh0XqqP909pLwCqu+aPIUjxhsuAHsKM//fLmjUvR Z+2Wr8NirNkEabiXoeSu1Qb+HQo3zNBSCV/GpbAuLohgM2NetZABzZPlFN/iU6fKIv8= X-Gm-Gg: ASbGnctte8UAG8JfJOuJPE0Wk/NDJWWSLZSAFhXRqBPCmAVTp7r18HRtnOJcFnsrS+V BQKRcwfGngwWZxbQjhSBt7vP60Cp38ChWlbN5z0v71VYNNexcHhh8eEcsVNWyx446gVEwwxdNtt j1I2/Lmzfwp37l3jo0Yn+a0pehyXhAGH1T/qu2JxkmDNUHYRqOzec8n2tyAoKrQAq7sYFF262Hf Dr/lTm6MMQlaZLy5rWEgkGQ4lv983KU20boMyp1kcwBFLXXR99yuqkQotQD6H352Nm6d1v7uVeJ 2yL5kJ3zOv7fh+5KeSFRD3XiOh5rVhfDNJGoBKPm4pmKjP9gOhaxzvMgTa4HCGIH4iAtS0xa1ZS 9dd3FbKFu4DmDtiHm2qg= X-Google-Smtp-Source: AGHT+IFcoxTnNLLCaRe3MbV5XZ2eB09JQHRiE2nVJsRUpfaY0rXLYI7i9qxtUj8gRjcaZRLWDhOK7A== X-Received: by 2002:a17:90b:28cf:b0:313:2768:3f6b with SMTP id 98e67ed59e1d1-313d9ed72f7mr2932665a91.27.1749797902357; Thu, 12 Jun 2025 23:58:22 -0700 (PDT) Received: from localhost.localdomain ([103.97.166.196]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-313c1b49b7fsm2653022a91.24.2025.06.12.23.58.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 23:58:21 -0700 (PDT) From: Anup Patel To: Atish Patra Cc: Palmer Dabbelt , Paul Walmsley , Alexandre Ghiti , Andrew Jones , Anup Patel , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Anup Patel Subject: [PATCH v2 06/12] RISC-V: KVM: Implement kvm_arch_flush_remote_tlbs_range() Date: Fri, 13 Jun 2025 12:27:37 +0530 Message-ID: <20250613065743.737102-7-apatel@ventanamicro.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250613065743.737102-1-apatel@ventanamicro.com> References: <20250613065743.737102-1-apatel@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250613_075826_155771_F8551D2C X-CRM114-Status: GOOD ( 11.41 ) X-BeenThere: kvm-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org The kvm_arch_flush_remote_tlbs_range() expected by KVM core can be easily implemented for RISC-V using kvm_riscv_hfence_gvma_vmid_gpa() hence provide it. Also with kvm_arch_flush_remote_tlbs_range() available for RISC-V, the mmu_wp_memory_region() can happily use kvm_flush_remote_tlbs_memslot() instead of kvm_flush_remote_tlbs(). Signed-off-by: Anup Patel --- arch/riscv/include/asm/kvm_host.h | 2 ++ arch/riscv/kvm/mmu.c | 2 +- arch/riscv/kvm/tlb.c | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h index ff1f76d6f177..6162575e2177 100644 --- a/arch/riscv/include/asm/kvm_host.h +++ b/arch/riscv/include/asm/kvm_host.h @@ -43,6 +43,8 @@ KVM_ARCH_REQ_FLAGS(5, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) #define KVM_REQ_STEAL_UPDATE KVM_ARCH_REQ(6) +#define __KVM_HAVE_ARCH_FLUSH_REMOTE_TLBS_RANGE + #define KVM_HEDELEG_DEFAULT (BIT(EXC_INST_MISALIGNED) | \ BIT(EXC_BREAKPOINT) | \ BIT(EXC_SYSCALL) | \ diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c index 29f1bd853a66..a5387927a1c1 100644 --- a/arch/riscv/kvm/mmu.c +++ b/arch/riscv/kvm/mmu.c @@ -344,7 +344,7 @@ static void gstage_wp_memory_region(struct kvm *kvm, int slot) spin_lock(&kvm->mmu_lock); gstage_wp_range(kvm, start, end); spin_unlock(&kvm->mmu_lock); - kvm_flush_remote_tlbs(kvm); + kvm_flush_remote_tlbs_memslot(kvm, memslot); } int kvm_riscv_gstage_ioremap(struct kvm *kvm, gpa_t gpa, diff --git a/arch/riscv/kvm/tlb.c b/arch/riscv/kvm/tlb.c index da98ca801d31..f46a27658c2e 100644 --- a/arch/riscv/kvm/tlb.c +++ b/arch/riscv/kvm/tlb.c @@ -403,3 +403,11 @@ void kvm_riscv_hfence_vvma_all(struct kvm *kvm, make_xfence_request(kvm, hbase, hmask, KVM_REQ_HFENCE_VVMA_ALL, KVM_REQ_HFENCE_VVMA_ALL, NULL); } + +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages) +{ + kvm_riscv_hfence_gvma_vmid_gpa(kvm, -1UL, 0, + gfn << PAGE_SHIFT, nr_pages << PAGE_SHIFT, + PAGE_SHIFT); + return 0; +} -- 2.43.0 -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 581D525B676 for ; Fri, 13 Jun 2025 06:58:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749797904; cv=none; b=MRiprNaRvOmrGpmi0Dsox0ESc5k2HqgtnKVYmBWqlcZ+OTJTlKimErLzDxMjsNWAaLKqskKcE8UWaGjZjmhTQGUmADquHQITD3fZQW8ROMDVC5SOCqsTjnFj4MAat2kMix+GH+ye7HJNJHimVrkHiHMarY/zPzwS16FZCFReRr0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749797904; c=relaxed/simple; bh=rq4NA0UvWiBGdQQMC6kdlaKltEwLwO4T2L6EMR3/fYk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lskPg1Y0BZIH6M0F9RBQI5JjLCpfo8LQY14b8++IQLn3cn9fSA10/wKk6Wmklho27XdEjVhsp92c5n3HF8170UTpR5bqGiVM/ePiHPofmkPK6KZdHbt5AtW7TjO0bsxxNG1GJ4yi5DPuP6QvNj2z2nPE6Akdy/+L3ZMzRseVYa8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com; spf=pass smtp.mailfrom=ventanamicro.com; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b=KkxSWW+S; arc=none smtp.client-ip=209.85.216.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b="KkxSWW+S" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-3122368d7c4so1693251a91.1 for ; Thu, 12 Jun 2025 23:58:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1749797902; x=1750402702; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=KkxSWW+SF9FhhCnVtTyaMB67h9yguKRlIVV6bbR1uVKMNCs2wHuVzWy//n/GS4bWb0 SximIxThvye5qm/TntjDXRlBeAjvPLNQkC9xQmgtXDra5ICRHgq8J5pVMPU6bUyI5i1s LHGhsXOdomHF4lKhE6AHXD9dCEfrI/NFydIXgtA6dSzstDRHmKlhGXNqioqUDHbqRNiw ifaAABpmX3PlxeMNQGCvr1sqjmjYqAIY1+BvjvQn2QC68RAlfKAYP5mgOkNhjjhsCz6y 1mMsxg/hJW3icWD28Qqk9ACoxw41kpOP6DDt4T/xPQ3enfjyg/hJw4MiMUJTtIJUftyh GC8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749797902; x=1750402702; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=SiPfPGFnlXAaoiFxjxyC38Kt4iy/tAbvGRk/nmIRW8hDJfnDTbtnnB9EiPNSRwbRh1 3UEuq4QmqYT7wu/VeluL5cvUtgNuOCiMiu1pQV0LjgooHr/lBEmNFULkTckO1/MXzWK0 QopXG0w9LYTCefyY7qDS3myL51O2R1NhRTt0hA2L3UIyZDMNmCBNE+2lZ/N0lWS6kdbE 98gIOsEiEoFkZbPtmdgOX4/mJxtbRZm4OyK155fzdOgiQX0gglv5Qb6o34Z9bzVnz/g4 XZJ04z6qVXNRTwSwhwx/Nado8iuYMkCtTFMbd8nILdKtXklbryXQ1fL9OWfqXMqCaRFG AyrQ== X-Forwarded-Encrypted: i=1; AJvYcCX0XznXI5/PDViMyYlCKJybzx5kHDMpDnT6XiKerU3ol6+mrTF7gas9d0YKFu3fxkekOCY=@vger.kernel.org X-Gm-Message-State: AOJu0YyCE5kUf01xqMMaKiqGlhz8iCIn8aBYjBPyEVCYg6+jqlXqNZdw y63D5e3ChC+1KLbx7ftMRQidIhaCuprkKwTUPwHU0fgmFTI6B2G3l87lVlpUSnlCgo9Xa0gL7G/ ymsQTjsE= X-Gm-Gg: ASbGncugdPZxA+YS1M/WTl2X3tBTEtj/weUxRAdaWav6BLswJ+zTpLlHee2pQUvQGVc ++JSz9VxtwxqgIwadtEZzFWuafoBdtB3uojL1avweuPX6KptvzR6zYAka0elvTtOOns88/IEfJn jtONO9Z1arQGlgYSBG+hMjp5ivA8vlPeUkRWOeg63aBJjNeMSEfNCYuCtiNVWrUudi+RLI1HHP5 RWYCETFxwFDs61FkCb6lIfwW18k3G5qUOPkDZAPUvbbQ2SSOL38+1MW50/tkDIfQ1+DaQAnqd/6 7RH8r6A0kJlokM44JC+dS74Q4omQTM3OkVUn8GXrFuf2bzpSKaw6OmHEaeBmsCvcVcRzeEUIUcU H1OckiQjDxoQ32MbvVH0= X-Google-Smtp-Source: AGHT+IFcoxTnNLLCaRe3MbV5XZ2eB09JQHRiE2nVJsRUpfaY0rXLYI7i9qxtUj8gRjcaZRLWDhOK7A== X-Received: by 2002:a17:90b:28cf:b0:313:2768:3f6b with SMTP id 98e67ed59e1d1-313d9ed72f7mr2932665a91.27.1749797902357; Thu, 12 Jun 2025 23:58:22 -0700 (PDT) Received: from localhost.localdomain ([103.97.166.196]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-313c1b49b7fsm2653022a91.24.2025.06.12.23.58.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 23:58:21 -0700 (PDT) From: Anup Patel To: Atish Patra Cc: Palmer Dabbelt , Paul Walmsley , Alexandre Ghiti , Andrew Jones , Anup Patel , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Anup Patel Subject: [PATCH v2 06/12] RISC-V: KVM: Implement kvm_arch_flush_remote_tlbs_range() Date: Fri, 13 Jun 2025 12:27:37 +0530 Message-ID: <20250613065743.737102-7-apatel@ventanamicro.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250613065743.737102-1-apatel@ventanamicro.com> References: <20250613065743.737102-1-apatel@ventanamicro.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The kvm_arch_flush_remote_tlbs_range() expected by KVM core can be easily implemented for RISC-V using kvm_riscv_hfence_gvma_vmid_gpa() hence provide it. Also with kvm_arch_flush_remote_tlbs_range() available for RISC-V, the mmu_wp_memory_region() can happily use kvm_flush_remote_tlbs_memslot() instead of kvm_flush_remote_tlbs(). Signed-off-by: Anup Patel --- arch/riscv/include/asm/kvm_host.h | 2 ++ arch/riscv/kvm/mmu.c | 2 +- arch/riscv/kvm/tlb.c | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h index ff1f76d6f177..6162575e2177 100644 --- a/arch/riscv/include/asm/kvm_host.h +++ b/arch/riscv/include/asm/kvm_host.h @@ -43,6 +43,8 @@ KVM_ARCH_REQ_FLAGS(5, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) #define KVM_REQ_STEAL_UPDATE KVM_ARCH_REQ(6) +#define __KVM_HAVE_ARCH_FLUSH_REMOTE_TLBS_RANGE + #define KVM_HEDELEG_DEFAULT (BIT(EXC_INST_MISALIGNED) | \ BIT(EXC_BREAKPOINT) | \ BIT(EXC_SYSCALL) | \ diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c index 29f1bd853a66..a5387927a1c1 100644 --- a/arch/riscv/kvm/mmu.c +++ b/arch/riscv/kvm/mmu.c @@ -344,7 +344,7 @@ static void gstage_wp_memory_region(struct kvm *kvm, int slot) spin_lock(&kvm->mmu_lock); gstage_wp_range(kvm, start, end); spin_unlock(&kvm->mmu_lock); - kvm_flush_remote_tlbs(kvm); + kvm_flush_remote_tlbs_memslot(kvm, memslot); } int kvm_riscv_gstage_ioremap(struct kvm *kvm, gpa_t gpa, diff --git a/arch/riscv/kvm/tlb.c b/arch/riscv/kvm/tlb.c index da98ca801d31..f46a27658c2e 100644 --- a/arch/riscv/kvm/tlb.c +++ b/arch/riscv/kvm/tlb.c @@ -403,3 +403,11 @@ void kvm_riscv_hfence_vvma_all(struct kvm *kvm, make_xfence_request(kvm, hbase, hmask, KVM_REQ_HFENCE_VVMA_ALL, KVM_REQ_HFENCE_VVMA_ALL, NULL); } + +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages) +{ + kvm_riscv_hfence_gvma_vmid_gpa(kvm, -1UL, 0, + gfn << PAGE_SHIFT, nr_pages << PAGE_SHIFT, + PAGE_SHIFT); + return 0; +} -- 2.43.0 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 25948C71150 for ; Fri, 13 Jun 2025 06:58:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=gvBf5k1FTslK11/OmaAAQKhZFDgORDxKhBIxcVE5slA=; b=fX3BINGiB8ENGH 6kjbmdKixdGs8VeNczQIbh21Dqa6VOC4Tj0ROeaxfkzFKAokhPXLK6SNGM+4dyYEtibvABtEBOYv2 fghICxSzhIMbJYQdrFgOvnMP5n5cIkV2Are5AoEFJF8gHabmB+cZea/Zqq5pp6usNpRVShPu0g2yM CxT0eQ7o74LFPtqxmxuLTto7Ouez3McFEGCmSoUmAEloGQO9Augvl+F7StkbDzVQcscXcDs+AbyR/ QGiM6bLDQa/AzQUVg7x0rdNZ4lWioVoX3VGvCkeBDpEkUVse37TDhvQDf7ZwNb8Wjv5Dd8yC53DDd ph6XozGd2WQJ5i39qtAw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPyMv-0000000FXZF-1HHz; Fri, 13 Jun 2025 06:58:29 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPyMu-0000000FXXr-19ol for linux-riscv@bombadil.infradead.org; Fri, 13 Jun 2025 06:58:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=QAL/DBSW25X8lDXRlQMy0boNSc 8SyV7aSpgsAFdIjm9tSuk9aYZIqewmFd8Glwec+7GipkrjPzEs2FSsNypQ0XjCzsF/RomLxXJH80M 8EGGj35v2F0yZnr0MPrwHsG0AmmV+Gn1zCVzIJvL4hSSCjaqOUFnA5+Yw9RA6XSQ5CpShRCNdMJc4 6gHF0NH9AjOGUrecCTMa1A6BG51vKbrhMQLC8QRSkyj8OybFDxL/g43mlv7dSu0tNiadT1MDFyUHs kd+NrHgYxLFrjoJgt7nRv3dJOChMAIb0HceZy554Vc6riIgR4YDshvfrTTBGLt4BYljf4HonAInVj 8xpVvqNA==; Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uPyMs-00000002rvq-0CDb for linux-riscv@lists.infradead.org; Fri, 13 Jun 2025 06:58:28 +0000 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3122368d7c4so1693252a91.1 for ; Thu, 12 Jun 2025 23:58:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1749797902; x=1750402702; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=Qi4Kw8iNeu2lPyb3sjL8el5NYL9AzbbSRAs7YcHKp1lugiABmz0fVnzRV57mKUc/zt /8NNzNrztIOSbupLsJQlDLxdFn2y1K+/L1i5EWNZfzZbjpwYMhlXLbvlie9SZGNunVO5 lS7iUux+BAOVl7nJtpx7Gvfsp8QavMwaoBIO5Z6MM0Dbv8Sq2KyLVbxlwZ73luLu/hKz uxUPsfVwsuk6faqJi7lniZXdA+z7yTBmBigQDu2SntTiethrE7GJoAbyKzokUcGWXEk+ KUxqGZt82dKaUO5IXQNSnoNoelz6l0mD9FLcnVjO27Glg2rbKW/ne3fV9527Pm9e7TeC 0nxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749797902; x=1750402702; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+QkzcBlS9vLeXpRqbqSrDujMqO/PGHcWXsj9ZWs9Z+U=; b=qIdzv4HahVGKvrvNHoS8TQG5XO40tieGkpL7RkJnvQ7ZrWPG9THY/SFYgs3d74rB7z RFgfGQsiQqSqBRX6ywV2PgqdnfiRN+UwSpLi/eYotgYfrnIcmyNQMKRKip4vPr2I5x+L 7zi7VSjO8/DpNm/s4CrmZ3sTAtBWJ87PoNtopjwySDPOqMtbyrZjrj/qHNMqU4G1/tFW 8yjf62aPnoOdFq4ci2dmmeDTZ1p++VifKEgpjn1/gQKoWAdUz/2lKVOLAupus02vAUjV Ukz/SvItasD6nWMEUa53BXaR4wNzH78IjKLpZLv3TwCJTTUO2isMAASA24miIRQ5KP2t O8RA== X-Forwarded-Encrypted: i=1; AJvYcCX6i7bDa+cVDS1ezr5aJUH6wZNMEeLt0W1MeLXDx1EqB7VDjOpZqX/7caYfgN05jEMUSEeHCAs2D2tKaw==@lists.infradead.org X-Gm-Message-State: AOJu0YxJijxRnZVZN+KHc6ZZHluoJA0gyz6d6OSu7zHYPNHc+CcsLaUF PPStcaLpq/AbRBPjzOnw0Tq5fdyMphjuaqynL4mDQc+S1EsVWcVIM+KwCVgc+OLpAFY= X-Gm-Gg: ASbGncscRfy5oGccb23DQPcWlQpi6ohhDRAVjgqPsZFaCm+rwA8NZ1XeZzl2vhm0jAj HJUbnIEUKHgAv0AmsnoBAWXBDpD53alPw7mNI+iJbntGC0GxrDoI87oRRok3QIoTGMyz2NNE8pX ru/1L3TckJKKjlXoSl1nHBxXGboL4774VmyjYOr8PAxnH7ZX0mXtNukBrHKlLrWK1mZ6hKm5YE5 v0jfpoDlvqdbDx2arZrjeu+PZEcFnFfIITxIYGzVUWddAyt2egNt2zKTCrv7a1TJKNAhRW+Qq5+ VXz4XrK9oTw12CIb7Qj4ayCinvivoBhPAMCFroS7/3WdBVYsC1pfcdh1SNiYf9Bljhjv0A/xJqE rB9Lbb3NhtaENYPWURXo= X-Google-Smtp-Source: AGHT+IFcoxTnNLLCaRe3MbV5XZ2eB09JQHRiE2nVJsRUpfaY0rXLYI7i9qxtUj8gRjcaZRLWDhOK7A== X-Received: by 2002:a17:90b:28cf:b0:313:2768:3f6b with SMTP id 98e67ed59e1d1-313d9ed72f7mr2932665a91.27.1749797902357; Thu, 12 Jun 2025 23:58:22 -0700 (PDT) Received: from localhost.localdomain ([103.97.166.196]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-313c1b49b7fsm2653022a91.24.2025.06.12.23.58.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 23:58:21 -0700 (PDT) From: Anup Patel To: Atish Patra Cc: Palmer Dabbelt , Paul Walmsley , Alexandre Ghiti , Andrew Jones , Anup Patel , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Anup Patel Subject: [PATCH v2 06/12] RISC-V: KVM: Implement kvm_arch_flush_remote_tlbs_range() Date: Fri, 13 Jun 2025 12:27:37 +0530 Message-ID: <20250613065743.737102-7-apatel@ventanamicro.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250613065743.737102-1-apatel@ventanamicro.com> References: <20250613065743.737102-1-apatel@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250613_075826_162268_D16EAE00 X-CRM114-Status: GOOD ( 11.41 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org The kvm_arch_flush_remote_tlbs_range() expected by KVM core can be easily implemented for RISC-V using kvm_riscv_hfence_gvma_vmid_gpa() hence provide it. Also with kvm_arch_flush_remote_tlbs_range() available for RISC-V, the mmu_wp_memory_region() can happily use kvm_flush_remote_tlbs_memslot() instead of kvm_flush_remote_tlbs(). Signed-off-by: Anup Patel --- arch/riscv/include/asm/kvm_host.h | 2 ++ arch/riscv/kvm/mmu.c | 2 +- arch/riscv/kvm/tlb.c | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h index ff1f76d6f177..6162575e2177 100644 --- a/arch/riscv/include/asm/kvm_host.h +++ b/arch/riscv/include/asm/kvm_host.h @@ -43,6 +43,8 @@ KVM_ARCH_REQ_FLAGS(5, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) #define KVM_REQ_STEAL_UPDATE KVM_ARCH_REQ(6) +#define __KVM_HAVE_ARCH_FLUSH_REMOTE_TLBS_RANGE + #define KVM_HEDELEG_DEFAULT (BIT(EXC_INST_MISALIGNED) | \ BIT(EXC_BREAKPOINT) | \ BIT(EXC_SYSCALL) | \ diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c index 29f1bd853a66..a5387927a1c1 100644 --- a/arch/riscv/kvm/mmu.c +++ b/arch/riscv/kvm/mmu.c @@ -344,7 +344,7 @@ static void gstage_wp_memory_region(struct kvm *kvm, int slot) spin_lock(&kvm->mmu_lock); gstage_wp_range(kvm, start, end); spin_unlock(&kvm->mmu_lock); - kvm_flush_remote_tlbs(kvm); + kvm_flush_remote_tlbs_memslot(kvm, memslot); } int kvm_riscv_gstage_ioremap(struct kvm *kvm, gpa_t gpa, diff --git a/arch/riscv/kvm/tlb.c b/arch/riscv/kvm/tlb.c index da98ca801d31..f46a27658c2e 100644 --- a/arch/riscv/kvm/tlb.c +++ b/arch/riscv/kvm/tlb.c @@ -403,3 +403,11 @@ void kvm_riscv_hfence_vvma_all(struct kvm *kvm, make_xfence_request(kvm, hbase, hmask, KVM_REQ_HFENCE_VVMA_ALL, KVM_REQ_HFENCE_VVMA_ALL, NULL); } + +int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, gfn_t gfn, u64 nr_pages) +{ + kvm_riscv_hfence_gvma_vmid_gpa(kvm, -1UL, 0, + gfn << PAGE_SHIFT, nr_pages << PAGE_SHIFT, + PAGE_SHIFT); + return 0; +} -- 2.43.0 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv