From patchwork Thu Jul 23 11:02:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Deacon X-Patchwork-Id: 11680607 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CDB1D138A for ; Thu, 23 Jul 2020 11:04:09 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 A3C6E2080D for ; Thu, 23 Jul 2020 11:04:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="MVRs/vNG"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="pYh+m6c2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3C6E2080D 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+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=f7d8Z1vhDXyKviA+iYc7mtoq6sWPxPr+y5/p2X8JUl4=; b=MVRs/vNGf5KXIH8sNCnjIalR8 W1SuILfb3evAHnTrosDk8CrecTGlphdouaASvigauMpfHsVeYUYoPBeWBiRqS+s9uJDpKzsKt5hoa vO9M1zP+iWnALpllalOQ7h21Cg1wQOKrHgjUejsOab6dUqNIbhWoXgxjoBaatNqYyGzqX88rZIoE8 cVOeNu+pE563nxXwpXGCoVFjhsgYdrgdvb8d0/QTMGoR61GLV6OXqrMbXpx/mxd6IyjP3lJUhHcxZ t25G5un8btmMRuLGT3hC+2gmLj7aw/mJ7uQsl6mDP0TFPgFN/EOi+VupRZ/6fYuVVkC9lAFZcPW91 LK9kD3NgA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyZ02-0004bN-4Y; Thu, 23 Jul 2020 11:02:54 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyYzv-0004Zw-Bb for linux-arm-kernel@lists.infradead.org; Thu, 23 Jul 2020 11:02:48 +0000 Received: from localhost.localdomain (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6D68922B43; Thu, 23 Jul 2020 11:02:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595502166; bh=RGohuwH1Kr4sI6kOzVad8F1yLFTUAZVX36aipG0twzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pYh+m6c2MqBsL80u/3tab/oeksJl05188xJ8l+bDXgogc5nS1A9rRCTUHSNmtF8G/ JYBshQBxqPsoama7Z12LDN/WVplZBpsP8hZQOVMiQ7+ZbST3A7QIz13gfupYaeIfXj G4uPg8sdPgN6Z2qYlz8pXyPc31DTBUn2j07y2fBg= From: Will Deacon To: kvmarm@lists.cs.columbia.edu Subject: [PATCH 1/3] KVM: arm64: Don't free memcache pages in kvm_phys_addr_ioremap() Date: Thu, 23 Jul 2020 12:02:25 +0100 Message-Id: <20200723110227.16001-2-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200723110227.16001-1-will@kernel.org> References: <20200723110227.16001-1-will@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200723_070247_508174_06AF6FBD X-CRM114-Status: GOOD ( 11.88 ) X-Spam-Score: -5.2 (-----) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-5.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, high trust [198.145.29.99 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender 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: Will Deacon , suzuki.poulose@arm.com, maz@kernel.org, qperret@google.com, james.morse@arm.com, kernel-team@android.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org kvm_phys_addr_ioremap() unconditionally empties out the memcache pages for the current vCPU on return. This causes subsequent topups to allocate fresh pages and is at odds with the behaviour when mapping memory in user_mem_abort(). Remove the call to mmu_free_memory_cache() from kvm_phys_addr_ioremap(), allowing the cached pages to be used by a later mapping. Cc: Marc Zyngier Cc: Quentin Perret Signed-off-by: Will Deacon --- arch/arm64/kvm/mmu.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 31058e6e7c2a..9102373a9744 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1484,19 +1484,17 @@ int kvm_phys_addr_ioremap(struct kvm *kvm, phys_addr_t guest_ipa, kvm_mmu_cache_min_pages(kvm), KVM_NR_MEM_OBJS); if (ret) - goto out; + break; spin_lock(&kvm->mmu_lock); ret = stage2_set_pte(kvm, &cache, addr, &pte, KVM_S2PTE_FLAG_IS_IOMAP); spin_unlock(&kvm->mmu_lock); if (ret) - goto out; + break; pfn++; } -out: - mmu_free_memory_cache(&cache); return ret; }