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=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham 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 71BD3C0650E for ; Mon, 1 Jul 2019 16:12:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4F3A020881 for ; Mon, 1 Jul 2019 16:12:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729074AbfGAQM1 (ORCPT ); Mon, 1 Jul 2019 12:12:27 -0400 Received: from foss.arm.com ([217.140.110.172]:37268 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728238AbfGAQM1 (ORCPT ); Mon, 1 Jul 2019 12:12:27 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4D27E2B; Mon, 1 Jul 2019 09:12:26 -0700 (PDT) Received: from [10.1.31.185] (unknown [10.1.31.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3AE1C3F703; Mon, 1 Jul 2019 09:12:25 -0700 (PDT) Subject: Re: [PATCH 18/59] KVM: arm64: nv: Trap EL1 VM register accesses in virtual EL2 To: Marc Zyngier , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org Cc: Andre Przywara , Dave Martin References: <20190621093843.220980-1-marc.zyngier@arm.com> <20190621093843.220980-19-marc.zyngier@arm.com> From: Alexandru Elisei Message-ID: <37c2b50d-7a5a-335a-ed5e-6d568ee94cb7@arm.com> Date: Mon, 1 Jul 2019 17:12:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190621093843.220980-19-marc.zyngier@arm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On 6/21/19 10:38 AM, Marc Zyngier wrote: > From: Christoffer Dall > > When running in virtual EL2 mode, we actually run the hardware in EL1 > and therefore have to use the EL1 registers to ensure correct operation. > > By setting the HCR.TVM and HCR.TVRM we ensure that the virtual EL2 mode > doesn't shoot itself in the foot when setting up what it believes to be > a different mode's system register state (for example when preparing to > switch to a VM). A guest hypervisor with vhe enabled uses the _EL12 register names when preparing to run a guest, and accesses to those registers are already trapped when setting HCR_EL2.NV. This patch affects only non-vhe guest hypervisors, would you mind updating the message to reflect that? > > We can leverage the existing sysregs infrastructure to support trapped > accesses to these registers. > > Signed-off-by: Christoffer Dall > Signed-off-by: Marc Zyngier > --- > arch/arm64/kvm/hyp/switch.c | 4 ++++ > arch/arm64/kvm/sys_regs.c | 7 ++++++- > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c > index 7b55c11b30fb..791b26570347 100644 > --- a/arch/arm64/kvm/hyp/switch.c > +++ b/arch/arm64/kvm/hyp/switch.c > @@ -135,6 +135,10 @@ static void __hyp_text __activate_traps(struct kvm_vcpu *vcpu) > { > u64 hcr = vcpu->arch.hcr_el2; > > + /* Trap VM sysreg accesses if an EL2 guest is not using VHE. */ > + if (vcpu_mode_el2(vcpu) && !vcpu_el2_e2h_is_set(vcpu)) > + hcr |= HCR_TVM | HCR_TRVM; > + > write_sysreg(hcr, hcr_el2); > > if (cpus_have_const_cap(ARM64_HAS_RAS_EXTN) && (hcr & HCR_VSE)) > diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c > index e181359adadf..0464d8e29cba 100644 > --- a/arch/arm64/kvm/sys_regs.c > +++ b/arch/arm64/kvm/sys_regs.c > @@ -440,7 +440,12 @@ static bool access_vm_reg(struct kvm_vcpu *vcpu, > u64 val; > int reg = r->reg; > > - BUG_ON(!p->is_write); > + BUG_ON(!vcpu_mode_el2(vcpu) && !p->is_write); > + > + if (!p->is_write) { > + p->regval = vcpu_read_sys_reg(vcpu, reg); > + return true; > + } > > /* See the 32bit mapping in kvm_host.h */ > if (p->is_aarch32) For more context: diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index e181359adadf..0464d8e29cba 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -428,31 +428,36 @@ static bool access_dcsw(struct kvm_vcpu *vcpu,  }    /*   * Generic accessor for VM registers. Only called as long as HCR_TVM   * is set. If the guest enables the MMU, we stop trapping the VM   * sys_regs and leave it in complete control of the caches.   */  static bool access_vm_reg(struct kvm_vcpu *vcpu,                           struct sys_reg_params *p,                           const struct sys_reg_desc *r)  {         bool was_enabled = vcpu_has_cache_enabled(vcpu);         u64 val;         int reg = r->reg;   -       BUG_ON(!p->is_write); +       BUG_ON(!vcpu_mode_el2(vcpu) && !p->is_write); + +       if (!p->is_write) { +               p->regval = vcpu_read_sys_reg(vcpu, reg); +               return true; +       }           /* See the 32bit mapping in kvm_host.h */         if (p->is_aarch32)                 reg = r->reg / 2;           if (!p->is_aarch32 || !p->is_32bit) {                 val = p->regval;         } else {                 val = vcpu_read_sys_reg(vcpu, reg);                 if (r->reg % 2)                         val = (p->regval << 32) | (u64)lower_32_bits(val);                 else                         val = ((u64)upper_32_bits(val) << 32) |                                 lower_32_bits(p->regval);         } Perhaps the function comment should be updated to reflect that the function is also used for VM register traps for a non-vhe guest hypervisor? 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=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham 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 40EBFC0650E for ; Mon, 1 Jul 2019 16:12:32 +0000 (UTC) Received: from mm01.cs.columbia.edu (mm01.cs.columbia.edu [128.59.11.253]) by mail.kernel.org (Postfix) with ESMTP id D180F20881 for ; Mon, 1 Jul 2019 16:12:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D180F20881 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com 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 3E1E64A4E9; Mon, 1 Jul 2019 12:12:31 -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 K0UZEVTRjCFF; Mon, 1 Jul 2019 12:12:29 -0400 (EDT) Received: from mm01.cs.columbia.edu (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id C6CD94A483; Mon, 1 Jul 2019 12:12:29 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 40BAF4A483 for ; Mon, 1 Jul 2019 12:12:28 -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 fsR5TeAlBeuR for ; Mon, 1 Jul 2019 12:12:26 -0400 (EDT) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mm01.cs.columbia.edu (Postfix) with ESMTP id C022C40217 for ; Mon, 1 Jul 2019 12:12:26 -0400 (EDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4D27E2B; Mon, 1 Jul 2019 09:12:26 -0700 (PDT) Received: from [10.1.31.185] (unknown [10.1.31.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3AE1C3F703; Mon, 1 Jul 2019 09:12:25 -0700 (PDT) Subject: Re: [PATCH 18/59] KVM: arm64: nv: Trap EL1 VM register accesses in virtual EL2 To: Marc Zyngier , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org References: <20190621093843.220980-1-marc.zyngier@arm.com> <20190621093843.220980-19-marc.zyngier@arm.com> From: Alexandru Elisei Message-ID: <37c2b50d-7a5a-335a-ed5e-6d568ee94cb7@arm.com> Date: Mon, 1 Jul 2019 17:12:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190621093843.220980-19-marc.zyngier@arm.com> Content-Language: en-US Cc: Andre Przywara , Dave Martin 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="utf-8" Content-Transfer-Encoding: base64 Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu Ck9uIDYvMjEvMTkgMTA6MzggQU0sIE1hcmMgWnluZ2llciB3cm90ZToKPiBGcm9tOiBDaHJpc3Rv ZmZlciBEYWxsIDxjaHJpc3RvZmZlci5kYWxsQGxpbmFyby5vcmc+Cj4KPiBXaGVuIHJ1bm5pbmcg aW4gdmlydHVhbCBFTDIgbW9kZSwgd2UgYWN0dWFsbHkgcnVuIHRoZSBoYXJkd2FyZSBpbiBFTDEK PiBhbmQgdGhlcmVmb3JlIGhhdmUgdG8gdXNlIHRoZSBFTDEgcmVnaXN0ZXJzIHRvIGVuc3VyZSBj b3JyZWN0IG9wZXJhdGlvbi4KPgo+IEJ5IHNldHRpbmcgdGhlIEhDUi5UVk0gYW5kIEhDUi5UVlJN IHdlIGVuc3VyZSB0aGF0IHRoZSB2aXJ0dWFsIEVMMiBtb2RlCj4gZG9lc24ndCBzaG9vdCBpdHNl bGYgaW4gdGhlIGZvb3Qgd2hlbiBzZXR0aW5nIHVwIHdoYXQgaXQgYmVsaWV2ZXMgdG8gYmUKPiBh IGRpZmZlcmVudCBtb2RlJ3Mgc3lzdGVtIHJlZ2lzdGVyIHN0YXRlIChmb3IgZXhhbXBsZSB3aGVu IHByZXBhcmluZyB0bwo+IHN3aXRjaCB0byBhIFZNKS4KQSBndWVzdCBoeXBlcnZpc29yIHdpdGgg dmhlIGVuYWJsZWQgdXNlcyB0aGUgX0VMMTIgcmVnaXN0ZXIgbmFtZXMgd2hlbiBwcmVwYXJpbmcK dG8gcnVuIGEgZ3Vlc3QsIGFuZCBhY2Nlc3NlcyB0byB0aG9zZSByZWdpc3RlcnMgYXJlIGFscmVh ZHkgdHJhcHBlZCB3aGVuIHNldHRpbmcKSENSX0VMMi5OVi4gVGhpcyBwYXRjaCBhZmZlY3RzIG9u bHkgbm9uLXZoZSBndWVzdCBoeXBlcnZpc29ycywgd291bGQgeW91IG1pbmQKdXBkYXRpbmcgdGhl IG1lc3NhZ2UgdG8gcmVmbGVjdCB0aGF0Pwo+Cj4gV2UgY2FuIGxldmVyYWdlIHRoZSBleGlzdGlu ZyBzeXNyZWdzIGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgdHJhcHBlZAo+IGFjY2Vzc2VzIHRv IHRoZXNlIHJlZ2lzdGVycy4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzdG9mZmVyIERhbGwgPGNo cmlzdG9mZmVyLmRhbGxAbGluYXJvLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBNYXJjIFp5bmdpZXIg PG1hcmMuenluZ2llckBhcm0uY29tPgo+IC0tLQo+ICBhcmNoL2FybTY0L2t2bS9oeXAvc3dpdGNo LmMgfCA0ICsrKysKPiAgYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYyAgIHwgNyArKysrKystCj4g IDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlm ZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL2h5cC9zd2l0Y2guYyBiL2FyY2gvYXJtNjQva3ZtL2h5 cC9zd2l0Y2guYwo+IGluZGV4IDdiNTVjMTFiMzBmYi4uNzkxYjI2NTcwMzQ3IDEwMDY0NAo+IC0t LSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9zd2l0Y2guYwo+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL2h5 cC9zd2l0Y2guYwo+IEBAIC0xMzUsNiArMTM1LDEwIEBAIHN0YXRpYyB2b2lkIF9faHlwX3RleHQg X19hY3RpdmF0ZV90cmFwcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gIHsKPiAgCXU2NCBoY3Ig PSB2Y3B1LT5hcmNoLmhjcl9lbDI7Cj4gIAo+ICsJLyogVHJhcCBWTSBzeXNyZWcgYWNjZXNzZXMg aWYgYW4gRUwyIGd1ZXN0IGlzIG5vdCB1c2luZyBWSEUuICovCj4gKwlpZiAodmNwdV9tb2RlX2Vs Mih2Y3B1KSAmJiAhdmNwdV9lbDJfZTJoX2lzX3NldCh2Y3B1KSkKPiArCQloY3IgfD0gSENSX1RW TSB8IEhDUl9UUlZNOwo+ICsKPiAgCXdyaXRlX3N5c3JlZyhoY3IsIGhjcl9lbDIpOwo+ICAKPiAg CWlmIChjcHVzX2hhdmVfY29uc3RfY2FwKEFSTTY0X0hBU19SQVNfRVhUTikgJiYgKGhjciAmIEhD Ul9WU0UpKQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jIGIvYXJjaC9h cm02NC9rdm0vc3lzX3JlZ3MuYwo+IGluZGV4IGUxODEzNTlhZGFkZi4uMDQ2NGQ4ZTI5Y2JhIDEw MDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMKPiArKysgYi9hcmNoL2FybTY0 L2t2bS9zeXNfcmVncy5jCj4gQEAgLTQ0MCw3ICs0NDAsMTIgQEAgc3RhdGljIGJvb2wgYWNjZXNz X3ZtX3JlZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gIAl1NjQgdmFsOwo+ICAJaW50IHJlZyA9 IHItPnJlZzsKPiAgCj4gLQlCVUdfT04oIXAtPmlzX3dyaXRlKTsKPiArCUJVR19PTighdmNwdV9t b2RlX2VsMih2Y3B1KSAmJiAhcC0+aXNfd3JpdGUpOwo+ICsKPiArCWlmICghcC0+aXNfd3JpdGUp IHsKPiArCQlwLT5yZWd2YWwgPSB2Y3B1X3JlYWRfc3lzX3JlZyh2Y3B1LCByZWcpOwo+ICsJCXJl dHVybiB0cnVlOwo+ICsJfQo+ICAKPiAgCS8qIFNlZSB0aGUgMzJiaXQgbWFwcGluZyBpbiBrdm1f aG9zdC5oICovCj4gIAlpZiAocC0+aXNfYWFyY2gzMikKCkZvciBtb3JlIGNvbnRleHQ6CgpkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYyBiL2FyY2gvYXJtNjQva3ZtL3N5c19y ZWdzLmMKaW5kZXggZTE4MTM1OWFkYWRmLi4wNDY0ZDhlMjljYmEgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtNjQva3ZtL3N5c19yZWdzLmMKKysrIGIvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYwpAQCAt NDI4LDMxICs0MjgsMzYgQEAgc3RhdGljIGJvb2wgYWNjZXNzX2Rjc3coc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LArCoH0KwqAKwqAvKgrCoCAqIEdlbmVyaWMgYWNjZXNzb3IgZm9yIFZNIHJlZ2lzdGVy cy4gT25seSBjYWxsZWQgYXMgbG9uZyBhcyBIQ1JfVFZNCsKgICogaXMgc2V0LiBJZiB0aGUgZ3Vl c3QgZW5hYmxlcyB0aGUgTU1VLCB3ZSBzdG9wIHRyYXBwaW5nIHRoZSBWTQrCoCAqIHN5c19yZWdz IGFuZCBsZWF2ZSBpdCBpbiBjb21wbGV0ZSBjb250cm9sIG9mIHRoZSBjYWNoZXMuCsKgICovCsKg c3RhdGljIGJvb2wgYWNjZXNzX3ZtX3JlZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBzeXNfcmVn X3BhcmFtcyAqcCwKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcikKwqB7CsKgwqDCoMKgwqDCoMKgIGJv b2wgd2FzX2VuYWJsZWQgPSB2Y3B1X2hhc19jYWNoZV9lbmFibGVkKHZjcHUpOwrCoMKgwqDCoMKg wqDCoCB1NjQgdmFsOwrCoMKgwqDCoMKgwqDCoCBpbnQgcmVnID0gci0+cmVnOwrCoAotwqDCoMKg wqDCoMKgIEJVR19PTighcC0+aXNfd3JpdGUpOworwqDCoMKgwqDCoMKgIEJVR19PTighdmNwdV9t b2RlX2VsMih2Y3B1KSAmJiAhcC0+aXNfd3JpdGUpOworCivCoMKgwqDCoMKgwqAgaWYgKCFwLT5p c193cml0ZSkgeworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwLT5yZWd2YWwgPSB2Y3B1 X3JlYWRfc3lzX3JlZyh2Y3B1LCByZWcpOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gdHJ1ZTsKK8KgwqDCoMKgwqDCoCB9CsKgCsKgwqDCoMKgwqDCoMKgIC8qIFNlZSB0aGUg MzJiaXQgbWFwcGluZyBpbiBrdm1faG9zdC5oICovCsKgwqDCoMKgwqDCoMKgIGlmIChwLT5pc19h YXJjaDMyKQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gci0+cmVnIC8gMjsK wqAKwqDCoMKgwqDCoMKgwqAgaWYgKCFwLT5pc19hYXJjaDMyIHx8ICFwLT5pc18zMmJpdCkgewrC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsID0gcC0+cmVndmFsOwrCoMKgwqDCoMKg wqDCoCB9IGVsc2UgewrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsID0gdmNwdV9y ZWFkX3N5c19yZWcodmNwdSwgcmVnKTsKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm IChyLT5yZWcgJSAyKQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHZhbCA9IChwLT5yZWd2YWwgPDwgMzIpIHwgKHU2NClsb3dlcl8zMl9iaXRzKHZhbCk7CsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsID0gKCh1NjQpdXBwZXJfMzJfYml0cyh2YWwpIDw8 IDMyKSB8CsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGxvd2VyXzMyX2JpdHMocC0+cmVndmFsKTsKwqDCoMKgwqDCoMKgwqAgfQoK UGVyaGFwcyB0aGUgZnVuY3Rpb24gY29tbWVudCBzaG91bGQgYmUgdXBkYXRlZCB0byByZWZsZWN0 IHRoYXQgdGhlIGZ1bmN0aW9uIGlzCmFsc28gdXNlZCBmb3IgVk0gcmVnaXN0ZXIgdHJhcHMgZm9y IGEgbm9uLXZoZSBndWVzdCBoeXBlcnZpc29yPwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdAprdm1hcm1AbGlzdHMuY3Mu Y29sdW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1L21haWxtYW4vbGlzdGlu Zm8va3ZtYXJtCg== 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=-8.5 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable 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 31C74C0650E for ; Mon, 1 Jul 2019 16:12:37 +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 0741D20881 for ; Mon, 1 Jul 2019 16:12:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="M0xeEtZt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0741D20881 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com 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:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Mva0TUfKkYOubpmG//Ue4AeuPRANF1GvWc8xfM+fYzU=; b=M0xeEtZtQLGYw6 OdRRKPiaZzMHh7DZuO0S8nUpio0NBjGAFo7YOQcf9bAqmqOdBJGg6JR0W+WzANncy8GU6i7/FzSnD 9EhSqdsZVMK3Fd0+Wj+aDGBsf8JANyQRRtkcvR392sT55qS5fpmhafzf/XKMJvS53CyYP0zRBE8Kw QV/ebwFYfgU9+vY6CWuggY61ChzlsGTdkIORMJgHMGm7+X6YQvjwpkbBliGE/ROzWGZDhqgNDdjsr iHpo7TzBxohW3B+h3R3ybgfWnD1wOkY4UTRazBr/ggiYRCdkVL3SyDtUzeuR/BqF8SAPqVSh2uY73 nfPJ+K1qeJ256ijQ2dTw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hhyut-0005NP-GX; Mon, 01 Jul 2019 16:12:31 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hhyuq-0005Mo-DQ for linux-arm-kernel@lists.infradead.org; Mon, 01 Jul 2019 16:12:29 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4D27E2B; Mon, 1 Jul 2019 09:12:26 -0700 (PDT) Received: from [10.1.31.185] (unknown [10.1.31.185]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3AE1C3F703; Mon, 1 Jul 2019 09:12:25 -0700 (PDT) Subject: Re: [PATCH 18/59] KVM: arm64: nv: Trap EL1 VM register accesses in virtual EL2 To: Marc Zyngier , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org References: <20190621093843.220980-1-marc.zyngier@arm.com> <20190621093843.220980-19-marc.zyngier@arm.com> From: Alexandru Elisei Message-ID: <37c2b50d-7a5a-335a-ed5e-6d568ee94cb7@arm.com> Date: Mon, 1 Jul 2019 17:12:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190621093843.220980-19-marc.zyngier@arm.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190701_091228_546413_C306562D X-CRM114-Status: GOOD ( 21.96 ) 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: Andre Przywara , Dave Martin Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDYvMjEvMTkgMTA6MzggQU0sIE1hcmMgWnluZ2llciB3cm90ZToKPiBGcm9tOiBDaHJpc3Rv ZmZlciBEYWxsIDxjaHJpc3RvZmZlci5kYWxsQGxpbmFyby5vcmc+Cj4KPiBXaGVuIHJ1bm5pbmcg aW4gdmlydHVhbCBFTDIgbW9kZSwgd2UgYWN0dWFsbHkgcnVuIHRoZSBoYXJkd2FyZSBpbiBFTDEK PiBhbmQgdGhlcmVmb3JlIGhhdmUgdG8gdXNlIHRoZSBFTDEgcmVnaXN0ZXJzIHRvIGVuc3VyZSBj b3JyZWN0IG9wZXJhdGlvbi4KPgo+IEJ5IHNldHRpbmcgdGhlIEhDUi5UVk0gYW5kIEhDUi5UVlJN IHdlIGVuc3VyZSB0aGF0IHRoZSB2aXJ0dWFsIEVMMiBtb2RlCj4gZG9lc24ndCBzaG9vdCBpdHNl bGYgaW4gdGhlIGZvb3Qgd2hlbiBzZXR0aW5nIHVwIHdoYXQgaXQgYmVsaWV2ZXMgdG8gYmUKPiBh IGRpZmZlcmVudCBtb2RlJ3Mgc3lzdGVtIHJlZ2lzdGVyIHN0YXRlIChmb3IgZXhhbXBsZSB3aGVu IHByZXBhcmluZyB0bwo+IHN3aXRjaCB0byBhIFZNKS4KQSBndWVzdCBoeXBlcnZpc29yIHdpdGgg dmhlIGVuYWJsZWQgdXNlcyB0aGUgX0VMMTIgcmVnaXN0ZXIgbmFtZXMgd2hlbiBwcmVwYXJpbmcK dG8gcnVuIGEgZ3Vlc3QsIGFuZCBhY2Nlc3NlcyB0byB0aG9zZSByZWdpc3RlcnMgYXJlIGFscmVh ZHkgdHJhcHBlZCB3aGVuIHNldHRpbmcKSENSX0VMMi5OVi4gVGhpcyBwYXRjaCBhZmZlY3RzIG9u bHkgbm9uLXZoZSBndWVzdCBoeXBlcnZpc29ycywgd291bGQgeW91IG1pbmQKdXBkYXRpbmcgdGhl IG1lc3NhZ2UgdG8gcmVmbGVjdCB0aGF0Pwo+Cj4gV2UgY2FuIGxldmVyYWdlIHRoZSBleGlzdGlu ZyBzeXNyZWdzIGluZnJhc3RydWN0dXJlIHRvIHN1cHBvcnQgdHJhcHBlZAo+IGFjY2Vzc2VzIHRv IHRoZXNlIHJlZ2lzdGVycy4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzdG9mZmVyIERhbGwgPGNo cmlzdG9mZmVyLmRhbGxAbGluYXJvLm9yZz4KPiBTaWduZWQtb2ZmLWJ5OiBNYXJjIFp5bmdpZXIg PG1hcmMuenluZ2llckBhcm0uY29tPgo+IC0tLQo+ICBhcmNoL2FybTY0L2t2bS9oeXAvc3dpdGNo LmMgfCA0ICsrKysKPiAgYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYyAgIHwgNyArKysrKystCj4g IDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Cj4gZGlm ZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL2h5cC9zd2l0Y2guYyBiL2FyY2gvYXJtNjQva3ZtL2h5 cC9zd2l0Y2guYwo+IGluZGV4IDdiNTVjMTFiMzBmYi4uNzkxYjI2NTcwMzQ3IDEwMDY0NAo+IC0t LSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9zd2l0Y2guYwo+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL2h5 cC9zd2l0Y2guYwo+IEBAIC0xMzUsNiArMTM1LDEwIEBAIHN0YXRpYyB2b2lkIF9faHlwX3RleHQg X19hY3RpdmF0ZV90cmFwcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gIHsKPiAgCXU2NCBoY3Ig PSB2Y3B1LT5hcmNoLmhjcl9lbDI7Cj4gIAo+ICsJLyogVHJhcCBWTSBzeXNyZWcgYWNjZXNzZXMg aWYgYW4gRUwyIGd1ZXN0IGlzIG5vdCB1c2luZyBWSEUuICovCj4gKwlpZiAodmNwdV9tb2RlX2Vs Mih2Y3B1KSAmJiAhdmNwdV9lbDJfZTJoX2lzX3NldCh2Y3B1KSkKPiArCQloY3IgfD0gSENSX1RW TSB8IEhDUl9UUlZNOwo+ICsKPiAgCXdyaXRlX3N5c3JlZyhoY3IsIGhjcl9lbDIpOwo+ICAKPiAg CWlmIChjcHVzX2hhdmVfY29uc3RfY2FwKEFSTTY0X0hBU19SQVNfRVhUTikgJiYgKGhjciAmIEhD Ul9WU0UpKQo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jIGIvYXJjaC9h cm02NC9rdm0vc3lzX3JlZ3MuYwo+IGluZGV4IGUxODEzNTlhZGFkZi4uMDQ2NGQ4ZTI5Y2JhIDEw MDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMKPiArKysgYi9hcmNoL2FybTY0 L2t2bS9zeXNfcmVncy5jCj4gQEAgLTQ0MCw3ICs0NDAsMTIgQEAgc3RhdGljIGJvb2wgYWNjZXNz X3ZtX3JlZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gIAl1NjQgdmFsOwo+ICAJaW50IHJlZyA9 IHItPnJlZzsKPiAgCj4gLQlCVUdfT04oIXAtPmlzX3dyaXRlKTsKPiArCUJVR19PTighdmNwdV9t b2RlX2VsMih2Y3B1KSAmJiAhcC0+aXNfd3JpdGUpOwo+ICsKPiArCWlmICghcC0+aXNfd3JpdGUp IHsKPiArCQlwLT5yZWd2YWwgPSB2Y3B1X3JlYWRfc3lzX3JlZyh2Y3B1LCByZWcpOwo+ICsJCXJl dHVybiB0cnVlOwo+ICsJfQo+ICAKPiAgCS8qIFNlZSB0aGUgMzJiaXQgbWFwcGluZyBpbiBrdm1f aG9zdC5oICovCj4gIAlpZiAocC0+aXNfYWFyY2gzMikKCkZvciBtb3JlIGNvbnRleHQ6CgpkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYyBiL2FyY2gvYXJtNjQva3ZtL3N5c19y ZWdzLmMKaW5kZXggZTE4MTM1OWFkYWRmLi4wNDY0ZDhlMjljYmEgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtNjQva3ZtL3N5c19yZWdzLmMKKysrIGIvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYwpAQCAt NDI4LDMxICs0MjgsMzYgQEAgc3RhdGljIGJvb2wgYWNjZXNzX2Rjc3coc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LArCoH0KwqAKwqAvKgrCoCAqIEdlbmVyaWMgYWNjZXNzb3IgZm9yIFZNIHJlZ2lzdGVy cy4gT25seSBjYWxsZWQgYXMgbG9uZyBhcyBIQ1JfVFZNCsKgICogaXMgc2V0LiBJZiB0aGUgZ3Vl c3QgZW5hYmxlcyB0aGUgTU1VLCB3ZSBzdG9wIHRyYXBwaW5nIHRoZSBWTQrCoCAqIHN5c19yZWdz IGFuZCBsZWF2ZSBpdCBpbiBjb21wbGV0ZSBjb250cm9sIG9mIHRoZSBjYWNoZXMuCsKgICovCsKg c3RhdGljIGJvb2wgYWNjZXNzX3ZtX3JlZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBzeXNfcmVn X3BhcmFtcyAqcCwKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcikKwqB7CsKgwqDCoMKgwqDCoMKgIGJv b2wgd2FzX2VuYWJsZWQgPSB2Y3B1X2hhc19jYWNoZV9lbmFibGVkKHZjcHUpOwrCoMKgwqDCoMKg wqDCoCB1NjQgdmFsOwrCoMKgwqDCoMKgwqDCoCBpbnQgcmVnID0gci0+cmVnOwrCoAotwqDCoMKg wqDCoMKgIEJVR19PTighcC0+aXNfd3JpdGUpOworwqDCoMKgwqDCoMKgIEJVR19PTighdmNwdV9t b2RlX2VsMih2Y3B1KSAmJiAhcC0+aXNfd3JpdGUpOworCivCoMKgwqDCoMKgwqAgaWYgKCFwLT5p c193cml0ZSkgeworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwLT5yZWd2YWwgPSB2Y3B1 X3JlYWRfc3lzX3JlZyh2Y3B1LCByZWcpOworwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gdHJ1ZTsKK8KgwqDCoMKgwqDCoCB9CsKgCsKgwqDCoMKgwqDCoMKgIC8qIFNlZSB0aGUg MzJiaXQgbWFwcGluZyBpbiBrdm1faG9zdC5oICovCsKgwqDCoMKgwqDCoMKgIGlmIChwLT5pc19h YXJjaDMyKQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gci0+cmVnIC8gMjsK wqAKwqDCoMKgwqDCoMKgwqAgaWYgKCFwLT5pc19hYXJjaDMyIHx8ICFwLT5pc18zMmJpdCkgewrC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsID0gcC0+cmVndmFsOwrCoMKgwqDCoMKg wqDCoCB9IGVsc2UgewrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsID0gdmNwdV9y ZWFkX3N5c19yZWcodmNwdSwgcmVnKTsKwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm IChyLT5yZWcgJSAyKQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHZhbCA9IChwLT5yZWd2YWwgPDwgMzIpIHwgKHU2NClsb3dlcl8zMl9iaXRzKHZhbCk7CsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFsID0gKCh1NjQpdXBwZXJfMzJfYml0cyh2YWwpIDw8 IDMyKSB8CsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGxvd2VyXzMyX2JpdHMocC0+cmVndmFsKTsKwqDCoMKgwqDCoMKgwqAgfQoK UGVyaGFwcyB0aGUgZnVuY3Rpb24gY29tbWVudCBzaG91bGQgYmUgdXBkYXRlZCB0byByZWZsZWN0 IHRoYXQgdGhlIGZ1bmN0aW9uIGlzCmFsc28gdXNlZCBmb3IgVk0gcmVnaXN0ZXIgdHJhcHMgZm9y IGEgbm9uLXZoZSBndWVzdCBoeXBlcnZpc29yPwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK