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 58687C77B73 for ; Wed, 19 Apr 2023 22:18:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3051690001F; Wed, 19 Apr 2023 18:18:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 28C59900003; Wed, 19 Apr 2023 18:18:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 06A2190001F; Wed, 19 Apr 2023 18:18:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D88E1900003 for ; Wed, 19 Apr 2023 18:18:38 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B320C16040F for ; Wed, 19 Apr 2023 22:18:38 +0000 (UTC) X-FDA: 80699555916.07.C176ECD Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf03.hostedemail.com (Postfix) with ESMTP id E004A20004 for ; Wed, 19 Apr 2023 22:18:36 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=ANhU+J8n; spf=pass (imf03.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=atishp@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681942716; a=rsa-sha256; cv=none; b=P+9qqk039D2ptETP4fFrR04eWAxwwbMb+nruPFQqE4mwAuLpOiZhytwYqIyYHSyKZ/FRh+ sgzgYm46yFxiBEe82+EEE3WSlUcdmX2ICLcoXe5bZclJtSczY6prFV6uBqEisYfCxcCOsJ bQXSQbtaK+WSlkkiaNRSJF1IZLB2eGg= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=ANhU+J8n; spf=pass (imf03.hostedemail.com: domain of atishp@rivosinc.com designates 209.85.214.177 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=1681942716; 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=g1210zPiD8zHFMhzBINzpx5nEW8Eoe5MAD0zhuCIRKc=; b=pp3dhOnNLA6zgV4O6jlEGtbeMez6fnmH+Q48Y+gUn9DOGD+GlutCAN30jGrDIBY+RCOT/z l//lHW2Fwb22Tzg+BCV+6knEnS2SEv94udQqxzqIFV1snX6z1FKOHRyaREbPz6lEcNJ4hV i9Z00K6PNG+V3yATZihmuZGs1kHLHAY= Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1a6762fd23cso4485465ad.3 for ; Wed, 19 Apr 2023 15:18:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1681942716; x=1684534716; 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=g1210zPiD8zHFMhzBINzpx5nEW8Eoe5MAD0zhuCIRKc=; b=ANhU+J8nQWq2obESgBEJE0X9NLT82kBUBDzc1BRbSeZ1EgPeiOl0GddoyWaEPDRU8N vnwjEIo0UjaS9xezvAc/UGttMWlJo7ew/iqSZCawFdCpXkbeL6whYMnxnv1UE0Mkzjl9 zxU19X9QWwNQwOpt5WP+CxQUT1ZA3xUcznURR03bnG+WcdbBRPDMOVkCCCi+rkT0f8qL 85oGYhbbNz2xb1HJWq0YwM9QGXFDFKbWMgSuumHQ7xfEhCPnY/6ETL+ra68ruaG7yl2u qOhetkOJdoWKqEsNNxd/aiUVnUUF2SqhhyrAmB8w+eSk+hd8cQeWPbuaUf1XaZLgT9mw WXww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681942716; x=1684534716; 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=g1210zPiD8zHFMhzBINzpx5nEW8Eoe5MAD0zhuCIRKc=; b=LLKkTZSXw4m92G1qlphNCQcRf9dDNakqGp4EkY/ItIe5Ltuh3OB8zYSOylbGrDlWlv WXA0kYzYRTrLGo7sPfCYbhfLN5/jj+FS2ob1Pum4dJL1KjDRXtf0pQ6jokkpTij8BDhX 3Bw2lhRRHiLkYa0/3/b90f8qN4LwHWOlNUAW/YJvgU2XxohBSBNrqVA3ag8JcKO+sZ2W I4hh9Hfnh7hmzTiL5nO3WU6KU/SGt1qhoGlyrTl5VBslcQ7owi/d2TnkWsqg2YViO82a jOUr14vRV4QvE8hD8Fat5sy37WYz2J9ViJpwQOOhd0FlW0VINzmRXCWGVTpRCQCpJbdr 56+w== X-Gm-Message-State: AAQBX9fAoRQkTFUXXUsMGmiaLBhjUV5tQ6KsG8Nsk/7dipvLg8ZKq5eE /B8kcB9TCF1NR9MseR88XojyKw== X-Google-Smtp-Source: AKy350YnFYoQc/AGMgRzA7K3To1EBVIiHBUS1P/8MWh29k47wvhKo2iefk2kUhAwoVQIoToGy+/bcA== X-Received: by 2002:a17:903:1c4:b0:1a1:ee8c:eeba with SMTP id e4-20020a17090301c400b001a1ee8ceebamr7881066plh.59.1681942715856; Wed, 19 Apr 2023 15:18:35 -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.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 15:18:35 -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?q?Bj=C3=B6rn=20T=C3=B6pel?= , 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 30/48] RISC-V: KVM: Perform limited operations in hardware enable/disable Date: Wed, 19 Apr 2023 15:16:58 -0700 Message-Id: <20230419221716.3603068-31-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 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: E004A20004 X-Rspamd-Server: rspam01 X-Stat-Signature: eg6988a4etu8qj8bhjuaj5z4qfzwcisn X-HE-Tag: 1681942716-830953 X-HE-Meta: U2FsdGVkX1+ltXWZZq3NgHZUuYmnAlZf8HlAaBxFhSxERHdAUuRi4By2wudgXqqH3mStX92fZRczDqrsqh6UGBd6lNXR1CSxuCuUs1Tk+Ir5Sz8+odZuiON1+hifuOu6L3X6xM8ZXVyYC4vJCjpTH8oCSMiDOGmAR910C4MBvkrToq096rlDe3bzg3t4jyBHHsDShMBJm+n9OdDq0rhN7QqueC2nL1DMmKXLSRr4Pfr2SfxocQhfJKvFtY3yLGi10IUApuMKpHgXoWgrvnCxz+wGlOmMlh+BMgHZs6kc1DBMw39VE/z7TVrVtvtARMB8QlXNCUEDIPordg1fbbxCsHRflvOWRuHZ7l4QkJkUQ49Xb68gFRgEXwNZHIUuIbXcR0L5LP35vBioe2kI+Qo1hJGjb961k9YvxeJyTYM/+plr4E4Iq8xMvcqzQ9ohCIpZzlXat1TgyeiYyw6KKsxIIhPYW/pP2zuVHoozoR6P+BOaRF1uiF5AjXaDnIqdhIQOskfy8kpvc7CEgbDkyYsXv/JVjeqi42uyFkJ5xzySt9JVcJAU+yiMrRDSPQ9HGxe5MSQ0twPWHvkH+RRwzMmnqQhlQB0tnTS94kUuq8hWrdzjnERHjhhJRoAO28pEKjDkJQ9UPEgvE4NFZqTMOIm9DNEJ6jhVttoNLmUZCYxowCuwZ03KZa1gX5X71bPeQ8hrU2A1asqxC0SHt5Hnd5Iwz4Yf17e8EFlmZjp89syfQRd6+nhnjCOUXwOD8IN8l92YwyvbDPrNa1KB8GQYitHGax2ubdGBG1DqbBtMVYHhkd3puhth05GZCq9pWwoV8DIUfQqEBmICqoXuMQVjCZgRhzti9hcp8b+LKyMNpHwF0wduC11KxTKMmdTmMVCnA899ZSVAK3MVm6OhWeMhVc03C81AFMoHXvBegG15WWsGwD/8SOVKCKUbVf3i+Y/70S+F8HK/NdVrSKPOtb9W5AY 7keexP1T 8VN2uanFbWOi4wvFL4/cEdtUYN9i09CNDPPoNI0mGoyQTFJOWFamLL/R1s8zhv+LRpBUKMeLHPbmyKkwPJKM/lNCtH/ELz9fuI9A4qDKniEoRRiSjT0+HMmvggD2rMNgbSvBZPJefqbshALBI5omEhFPJ/gHemGdcxmO5NuFnoLXa/ddLmPMsRK5DQJXspNp+Qcq9qNiEpaTvjs6jJlRuSCF/spfygR/umY0sWxyDH2I0iiyWbkcfR6cWPcpADdzDZxkcJweU8PRfyiUDgQjlI+zcNdz5tQsW64eS2klNvs1B8vrOLUYNT3dbWJJVV1KScNK8J2S7UZF4LvbjcqDjbpuTxZMmegOJV+JY/5z4K4LdH+aCBgJmGvusjIdmSQ6mM89y09STvlf+X/vT49cLd5TNO+LCBFGnBFKTtT40enNkmve8FE8rTZ4O/2XkjbpgyzSKUnLe2ngRvCm0x+E3VIrGSg== 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: Hardware enable/disable path only need to perform AIA/NACL enable/disable for TVMs. All other operations i.e. interrupt/exception delegation, counter access must be provided by the TSM as host doesn't have control of these operations for a TVM. Signed-off-by: Atish Patra --- arch/riscv/kvm/main.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/riscv/kvm/main.c b/arch/riscv/kvm/main.c index 45ee62d..842b78d 100644 --- a/arch/riscv/kvm/main.c +++ b/arch/riscv/kvm/main.c @@ -13,6 +13,7 @@ #include #include #include +#include long kvm_arch_dev_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg) @@ -29,6 +30,15 @@ int kvm_arch_hardware_enable(void) if (rc) return rc; + /* + * We just need to invoke aia enable for CoVE if host is in VS mode + * However, if the host is running in HS mode, we need to initialize + * other CSRs as well for legacy VMs. + * TODO: Handle host in HS mode use case. + */ + if (unlikely(kvm_riscv_cove_enabled())) + goto enable_aia; + hedeleg = 0; hedeleg |= (1UL << EXC_INST_MISALIGNED); hedeleg |= (1UL << EXC_BREAKPOINT); @@ -49,6 +59,7 @@ int kvm_arch_hardware_enable(void) csr_write(CSR_HVIP, 0); +enable_aia: kvm_riscv_aia_enable(); return 0; @@ -58,6 +69,8 @@ void kvm_arch_hardware_disable(void) { kvm_riscv_aia_disable(); + if (unlikely(kvm_riscv_cove_enabled())) + goto disable_nacl; /* * After clearing the hideleg CSR, the host kernel will receive * spurious interrupts if hvip CSR has pending interrupts and the @@ -69,6 +82,7 @@ void kvm_arch_hardware_disable(void) csr_write(CSR_HEDELEG, 0); csr_write(CSR_HIDELEG, 0); +disable_nacl: kvm_riscv_nacl_disable(); } -- 2.25.1