From patchwork Wed Apr 19 22:16:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 13217466 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 9F64DC77B73 for ; Wed, 19 Apr 2023 22:18:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 39EAE900011; Wed, 19 Apr 2023 18:18:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3284C900003; Wed, 19 Apr 2023 18:18:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 15397900011; Wed, 19 Apr 2023 18:18:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0717C900003 for ; Wed, 19 Apr 2023 18:18:12 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id DB92C803CC for ; Wed, 19 Apr 2023 22:18:11 +0000 (UTC) X-FDA: 80699554782.27.8A66852 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf06.hostedemail.com (Postfix) with ESMTP id 15DA0180012 for ; Wed, 19 Apr 2023 22:18:09 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=EpHc5rfi; spf=pass (imf06.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681942690; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=EbUa6ryrerMYndbR89JSXBoBIycYIOI5MWjMv8QTenY=; b=oMA+YL39xIbwTxwpyai8veh5aMG167GdW01UO0P/ooKMKKrmjyOecpLx6BT/j8Oxn65c5Q Yiuxeuxt/sSncNhn3RWBagKX1AeTUXY/kDRoRhgM7lTPF1dYMdMSXwEqy9NC//iOlYq9Gy d28YMrQIGjo4+6jnoNIjfo+eIUo6CwE= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=EpHc5rfi; spf=pass (imf06.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681942690; a=rsa-sha256; cv=none; b=o3Gc8A18m1QpS+W5IRJc+Ge0uYEQWSuaSDFEG00dg2GOnAgqfS6vemkqVkLtPFNPpj5rYl XR98qEp96GtUKcbZm+LbWFGe5oqFro1LxNpngu12qKwuFM2LaSQO6NwZLvXEabSKMMG9dE My7lQagud1r2ptUVCHXUUj5254YhWo4= Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-63b4a64c72bso364989b3a.0 for ; Wed, 19 Apr 2023 15:18:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1681942689; x=1684534689; 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=EbUa6ryrerMYndbR89JSXBoBIycYIOI5MWjMv8QTenY=; b=EpHc5rfijGiS9cvhe3gxGYJxsSuAlVbG/pIJOuFJNosZx/VFQeVfm0eSrlDMuReSFj 7ypZdw3QjuxdW55Zh8SHxl8sc3yXVSNROJW2fjaa+26b7equVpWpnxFDYreqHSbXDwun vUfn3kQvN844BJ2Z55UTjnK33zctXOKmEJb38uE3yoQBIsr74T/OcqMWb3KweGfTU4Yi yYPd+HV7CeU/AvlBhTKuqFAlbX3z2KwharbhJqAcrRnAlg1XHGRRtMmnLgMuCDk8ejGu HvdE2AEcRzhomKSg5akQJMWerijQ4tiFWsNpofhgVRA19F6Cu15/PaXEiC7xDxP0NCRj VY9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681942689; x=1684534689; 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=EbUa6ryrerMYndbR89JSXBoBIycYIOI5MWjMv8QTenY=; b=l2F59365h1gtj6L9NIAAn528H0SNOevd9C/YAKCp4Qburh5hskezuI/kF6oVLNexEU TAox1qLgi93g/64tPZj+3i+Gr8/OVVu3R4m046I/hWPED27H53tpklYLpQQvler6/AKm VwSOQuyXjtIKzmM82+0W8/SjjUR0t1mARdiIm7LTm2MVGqB+0Sge+7Knbveg8ubYq7gP N8jS6ncY+LyQl3uI9Atl/APIb7CPKf/4JrOkjLye7pfb53Zdcgr0sy2mFr9uoZKp2TGA Dj15+sLkY8Vsoob88/oOcdyEKUMGVyP3ji1nos+VSBKXbYrAlSEudsvZMiNSHLKsywx0 R1sw== X-Gm-Message-State: AAQBX9enx4GfSiH4B6wnZWpmLO3tQ78+OsNHnEab2V+eUH+JO3B9jCVI F2lsmcgySSMlp14aDB978K7Xmw== X-Google-Smtp-Source: AKy350bOrY/ltn4aOC/irJe3I2c3DHWQXEGnacE0hKIRD44viSqKcVds6P+5HuawRV2gn0DMpSc7nw== X-Received: by 2002:a17:902:e80c:b0:1a8:32e:3256 with SMTP id u12-20020a170902e80c00b001a8032e3256mr6684314plg.35.1681942689090; Wed, 19 Apr 2023 15:18:09 -0700 (PDT) Received: from atishp.ba.rivosinc.com ([66.220.2.162]) by smtp.gmail.com with ESMTPSA id jn11-20020a170903050b00b00196807b5189sm11619190plb.292.2023.04.19.15.18.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:18:08 -0700 (PDT) From: Atish Patra To: linux-kernel@vger.kernel.org Cc: Atish Patra , Alexandre Ghiti , Andrew Jones , Andrew Morton , Anup Patel , Atish Patra , =?utf-8?b?QmrDtnJuIFTDtnBlbA==?= , Suzuki K Poulose , Will Deacon , Marc Zyngier , Sean Christopherson , linux-coco@lists.linux.dev, Dylan Reid , abrestic@rivosinc.com, Samuel Ortiz , Christoph Hellwig , Conor Dooley , Greg Kroah-Hartman , Guo Ren , Heiko Stuebner , Jiri Slaby , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, Mayuresh Chitale , Palmer Dabbelt , Paolo Bonzini , Paul Walmsley , Rajnesh Kanwal , Uladzislau Rezki Subject: [RFC 18/48] RISC-V: KVM: Skip TLB management for TVMs Date: Wed, 19 Apr 2023 15:16:46 -0700 Message-Id: <20230419221716.3603068-19-atishp@rivosinc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230419221716.3603068-1-atishp@rivosinc.com> References: <20230419221716.3603068-1-atishp@rivosinc.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: ipk7djbu1aw41tobr97e5pmhhgprrptb X-Rspamd-Queue-Id: 15DA0180012 X-HE-Tag: 1681942689-735087 X-HE-Meta: U2FsdGVkX19fp9PAY4ri2V5/8gm1XCvmhhDfmX37v4TJlqznXZ8xngv3jAcItiXiDldcrU546gffZChyY0w5V5I8lMWM53zL9Wm0KnNOHsiGDoPMeqB6Zm6Sv2M5En6BfZr5w8N4w7Wt/Fzz6SXjNfCph+KPuKB7IJspYVVe9if3ZzrqkE4PoFx/FVNyYkps22q4zD/N9pSu340kNte8CXRHua0NkrRWObVfA+k4uzGVmQPwTunhFv6foCDI84cWlN2+iZwQgcibmQd7OXmMC4v60wxTdynJAr+AFyw2vnlZeepfgZJvejM0qw2WYDJdG9nK8UhacQ3ATAVOaMF7Ouv6YBqkLAIAc1kpH7QIOXfsrX8DL5gBHJTNzYr1pmS2aZecPB3trRNJWvhoDb/T/MqGfW4wb6oL70Al9FpbxxCIGGdNNhXbZW6ibXM+OfvCYr/J3AYRn+UQut3KvEkmjvmZS6cw+fpGEHhp2Mqd211C0doeDNwCaesF/OTki28piguqR6TZCA0XCPmTdFhtwFHxNsn23c+XFw7GlJZ28kuAmAcf1Bb5JzG/7DlTALxp8m1MaX3rCVtjLGcD1bNFg6NFcbRXLdYrm9Zy8Lop3ryorRZAcMqlScGzbi2f7Ilpys7mryGqGF8SQrYWRImdGj1r+tPZLN0YkoSl4NgjjYaPYD2Ws6oej+SSYe/CvxRXELaHichAaboSuTFeSbdg6BzscD+fgYvVQ6QJdHGW43GZB/jfMpUM7Hbf1VB0HAosov8lGw2EzA2qPckw4MolR9sRrTKcm72z9o44DTDfQaYvzn2C+BvrZL0SpA+gSwNySVImwupSRKP7tFCrB+UI0YrvRUyqhXuTruHd6j/usS1LBLM7RJ3Mla4m0ef7RwnDXK+LGyHofPDHwzqvg6S9Se4GGsF+Wbw8fnOrDeaKCLQc+/GWdJdXsESB72SXRJudq2PQa+bjN662HHpQjEZ m+FVdJNi arHMYWVui5QVD+w1b7SGsB0NuDG0H53ypzmQNznG7X67D48gF3tLwe9X3zP7lApmTDNyNjCDU8CyqGNRDRnOzO/4/v7sJT9zOZLlhzOd3Z4Ske3fOj9VtSjDSj9RcJswIMEWJh5zIuqM7y7gexHjxRs+nAJkqGKl58UXD9KuEGannSaSVXeJi5M0OrF7Az4z7gFLDcd6N7lv6j3NtDKMf2aLsyUSPhK0pb9btXSfI013uTDrxAASaIfEPPZYomiun192i4TEOU+s11rOBXWEsz/HMtJGM7DeU2H4LpW+kyjW9yh759Pl80RQbg2sMbd1zkudpEufrNivmLQk5bzaqVmPoG6E+ZxG59BveWjgQDL5Ra7a98Vi4f/1b+xltv7YXwcN71XIQVXB70G272DyDNEd5H6lRqoOpnBnQ4UXzA0hOL2gos6JszKeVTotaq76HgrDB9tei5mmotyQ6/rbTXNT7LI8eWV20Qahgv3AXgpV7O6jRRezFwAkj0A== 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: TSM manages the tlb entries for the TVMs. Thus, host can ignore all the hfence requests or tlb updates for confidential guests. Most of the hfence requests happen through vcpu requests which are skipped for TVMs. Thus, we just need to take care of the invocation from tlb management here. Signed-off-by: Atish Patra --- arch/riscv/kvm/tlb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/riscv/kvm/tlb.c b/arch/riscv/kvm/tlb.c index dff37b57..b007c02 100644 --- a/arch/riscv/kvm/tlb.c +++ b/arch/riscv/kvm/tlb.c @@ -15,6 +15,7 @@ #include #include #include +#include #define has_svinval() riscv_has_extension_unlikely(RISCV_ISA_EXT_SVINVAL) @@ -72,6 +73,14 @@ void kvm_riscv_local_hfence_gvma_gpa(gpa_t gpa, gpa_t gpsz, void kvm_riscv_local_hfence_gvma_all(void) { + /* For TVMs, TSM will take care of hfence. + * TODO: We can't skip unconditionally if cove is enabled + * as the host may be running in HS-mode and need to issue hfence + * for legacy VMs. + */ + if (kvm_riscv_cove_enabled()) + return; + asm volatile(HFENCE_GVMA(zero, zero) : : : "memory"); } @@ -160,7 +169,7 @@ void kvm_riscv_local_tlb_sanitize(struct kvm_vcpu *vcpu) { unsigned long vmid; - if (!kvm_riscv_gstage_vmid_bits() || + if (is_cove_vcpu(vcpu) || !kvm_riscv_gstage_vmid_bits() || vcpu->arch.last_exit_cpu == vcpu->cpu) return;