From patchwork Mon Jan 9 06:24:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jintack Lim X-Patchwork-Id: 90356 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp708577qgi; Sun, 8 Jan 2017 22:33:27 -0800 (PST) X-Received: by 10.98.72.129 with SMTP id q1mr81418500pfi.169.1483943607032; Sun, 08 Jan 2017 22:33:27 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 22si7059167pfr.164.2017.01.08.22.33.26; Sun, 08 Jan 2017 22:33:27 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1033937AbdAIGdV (ORCPT + 25 others); Mon, 9 Jan 2017 01:33:21 -0500 Received: from outprodmail02.cc.columbia.edu ([128.59.72.51]:52271 "EHLO outprodmail02.cc.columbia.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S939754AbdAIG0X (ORCPT ); Mon, 9 Jan 2017 01:26:23 -0500 Received: from hazelnut (hazelnut.cc.columbia.edu [128.59.213.250]) by outprodmail02.cc.columbia.edu (8.14.4/8.14.4) with ESMTP id v096Q5kh006197 for ; Mon, 9 Jan 2017 01:26:19 -0500 Received: from hazelnut (localhost.localdomain [127.0.0.1]) by hazelnut (Postfix) with ESMTP id 7A19C6D for ; Mon, 9 Jan 2017 01:26:19 -0500 (EST) Received: from sendprodmail03.cc.columbia.edu (sendprodmail03.cc.columbia.edu [128.59.72.15]) by hazelnut (Postfix) with ESMTP id 57E4780 for ; Mon, 9 Jan 2017 01:26:19 -0500 (EST) Received: from mail-qt0-f199.google.com (mail-qt0-f199.google.com [209.85.216.199]) by sendprodmail03.cc.columbia.edu (8.14.4/8.14.4) with ESMTP id v096QJlp057556 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 9 Jan 2017 01:26:19 -0500 Received: by mail-qt0-f199.google.com with SMTP id t56so77867172qte.3 for ; Sun, 08 Jan 2017 22:26:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vxhAtWbuAptF38r2ltRNqi8B0IZveh/ZVr7Yan1mX/8=; b=KvPPEiMTP1oC5JvQhAjKPqBj/XDr70F8zcdYPrO6RGgumHAy4C1skbFLqFokPIoRJt decDeBwJ2N+cbJ4LYgeXFn64pXJVgsVK3afOAN1M+06p50ZG8rlCMWoBGshoxoW5skfP QIo00MLpW4Ohwn8a9nsf2M7Fyl0l9sk/lKRIIXv9mGV9jHUEJL7cTRXrTDg9bUXGjJD1 /9vZCr+2HWABqDyYr8B5RVvBNZL0DJO0gdEA2nLOyrJr3GT4obUbJ1gMGOeyzMH907vW tlww4KZ08fa5pcx+DOppB+X/G9Wr2asg20aM3OfD/tC7ehlyTKLXQsTJm+C9aMPi4Shf g6Dg== X-Gm-Message-State: AIkVDXJIcn9mdNyMST60XLJvWARvbGVu0mnJ9jt9bOFcrrVsJ2II5KoYlI+kPQ6eKdZrEdhViETBy3ZHOvy9rEh2q/jfjNS9mQYYrHD7+uo/HrdapCpn+lqeY4Jxo606cz7jndv32H8CG7KEp3RtyfVbb3w= X-Received: by 10.55.138.2 with SMTP id m2mr61054710qkd.115.1483943179012; Sun, 08 Jan 2017 22:26:19 -0800 (PST) X-Received: by 10.55.138.2 with SMTP id m2mr61054704qkd.115.1483943178862; Sun, 08 Jan 2017 22:26:18 -0800 (PST) Received: from jintack.cs.columbia.edu ([2001:18d8:ffff:16:21a:4aff:feaa:f900]) by smtp.gmail.com with ESMTPSA id h3sm8623257qtc.6.2017.01.08.22.26.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 08 Jan 2017 22:26:18 -0800 (PST) From: Jintack Lim To: christoffer.dall@linaro.org, marc.zyngier@arm.com, pbonzini@redhat.com, rkrcmar@redhat.com, linux@armlinux.org.uk, catalin.marinas@arm.com, will.deacon@arm.com, vladimir.murzin@arm.com, suzuki.poulose@arm.com, mark.rutland@arm.com, james.morse@arm.com, lorenzo.pieralisi@arm.com, kevin.brodsky@arm.com, wcohen@redhat.com, shankerd@codeaurora.org, geoff@infradead.org, andre.przywara@arm.com, eric.auger@redhat.com, anna-maria@linutronix.de, shihwei@cs.columbia.edu, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: jintack@cs.columbia.edu Subject: [RFC 37/55] KVM: arm64: Setup vttbr_el2 on each VM entry Date: Mon, 9 Jan 2017 01:24:33 -0500 Message-Id: <1483943091-1364-38-git-send-email-jintack@cs.columbia.edu> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1483943091-1364-1-git-send-email-jintack@cs.columbia.edu> References: <1483943091-1364-1-git-send-email-jintack@cs.columbia.edu> X-No-Spam-Score: Local X-Scanned-By: MIMEDefang 2.78 on 128.59.72.15 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Christoffer Dall Now that the vttbr value will be different depending on the VM's exception level, we set it on each VM entry. We only have one mmu instance at this point, but there will be multiple of them when we run nested VMs. Signed-off-by: Christoffer Dall Signed-off-by: Jintack Lim --- arch/arm64/kvm/context.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) -- 1.9.1 diff --git a/arch/arm64/kvm/context.c b/arch/arm64/kvm/context.c index a93ffe4..b2c0220 100644 --- a/arch/arm64/kvm/context.c +++ b/arch/arm64/kvm/context.c @@ -18,6 +18,7 @@ #include #include #include +#include struct el1_el2_map { enum vcpu_sysreg el1; @@ -88,6 +89,15 @@ static void create_shadow_el1_sysregs(struct kvm_vcpu *vcpu) s_sys_regs[CPACR_EL1] = cptr_el2_to_cpacr_el1(el2_regs[CPTR_EL2]); } +static void setup_s2_mmu(struct kvm_vcpu *vcpu) +{ + struct kvm_s2_mmu *mmu = &vcpu->kvm->arch.mmu; + struct kvm_s2_vmid *vmid = vcpu_get_active_vmid(vcpu); + + vcpu->arch.hw_vttbr = kvm_get_vttbr(vmid, mmu); + vcpu->arch.hw_mmu = mmu; +} + /* * List of EL1 registers which we allow the virtual EL2 mode to access * directly without trapping and which haven't been paravirtualized. @@ -166,6 +176,8 @@ void kvm_arm_setup_shadow_state(struct kvm_vcpu *vcpu) } vgic_v2_setup_shadow_state(vcpu); + + setup_s2_mmu(vcpu); } /**