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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8293C38A2D for ; Fri, 17 Apr 2020 08:33:42 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id 4A83021D95 for ; Fri, 17 Apr 2020 08:33:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="AUYZg2TH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4A83021D95 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvmarm-bounces@lists.cs.columbia.edu Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id C77D84B0C2; Fri, 17 Apr 2020 04:33:41 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Authentication-Results: mm01.cs.columbia.edu (amavisd-new); dkim=softfail (fail, message has been altered) header.i=@kernel.org Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yoan7IwlC+iF; Fri, 17 Apr 2020 04:33:40 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id A82384B0D2; Fri, 17 Apr 2020 04:33:40 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 2F5C04B10B for ; Fri, 17 Apr 2020 04:33:39 -0400 (EDT) X-Virus-Scanned: at lists.cs.columbia.edu Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HKx4sRvYfLuA for ; Fri, 17 Apr 2020 04:33:38 -0400 (EDT) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id 2EE9F4B0C2 for ; Fri, 17 Apr 2020 04:33:38 -0400 (EDT) Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 03FC22137B; Fri, 17 Apr 2020 08:33:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587112417; bh=ow4RCTCsHairYh31RKkXUJ67Orlffoz/KgRIiU9/xD0=; h=From:To:Cc:Subject:Date:From; b=AUYZg2TH0dZxNaOepILkxW+Ra012+kuvwrSXHloeyp4ALuW9GUq7t7hjc8bhCVi4c WBWhdY5bBSg/xFSQJxvaF4KuGC1220VTm0NzW4sm3XRWzoAeoaYvbEs9+AG7w+/PCp 9cVVbvmAJlCdEIR34eUSduigKNatkMPUkXlFgHTc= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jPMRL-00473f-4u; Fri, 17 Apr 2020 09:33:35 +0100 From: Marc Zyngier To: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org Subject: [PATCH v2 0/6] KVM: arm: vgic fixes for 5.7 Date: Fri, 17 Apr 2020 09:33:13 +0100 Message-Id: <20200417083319.3066217-1-maz@kernel.org> X-Mailer: git-send-email 2.26.1 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, yuzenghui@huawei.com, eric.auger@redhat.com, Andre.Przywara@arm.com, julien@xen.org, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Cc: Julien Grall , Andre Przywara X-BeenThere: kvmarm@lists.cs.columbia.edu X-Mailman-Version: 2.1.14 Precedence: list List-Id: Where KVM/ARM decisions are made List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu Here's a few vgic fixes I've been piling on during the merge window, plus a couple that Zenghui contributed, and which I added to the mix. The first patch is a silly off-by-one bug in the ACTIVE handling code, where we miss fail to stop the guest if writing to the first set of GICv2 SPIs. Oopsie boo. The second patch improves the handling of the ACTIVE registers, which we never synchronise on the read side (the distributor state can only be updated when the vcpu exits). Let's fix it the same way we do it on the write side (stop-the-world, read, restart). Yes, this is expensive. The following two patches deal with an issue where we consider the HW state of an interrupt when responding to a userspace access. We should never do this, as the guest shouldn't be running at this stage and if it is, it is absolutely fine to return random bits to userspace. It could also be that there is no active guest context at this stage, and you end up with an Oops, which nobody really enjoys. The last two patches fix a couple of memory leaks. Marc Zyngier (4): KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read KVM: arm: vgic: Only use the virtual state when userspace accesses enable bits KVM: arm: vgic-v2: Only use the virtual state when userspace accesses pending bits Zenghui Yu (2): KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi() virt/kvm/arm/vgic/vgic-init.c | 6 + virt/kvm/arm/vgic/vgic-its.c | 11 +- virt/kvm/arm/vgic/vgic-mmio-v2.c | 16 ++- virt/kvm/arm/vgic/vgic-mmio-v3.c | 28 +++-- virt/kvm/arm/vgic/vgic-mmio.c | 183 +++++++++++++++++++++++++------ virt/kvm/arm/vgic/vgic-mmio.h | 19 ++++ 6 files changed, 207 insertions(+), 56 deletions(-) -- 2.26.1 _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm 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 X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FDD2C3815B for ; Fri, 17 Apr 2020 08:33:41 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 23625221EC for ; Fri, 17 Apr 2020 08:33:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="XcOJe24U"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="AUYZg2TH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 23625221EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject: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=YhTxbhtY9EYiXNsdKpMZGVPHjCSUn+43TdSd32hyXoA=; b=XcOJe24UCtaMB4 BB/H+4ek2CQwfGZfp3dSEK8ooaZdhDTL5XSQixeL0qfbpx3GXnEsJv+64f/hrF7MySRMn5dIwRLW5 HaIIsn/Rut6RS6L6NknYvcrUio4Ue048A9IdDoqCazE2922YYIJLSlYDlq16lnzTvcfsMQ5rL4eBS VAG5YGj68HqATuQ5pChUdXTolN7vcZoNHdkIfS45y2sg7l4op9RRLqWILt086nDMB9IegSdP7sNZv 3czXKJCnLF+d+lXQ2skP7zTdKnsfqimO85zz9ct2GJWq4TS6bIc9/OJ44N7oNAF/IbYpDJA5ZAn2K csOhe3bKqtZ8gdET7W+w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jPMRQ-0001cc-Ar; Fri, 17 Apr 2020 08:33:40 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jPMRN-0001bQ-Op for linux-arm-kernel@lists.infradead.org; Fri, 17 Apr 2020 08:33:39 +0000 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 03FC22137B; Fri, 17 Apr 2020 08:33:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587112417; bh=ow4RCTCsHairYh31RKkXUJ67Orlffoz/KgRIiU9/xD0=; h=From:To:Cc:Subject:Date:From; b=AUYZg2TH0dZxNaOepILkxW+Ra012+kuvwrSXHloeyp4ALuW9GUq7t7hjc8bhCVi4c WBWhdY5bBSg/xFSQJxvaF4KuGC1220VTm0NzW4sm3XRWzoAeoaYvbEs9+AG7w+/PCp 9cVVbvmAJlCdEIR34eUSduigKNatkMPUkXlFgHTc= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jPMRL-00473f-4u; Fri, 17 Apr 2020 09:33:35 +0100 From: Marc Zyngier To: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org Subject: [PATCH v2 0/6] KVM: arm: vgic fixes for 5.7 Date: Fri, 17 Apr 2020 09:33:13 +0100 Message-Id: <20200417083319.3066217-1-maz@kernel.org> X-Mailer: git-send-email 2.26.1 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, yuzenghui@huawei.com, eric.auger@redhat.com, Andre.Przywara@arm.com, julien@xen.org, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200417_013337_825705_4D811FB5 X-CRM114-Status: GOOD ( 14.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Julien Grall , Suzuki K Poulose , Andre Przywara , Eric Auger , James Morse , Zenghui Yu , Julien Thierry Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Here's a few vgic fixes I've been piling on during the merge window, plus a couple that Zenghui contributed, and which I added to the mix. The first patch is a silly off-by-one bug in the ACTIVE handling code, where we miss fail to stop the guest if writing to the first set of GICv2 SPIs. Oopsie boo. The second patch improves the handling of the ACTIVE registers, which we never synchronise on the read side (the distributor state can only be updated when the vcpu exits). Let's fix it the same way we do it on the write side (stop-the-world, read, restart). Yes, this is expensive. The following two patches deal with an issue where we consider the HW state of an interrupt when responding to a userspace access. We should never do this, as the guest shouldn't be running at this stage and if it is, it is absolutely fine to return random bits to userspace. It could also be that there is no active guest context at this stage, and you end up with an Oops, which nobody really enjoys. The last two patches fix a couple of memory leaks. Marc Zyngier (4): KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read KVM: arm: vgic: Only use the virtual state when userspace accesses enable bits KVM: arm: vgic-v2: Only use the virtual state when userspace accesses pending bits Zenghui Yu (2): KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi() virt/kvm/arm/vgic/vgic-init.c | 6 + virt/kvm/arm/vgic/vgic-its.c | 11 +- virt/kvm/arm/vgic/vgic-mmio-v2.c | 16 ++- virt/kvm/arm/vgic/vgic-mmio-v3.c | 28 +++-- virt/kvm/arm/vgic/vgic-mmio.c | 183 +++++++++++++++++++++++++------ virt/kvm/arm/vgic/vgic-mmio.h | 19 ++++ 6 files changed, 207 insertions(+), 56 deletions(-) -- 2.26.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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 X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00228C2BB55 for ; Fri, 17 Apr 2020 08:33:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C503D221EB for ; Fri, 17 Apr 2020 08:33:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587112418; bh=ow4RCTCsHairYh31RKkXUJ67Orlffoz/KgRIiU9/xD0=; h=From:To:Cc:Subject:Date:List-ID:From; b=dnj/YnEE6ZRtdDxoNqfG0n62AiItax3ws1A07iRrdaVHretymik7pZBSxuhgYT9jT 0up+sBEc7+bS9g7k0/I2Ls8Y8e4cNreiEXp82pKH4M4m2gABpE4zpLB/kYoBBsgbSN YJxQz6NYoUNCWa0GM6gLR7Cvd9L0ihEkvpoilQ2U= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729755AbgDQIdi (ORCPT ); Fri, 17 Apr 2020 04:33:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:59312 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729166AbgDQIdh (ORCPT ); Fri, 17 Apr 2020 04:33:37 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 03FC22137B; Fri, 17 Apr 2020 08:33:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587112417; bh=ow4RCTCsHairYh31RKkXUJ67Orlffoz/KgRIiU9/xD0=; h=From:To:Cc:Subject:Date:From; b=AUYZg2TH0dZxNaOepILkxW+Ra012+kuvwrSXHloeyp4ALuW9GUq7t7hjc8bhCVi4c WBWhdY5bBSg/xFSQJxvaF4KuGC1220VTm0NzW4sm3XRWzoAeoaYvbEs9+AG7w+/PCp 9cVVbvmAJlCdEIR34eUSduigKNatkMPUkXlFgHTc= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jPMRL-00473f-4u; Fri, 17 Apr 2020 09:33:35 +0100 From: Marc Zyngier To: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org Cc: Zenghui Yu , Eric Auger , Andre Przywara , Julien Grall , James Morse , Julien Thierry , Suzuki K Poulose Subject: [PATCH v2 0/6] KVM: arm: vgic fixes for 5.7 Date: Fri, 17 Apr 2020 09:33:13 +0100 Message-Id: <20200417083319.3066217-1-maz@kernel.org> X-Mailer: git-send-email 2.26.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, yuzenghui@huawei.com, eric.auger@redhat.com, Andre.Przywara@arm.com, julien@xen.org, james.morse@arm.com, julien.thierry.kdev@gmail.com, suzuki.poulose@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Here's a few vgic fixes I've been piling on during the merge window, plus a couple that Zenghui contributed, and which I added to the mix. The first patch is a silly off-by-one bug in the ACTIVE handling code, where we miss fail to stop the guest if writing to the first set of GICv2 SPIs. Oopsie boo. The second patch improves the handling of the ACTIVE registers, which we never synchronise on the read side (the distributor state can only be updated when the vcpu exits). Let's fix it the same way we do it on the write side (stop-the-world, read, restart). Yes, this is expensive. The following two patches deal with an issue where we consider the HW state of an interrupt when responding to a userspace access. We should never do this, as the guest shouldn't be running at this stage and if it is, it is absolutely fine to return random bits to userspace. It could also be that there is no active guest context at this stage, and you end up with an Oops, which nobody really enjoys. The last two patches fix a couple of memory leaks. Marc Zyngier (4): KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read KVM: arm: vgic: Only use the virtual state when userspace accesses enable bits KVM: arm: vgic-v2: Only use the virtual state when userspace accesses pending bits Zenghui Yu (2): KVM: arm64: vgic-v3: Retire all pending LPIs on vcpu destroy KVM: arm64: vgic-its: Fix memory leak on the error path of vgic_add_lpi() virt/kvm/arm/vgic/vgic-init.c | 6 + virt/kvm/arm/vgic/vgic-its.c | 11 +- virt/kvm/arm/vgic/vgic-mmio-v2.c | 16 ++- virt/kvm/arm/vgic/vgic-mmio-v3.c | 28 +++-- virt/kvm/arm/vgic/vgic-mmio.c | 183 +++++++++++++++++++++++++------ virt/kvm/arm/vgic/vgic-mmio.h | 19 ++++ 6 files changed, 207 insertions(+), 56 deletions(-) -- 2.26.1