From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 439D2381AC for ; Tue, 30 Jan 2024 03:40:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706586037; cv=none; b=QDFuT8GLvbDWcWv1oG+p6aPu3fANZKeKGeiaAyo1yVzwR+QAb5WG0rMUddJqJKYwhDX94r9X6x56TrbWGIKqNf4+NJybnVIdRTH7NOdlq6MmBOxc7fJ1zKTrlnp7usj7mxcQEV91nlO9Q5nM5K76o4ugwrNyMldDe8NSX0wfbaM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706586037; c=relaxed/simple; bh=88yvcbbXHbF7fdecKCydk6ptKkEXS1qcAAJXLr19C58=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=ayrknyQX1Whb6UxQjuYjTjnqs9ibH8p/ghds0lQ9hKoZ8MxhARdF93qtPdEnPhP/UPtNPZMGcu3C8Thl/Wgaxue32qv9/j/Uk8Ggd9c2h6xMMXqcsh3+vKkSvu41wpJ5CUkUPr0c/FRDhZOw+sjE1SHsGuLkGMzugTuOp3jZaE8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com 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 67797DA7; Mon, 29 Jan 2024 19:41:16 -0800 (PST) Received: from [10.163.41.110] (unknown [10.163.41.110]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9CB0C3F738; Mon, 29 Jan 2024 19:40:26 -0800 (PST) Message-ID: <4395415b-dfb1-4dd1-9dfd-181f0549be7c@arm.com> Date: Tue, 30 Jan 2024 09:10:23 +0530 Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V16 2/8] KVM: arm64: Prevent guest accesses into BRBE system registers/instructions To: Suzuki K Poulose , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com Cc: Mark Brown , James Clark , Rob Herring , Marc Zyngier , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , linux-perf-users@vger.kernel.org, Oliver Upton , James Morse , kvmarm@lists.linux.dev References: <20240125094119.2542332-1-anshuman.khandual@arm.com> <20240125094119.2542332-3-anshuman.khandual@arm.com> <95d829b3-d30e-4dcd-a7ca-69d80b9be418@arm.com> Content-Language: en-US From: Anshuman Khandual In-Reply-To: <95d829b3-d30e-4dcd-a7ca-69d80b9be418@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 1/29/24 17:45, Suzuki K Poulose wrote: > On 25/01/2024 09:41, Anshuman Khandual wrote: >> Currently BRBE feature is not supported in a guest environment. This hides >> BRBE feature availability via masking ID_AA64DFR0_EL1.BRBE field. This also >> blocks guest accesses into BRBE system registers and instructions as if the >> underlying hardware never implemented FEAT_BRBE feature. >> >> Cc: Marc Zyngier >> Cc: Oliver Upton >> Cc: James Morse >> Cc: Suzuki K Poulose >> Cc: Catalin Marinas >> Cc: Will Deacon >> Cc: kvmarm@lists.linux.dev >> Cc: linux-arm-kernel@lists.infradead.org >> Cc: linux-kernel@vger.kernel.org >> Signed-off-by: Anshuman Khandual >> --- >> Changes in V16: >> >> - Added BRB_INF_SRC_TGT_EL1 macro for corresponding BRB_[INF|SRC|TGT] expansion >> >>   arch/arm64/kvm/sys_regs.c | 56 +++++++++++++++++++++++++++++++++++++++ >>   1 file changed, 56 insertions(+) >> >> diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c >> index 30253bd19917..6a06dc2f0c06 100644 >> --- a/arch/arm64/kvm/sys_regs.c >> +++ b/arch/arm64/kvm/sys_regs.c >> @@ -1304,6 +1304,11 @@ static int set_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r, >>       return 0; >>   } >>   +#define BRB_INF_SRC_TGT_EL1(n)                    \ >> +    { SYS_DESC(SYS_BRBINF##n##_EL1), undef_access },    \ >> +    { SYS_DESC(SYS_BRBSRC##n##_EL1), undef_access },    \ >> +    { SYS_DESC(SYS_BRBTGT##n##_EL1), undef_access }        \ >> + >>   /* Silly macro to expand the DBG{BCR,BVR,WVR,WCR}n_EL1 registers in one go */ >>   #define DBG_BCR_BVR_WCR_WVR_EL1(n)                    \ >>       { SYS_DESC(SYS_DBGBVRn_EL1(n)),                    \ >> @@ -1707,6 +1712,9 @@ static u64 read_sanitised_id_aa64dfr0_el1(struct kvm_vcpu *vcpu, >>       /* Hide SPE from guests */ >>       val &= ~ID_AA64DFR0_EL1_PMSVer_MASK; >>   +    /* Hide BRBE from guests */ >> +    val &= ~ID_AA64DFR0_EL1_BRBE_MASK; >> + >>       return val; >>   } >>   @@ -2195,6 +2203,8 @@ static const struct sys_reg_desc sys_reg_descs[] = { >>       { SYS_DESC(SYS_DC_CISW), access_dcsw }, >>       { SYS_DESC(SYS_DC_CIGSW), access_dcgsw }, >>       { SYS_DESC(SYS_DC_CIGDSW), access_dcgsw }, >> +    { SYS_DESC(OP_BRB_IALL), undef_access }, >> +    { SYS_DESC(OP_BRB_INJ), undef_access }, >>   > > heads up: This may conflict with Marc's patches to move the sys instructions to a separate table. But otherwise, looks good to me. Sure, will rebase this on recent changes. 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 644F1C47DA9 for ; Tue, 30 Jan 2024 03:40:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+WqGoDEqgDgxORkeTMB3qSuEzKWREc9OEd4hC5blMh0=; b=Dt9iD9D2apT+Er wBGRPG4J8NIYZMmWXrK/W7lhra9dFZBZszy3z3EgpxXd8WNpD+Hm6NIIa24uFGADGlpowV8yuTssf kOtNP+1733EftiK0K6gsdaTUlZM/k98bZlxsN3BNX42TntfmzcSD1vM6AkT+xlexhDuGOC48SKJdR GT8f407I+D4pC38G+mTbV2VTYsf1tFfIA8UF8VtgCSusYMeLg4ANY4a4WbDNH5pVW5f8bAWkMOsUo vpDkUsYw9FlWCq8zII5RvwNQjf/ta4+X3VeZkJ0Q1lsHwKgcgTxOqb5fj98EBFnY27/THfm/II3cD LKsWtn/x7y9JbWfzGMQQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUezJ-0000000F9me-2dk2; Tue, 30 Jan 2024 03:40:41 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUezG-0000000F9lF-2IH8 for linux-arm-kernel@lists.infradead.org; Tue, 30 Jan 2024 03:40:40 +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 67797DA7; Mon, 29 Jan 2024 19:41:16 -0800 (PST) Received: from [10.163.41.110] (unknown [10.163.41.110]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9CB0C3F738; Mon, 29 Jan 2024 19:40:26 -0800 (PST) Message-ID: <4395415b-dfb1-4dd1-9dfd-181f0549be7c@arm.com> Date: Tue, 30 Jan 2024 09:10:23 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V16 2/8] KVM: arm64: Prevent guest accesses into BRBE system registers/instructions To: Suzuki K Poulose , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com Cc: Mark Brown , James Clark , Rob Herring , Marc Zyngier , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , linux-perf-users@vger.kernel.org, Oliver Upton , James Morse , kvmarm@lists.linux.dev References: <20240125094119.2542332-1-anshuman.khandual@arm.com> <20240125094119.2542332-3-anshuman.khandual@arm.com> <95d829b3-d30e-4dcd-a7ca-69d80b9be418@arm.com> Content-Language: en-US From: Anshuman Khandual In-Reply-To: <95d829b3-d30e-4dcd-a7ca-69d80b9be418@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240129_194038_752681_A9EDE58D X-CRM114-Status: GOOD ( 13.84 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAxLzI5LzI0IDE3OjQ1LCBTdXp1a2kgSyBQb3Vsb3NlIHdyb3RlOgo+IE9uIDI1LzAxLzIw MjQgMDk6NDEsIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+PiBDdXJyZW50bHkgQlJCRSBmZWF0 dXJlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYSBndWVzdCBlbnZpcm9ubWVudC4gVGhpcyBoaWRlcwo+ PiBCUkJFIGZlYXR1cmUgYXZhaWxhYmlsaXR5IHZpYSBtYXNraW5nIElEX0FBNjRERlIwX0VMMS5C UkJFIGZpZWxkLiBUaGlzIGFsc28KPj4gYmxvY2tzIGd1ZXN0IGFjY2Vzc2VzIGludG8gQlJCRSBz eXN0ZW0gcmVnaXN0ZXJzIGFuZCBpbnN0cnVjdGlvbnMgYXMgaWYgdGhlCj4+IHVuZGVybHlpbmcg aGFyZHdhcmUgbmV2ZXIgaW1wbGVtZW50ZWQgRkVBVF9CUkJFIGZlYXR1cmUuCj4+Cj4+IENjOiBN YXJjIFp5bmdpZXIgPG1hekBrZXJuZWwub3JnPgo+PiBDYzogT2xpdmVyIFVwdG9uIDxvbGl2ZXIu dXB0b25AbGludXguZGV2Pgo+PiBDYzogSmFtZXMgTW9yc2UgPGphbWVzLm1vcnNlQGFybS5jb20+ Cj4+IENjOiBTdXp1a2kgSyBQb3Vsb3NlIDxzdXp1a2kucG91bG9zZUBhcm0uY29tPgo+PiBDYzog Q2F0YWxpbiBNYXJpbmFzIDxjYXRhbGluLm1hcmluYXNAYXJtLmNvbT4KPj4gQ2M6IFdpbGwgRGVh Y29uIDx3aWxsQGtlcm5lbC5vcmc+Cj4+IENjOiBrdm1hcm1AbGlzdHMubGludXguZGV2Cj4+IENj OiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPj4gQ2M6IGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmcKPj4gU2lnbmVkLW9mZi1ieTogQW5zaHVtYW4gS2hhbmR1YWwgPGFu c2h1bWFuLmtoYW5kdWFsQGFybS5jb20+Cj4+IC0tLQo+PiBDaGFuZ2VzIGluIFYxNjoKPj4KPj4g LSBBZGRlZCBCUkJfSU5GX1NSQ19UR1RfRUwxIG1hY3JvIGZvciBjb3JyZXNwb25kaW5nIEJSQl9b SU5GfFNSQ3xUR1RdIGV4cGFuc2lvbgo+Pgo+PiDCoCBhcmNoL2FybTY0L2t2bS9zeXNfcmVncy5j IHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+IMKgIDEgZmls ZSBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0 L2t2bS9zeXNfcmVncy5jIGIvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYwo+PiBpbmRleCAzMDI1 M2JkMTk5MTcuLjZhMDZkYzJmMGMwNiAxMDA2NDQKPj4gLS0tIGEvYXJjaC9hcm02NC9rdm0vc3lz X3JlZ3MuYwo+PiArKysgYi9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jCj4+IEBAIC0xMzA0LDYg KzEzMDQsMTEgQEAgc3RhdGljIGludCBzZXRfcG1jcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNv bnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnIsCj4+IMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKg IH0KPj4gwqAgKyNkZWZpbmUgQlJCX0lORl9TUkNfVEdUX0VMMShuKcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPj4gK8KgwqDCoCB7IFNZU19ERVNDKFNZU19CUkJJTkYj I24jI19FTDEpLCB1bmRlZl9hY2Nlc3MgfSzCoMKgwqAgXAo+PiArwqDCoMKgIHsgU1lTX0RFU0Mo U1lTX0JSQlNSQyMjbiMjX0VMMSksIHVuZGVmX2FjY2VzcyB9LMKgwqDCoCBcCj4+ICvCoMKgwqAg eyBTWVNfREVTQyhTWVNfQlJCVEdUIyNuIyNfRUwxKSwgdW5kZWZfYWNjZXNzIH3CoMKgwqDCoMKg wqDCoCBcCj4+ICsKPj4gwqAgLyogU2lsbHkgbWFjcm8gdG8gZXhwYW5kIHRoZSBEQkd7QkNSLEJW UixXVlIsV0NSfW5fRUwxIHJlZ2lzdGVycyBpbiBvbmUgZ28gKi8KPj4gwqAgI2RlZmluZSBEQkdf QkNSX0JWUl9XQ1JfV1ZSX0VMMShuKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIFwKPj4gwqDCoMKgwqDCoCB7IFNZU19ERVNDKFNZU19EQkdCVlJuX0VMMShuKSkswqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+PiBAQCAtMTcwNyw2ICsxNzEyLDkg QEAgc3RhdGljIHU2NCByZWFkX3Nhbml0aXNlZF9pZF9hYTY0ZGZyMF9lbDEoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1LAo+PiDCoMKgwqDCoMKgIC8qIEhpZGUgU1BFIGZyb20gZ3Vlc3RzICovCj4+IMKg wqDCoMKgwqAgdmFsICY9IH5JRF9BQTY0REZSMF9FTDFfUE1TVmVyX01BU0s7Cj4+IMKgICvCoMKg wqAgLyogSGlkZSBCUkJFIGZyb20gZ3Vlc3RzICovCj4+ICvCoMKgwqAgdmFsICY9IH5JRF9BQTY0 REZSMF9FTDFfQlJCRV9NQVNLOwo+PiArCj4+IMKgwqDCoMKgwqAgcmV0dXJuIHZhbDsKPj4gwqAg fQo+PiDCoCBAQCAtMjE5NSw2ICsyMjAzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNfcmVn X2Rlc2Mgc3lzX3JlZ19kZXNjc1tdID0gewo+PiDCoMKgwqDCoMKgIHsgU1lTX0RFU0MoU1lTX0RD X0NJU1cpLCBhY2Nlc3NfZGNzdyB9LAo+PiDCoMKgwqDCoMKgIHsgU1lTX0RFU0MoU1lTX0RDX0NJ R1NXKSwgYWNjZXNzX2RjZ3N3IH0sCj4+IMKgwqDCoMKgwqAgeyBTWVNfREVTQyhTWVNfRENfQ0lH RFNXKSwgYWNjZXNzX2RjZ3N3IH0sCj4+ICvCoMKgwqAgeyBTWVNfREVTQyhPUF9CUkJfSUFMTCks IHVuZGVmX2FjY2VzcyB9LAo+PiArwqDCoMKgIHsgU1lTX0RFU0MoT1BfQlJCX0lOSiksIHVuZGVm X2FjY2VzcyB9LAo+PiDCoCAKPiAKPiBoZWFkcyB1cDogVGhpcyBtYXkgY29uZmxpY3Qgd2l0aCBN YXJjJ3MgcGF0Y2hlcyB0byBtb3ZlIHRoZSBzeXMgaW5zdHJ1Y3Rpb25zIHRvIGEgc2VwYXJhdGUg dGFibGUuIEJ1dCBvdGhlcndpc2UsIGxvb2tzIGdvb2QgdG8gbWUuCgpTdXJlLCB3aWxsIHJlYmFz ZSB0aGlzIG9uIHJlY2VudCBjaGFuZ2VzLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=