Message ID | 20240429092113.70695-1-betterman5240@gmail.com |
---|---|
State | New |
Headers | show
Return-Path: <kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=l+JPu/QK; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=Oq7hmeHm; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VSdBc2Y52z23hd for <incoming@patchwork.ozlabs.org>; Mon, 29 Apr 2024 19:22:00 +1000 (AEST) 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: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:In-Reply-To:References: List-Owner; bh=rN7SkJ6cBvWNDdkFiRaV5D7bDLjwW58cLHUWQT2F6c0=; b=l+JPu/QKA72L1k yjRwW7IR3/YVqndUvXCOwC55DyPPVLD+07dc9I5uqCIwYEqFCDAQnuwapXum3X0Nrpa+whPPJFbWQ ba/RJPHk7ns96UPu6wMu79pwLQYaLjN078chUvu2toLXg13LCs9zXoopvSVqhWnnW/NsAH+qkz7qX J28JCrO59co9j+Hc9DQ8NUnDoi+DsH6nDc2xvTK26RPH21TbcXA9pzr/V0AjZcX+phfzFB5UcyQf5 I1QfbbefiHhkLCmoZAGfQqAFpphkCQ6DCwkkKnouV0eUYC+w66ZCaHw/1k7jjMoIIIS7Npj+HSaSK S1to9BuhTMIJuEIcUntw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1NCx-000000025xM-00Es; Mon, 29 Apr 2024 09:21:59 +0000 Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1NCt-000000025u5-01fL; Mon, 29 Apr 2024 09:21:57 +0000 Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-6ecff9df447so4104309b3a.1; Mon, 29 Apr 2024 02:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714382511; x=1714987311; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=J9UFM0QgrM1FAh0+vb7l+Th4iJA3HL3efcqlB9gfYVY=; b=Oq7hmeHmmxra/m4Xl2YwpGn8lzsseOo0UPQc2aiHe7I0gaqkXquKmaqpkqrM1vlGrL GMB3/YPzDqlxsKCgppyi6iZEYHvsFSxzf/sQ32q/VXOv5pd62ew66eBuOA0oZQ+Rg4Mf mbwgu2c6pAMd8d9pE/lVYdQ/LNwPb6eZqei87OghLEPNhKJQhHnzq3aEzka1tSuPEyCh 1B3xwAdVBngOhqFv0xuUW0EbbTvKocItsrD8J/1L3L/jc8Jkit+yBZ7wIHbc+YCsBGe9 2rCQOKuNVitSCjD7OogmAK38aBEiioH1srX7EGRpN8WdnhLy4Q2XJPNWjcn9/QoBIcvM 68Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714382511; x=1714987311; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=J9UFM0QgrM1FAh0+vb7l+Th4iJA3HL3efcqlB9gfYVY=; b=wmCyl3TYMdkZ2/8PkgSY2c57ryVOFWAj5tLEnJKsb2re/ly/TrLBsBmuuALEf6wm1r EYl5vRQ+daFdG8qJGKB/PLzzm39h5PBcPifV0uERuUAkDqoAHfhI+IBzrZcdySBBecwC BlReA1gsia9H5mh7WFvlP3wvuVGy93fNLRkGZE3sGHvTXGHbaXL7uAqEZjIIVRAQocZ6 57mJiHVbQxLpiYpzp5GP84b0mzjNwQGAperXR3c9cfmqBW+flkFCeugKJcSWt++dv16W nBeMCgTA6nSRHRN2hAzwQJK9reNG3nL+VJNt78QNOrZ9MajAKn9Dr/juJAJc8ifOgVr2 J2Xg== X-Forwarded-Encrypted: i=1; AJvYcCVrK1h3GozzefsBkrabziYm8vSXOjpffmPWuz9X8zrn0xG9R/NBeTuDT8JSKppGQUv8Zs5aTH6tx8QcAowpIHznbKzRWOF0r77psrW5eEBEWwf+hY49tLB5qeO4JM1uhfA9uKu8l4AOSWfnJGWZSQ== X-Gm-Message-State: AOJu0YybEKGzr1BimK/E7uQyeSHlbRRkppRPgOt/etnIPMHQfMVifXhk O4/x1UdqpzcGtY7DoVGN+7WmtXaI3gjl+FbS/fqRmVxYn5uEmQYI X-Google-Smtp-Source: AGHT+IFUWMxCtXR0YEgu24XHMxJDW5kxEJj7RXx/NjNPsp2tU9ljNIxOlNFDAkPSTudVDNteHZSAFA== X-Received: by 2002:a05:6a00:3a09:b0:6ea:74d4:a01c with SMTP id fj9-20020a056a003a0900b006ea74d4a01cmr10302896pfb.14.1714382510598; Mon, 29 Apr 2024 02:21:50 -0700 (PDT) Received: from localhost.localdomain (122-116-220-221.hinet-ip.hinet.net. [122.116.220.221]) by smtp.gmail.com with ESMTPSA id b16-20020a63d810000000b005e438fe702dsm18503787pgh.65.2024.04.29.02.21.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Apr 2024 02:21:50 -0700 (PDT) From: Yu-Wei Hsu <betterman5240@gmail.com> To: anup@brainfault.org Cc: atishp@atishpatra.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Yu-Wei Hsu <betterman5240@gmail.com> Subject: [PATCH] RISC-V:KVM: Add AMO load/store access fault traps to redirect to guest Date: Mon, 29 Apr 2024 09:21:13 +0000 Message-Id: <20240429092113.70695-1-betterman5240@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240429_022155_115805_01018229 X-CRM114-Status: UNSURE ( 8.09 ) X-CRM114-Notice: Please train this message. X-Spam-Score: 0.1 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: When unhandled AMO load/store access fault traps are not delegated to VS mode (hedeleg), M mode redirects them back to S mode. However, upon returning from M mode,the KVM executed in HS mode terminate [...] Content analysis details: (0.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:434 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit [betterman5240(at)gmail.com] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [betterman5240(at)gmail.com] X-BeenThere: kvm-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: <kvm-riscv.lists.infradead.org> List-Unsubscribe: <http://lists.infradead.org/mailman/options/kvm-riscv>, <mailto:kvm-riscv-request@lists.infradead.org?subject=unsubscribe> List-Archive: <http://lists.infradead.org/pipermail/kvm-riscv/> List-Post: <mailto:kvm-riscv@lists.infradead.org> List-Help: <mailto:kvm-riscv-request@lists.infradead.org?subject=help> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/kvm-riscv>, <mailto:kvm-riscv-request@lists.infradead.org?subject=subscribe> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kvm-riscv" <kvm-riscv-bounces@lists.infradead.org> Errors-To: kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org |
Series |
RISC-V:KVM: Add AMO load/store access fault traps to redirect to guest
|
expand
|
diff --git a/arch/riscv/kvm/vcpu_exit.c b/arch/riscv/kvm/vcpu_exit.c index 2415722c01b8..ef8c5e3ec8a0 100644 --- a/arch/riscv/kvm/vcpu_exit.c +++ b/arch/riscv/kvm/vcpu_exit.c @@ -185,6 +185,8 @@ int kvm_riscv_vcpu_exit(struct kvm_vcpu *vcpu, struct kvm_run *run, case EXC_INST_ILLEGAL: case EXC_LOAD_MISALIGNED: case EXC_STORE_MISALIGNED: + case EXC_LOAD_ACCESS: + case EXC_STORE_ACCESS: if (vcpu->arch.guest_context.hstatus & HSTATUS_SPV) { kvm_riscv_vcpu_trap_redirect(vcpu, trap); ret = 1;
When unhandled AMO load/store access fault traps are not delegated to VS mode (hedeleg), M mode redirects them back to S mode. However, upon returning from M mode,the KVM executed in HS mode terminates VS mode software. KVM should redirect traps back to VS mode and let the VS mode trap handler determine the next steps. This is one approach to handling access fault traps in KVM, not only redirecting them to VS mode or terminating it. Signed-off-by: Yu-Wei Hsu <betterman5240@gmail.com> --- arch/riscv/kvm/vcpu_exit.c | 2 ++ 1 file changed, 2 insertions(+)