From patchwork Tue Oct 3 03:10:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jintack Lim X-Patchwork-Id: 114651 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp1389270qgn; Mon, 2 Oct 2017 20:18:54 -0700 (PDT) X-Received: by 10.84.128.35 with SMTP id 32mr16081851pla.385.1507000734156; Mon, 02 Oct 2017 20:18:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507000734; cv=none; d=google.com; s=arc-20160816; b=vzirSctsGmDrql6THX0PkcbkjrO2vd6Zk6HCnMxENGVgfW1J0Pw3FTXh/h6buWH9Hg aFA5YETKO/NjDXUBTsSFVEWhNNwZ0P7stPuyt7Mj4EYZXA8AwUae3qpl43HdYnKVVIVh DbG9MOgpNEgkTtSp4XCifVSX7MWdNE1duoFgi3UHsFuVSDh9y/uo+sA28dTfSPTz3E3j E8Bu/FAouiYlF0Il/j/PGYsYfS6fHINe7s13OcTSqh2CJH/1izs1qOBUGYdfBaSPsnIq dw+4pYP5CLOjIoaXeS/e69O/biSwMRGkvOdM7CzQV4oQjdeg64BD4sCaiFYtsrYsJLFb J55A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=udZLXUtAMAMuq7BHsx5r5JKmFrn6ke9gBszBXuj7Bi0=; b=yzi8WwiQyQ9PmeR2T/e+POgPGfTnE0fRKbu14YrD/s50qkmIX1nxS9NxerKclQpzDw okeqFkp0miLH2ky+RT8IOIQwKOztYTX+CHefGZLREOCYrQukz9McEwpcVWfyt8F6mdHg TrFB9MJnd+UvxurzqCO4CR387RI2b5wMJkA/VJ8otpluoWp4Wfq3R3gS8ai3HGobDnXw MampgcAgigSnFFIyMRcDTiFHWsVk+XSokDReV3iZAsTb/vV+q4kZaDqPYDdkFC/uvUJX BQKCtZBfIM3o00f/hWQ0NQ5MSX7WEvMNI80iMpKZA3CoGBJP+79pnlSEwOy8+IoYzhc0 8Hvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GXoYUNOO; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e1si9611507pln.792.2017.10.02.20.18.53; Mon, 02 Oct 2017 20:18:54 -0700 (PDT) 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; dkim=pass header.i=@linaro.org header.s=google header.b=GXoYUNOO; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751484AbdJCDSw (ORCPT + 26 others); Mon, 2 Oct 2017 23:18:52 -0400 Received: from mail-it0-f50.google.com ([209.85.214.50]:46896 "EHLO mail-it0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751625AbdJCDLp (ORCPT ); Mon, 2 Oct 2017 23:11:45 -0400 Received: by mail-it0-f50.google.com with SMTP id d192so9963696itd.1 for ; Mon, 02 Oct 2017 20:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=udZLXUtAMAMuq7BHsx5r5JKmFrn6ke9gBszBXuj7Bi0=; b=GXoYUNOOwK/aja3g+KvIaCQDn+S+TgqWv9gOuvmFiwYRZUqVw6Ta8tafS7DuiK52m+ wwMqdLMtzipeLz2WBQdaFa34LtiEByuPzhCtjSKA17B/vlTi5HbuJoPHg5KT/ZET0NMV aPAsdvppfKKAcZ4RdWfMogPUHJu/bWpcZrypo= 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=udZLXUtAMAMuq7BHsx5r5JKmFrn6ke9gBszBXuj7Bi0=; b=bv5jKmytNexFpI1csrt0Ju1qSxTjYfA+ZGKMTZHDqar1Vus/Gg6thmspO8DUf1wA3O te5hjdqZhiWRXmW1Xu9YoO2HrKjpTM5uQd48Ku5DN+EzkRhSIId2E24BOrSNuaNr1hy7 iz3Q+kczFgs8nwjITtRfEb2YA11bguW2ncmVojaLTquGXqvfcbpch3NrYNOG6O9uCm7q rhIdbaodNbtSW2yIlb3j38byfJIvK/9SDuONlSUGrM2DUnILiiQLvG+4oqJnjPowe1sR FB54Fqth70dwI1ZwmwOHhIxUPGhsuqkjkZRE9bpnJdfbSb0BzZ/dRuOQhBB8dOz/ONC/ SYGQ== X-Gm-Message-State: AMCzsaVEwOuPaaQOMtxeACkLWMIxsaD4d+xd+AXQOF1xG3bYtEiQptxO A25DHRSMEVA5VvedWH3mCI4FgA== X-Google-Smtp-Source: AOwi7QAJJMKPq9kNTAuS+QsefdBFW9MaBw/+BKlMPrTGIelJPqfvDTyd/gwrv+yrrhmbYafoh5D4hQ== X-Received: by 10.36.213.133 with SMTP id a127mr5508027itg.76.1507000304924; Mon, 02 Oct 2017 20:11:44 -0700 (PDT) Received: from node.jintackl-qv28633.kvmarm-pg0.wisc.cloudlab.us (c220g1-031126.wisc.cloudlab.us. [128.104.222.76]) by smtp.gmail.com with ESMTPSA id h84sm5367193iod.72.2017.10.02.20.11.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 02 Oct 2017 20:11:44 -0700 (PDT) From: Jintack Lim To: christoffer.dall@linaro.org, marc.zyngier@arm.com, kvmarm@lists.cs.columbia.edu Cc: jintack@cs.columbia.edu, pbonzini@redhat.com, rkrcmar@redhat.com, catalin.marinas@arm.com, will.deacon@arm.com, linux@armlinux.org.uk, mark.rutland@arm.com, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH v2 07/31] KVM: arm64: Setup vttbr_el2 on each VM entry Date: Mon, 2 Oct 2017 22:10:49 -0500 Message-Id: <1507000273-3735-5-git-send-email-jintack.lim@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1507000273-3735-1-git-send-email-jintack.lim@linaro.org> References: <1507000273-3735-1-git-send-email-jintack.lim@linaro.org> 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 if we come to 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 a7811e1..afd1702 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; @@ -174,6 +175,15 @@ static void flush_shadow_el1_sysregs(struct kvm_vcpu *vcpu) flush_shadow_el1_sysregs_nvhe(vcpu); } +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 EL0 and EL1 registers which we allow the virtual EL2 mode to access * directly without trapping. This is possible because the impact of @@ -323,6 +333,8 @@ void kvm_arm_setup_shadow_state(struct kvm_vcpu *vcpu) setup_mpidr_el1(vcpu); ctxt->hw_sys_regs = ctxt->sys_regs; } + + setup_s2_mmu(vcpu); } /**