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 8D6C1C433EF for ; Wed, 23 Mar 2022 15:49:39 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=txg3WIrfj0i1Lk/CdaL9gHfWDi7Wcu8HmeZ6lk/Eg8Y=; b=m+N1kc9UQQIBgn BgNp/MaIQOA9jj8SGfQ/qz22kWLuhin+iRG0aW2eqpOaweoxMLq08s2AZ6EXBQOtsNzMZqrS6d6fr GsQGVpCEem6CQ9SFlgmRen6UaNwq6VFz97/8/pWW+XugDZRCLVf0wI8Y2OwwjDQMcbTt2Ce6ZtCDd U1VYzozkcqxZPDB7GX1Ve5AbIc0FmebU6Z6xlOkADzPHPOVeREXwc3U3a/8ctxBM6zsuHc00ZrUxW VtuiIpXcW8pB1jMpG8vjefKlnADsQUaEGLzvjNYn2YOmR8UCWBjXYWooDumLhOEImdc8Z55Pgf/XX KsIbCAeGiy6E069sqbIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nX3DT-00EA33-QZ; Wed, 23 Mar 2022 15:48:07 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nX3DP-00EA1j-Cy for linux-arm-kernel@lists.infradead.org; Wed, 23 Mar 2022 15:48:05 +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 C3F93D6E; Wed, 23 Mar 2022 08:48:01 -0700 (PDT) Received: from monolith.localdoman (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 122723F73D; Wed, 23 Mar 2022 08:47:59 -0700 (PDT) Date: Wed, 23 Mar 2022 15:48:31 +0000 From: Alexandru Elisei To: Steven Price Cc: Vladimir Murzin , will@kernel.org, kvm@vger.kernel.org, julien.thierry.kdev@gmail.com, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com Subject: Re: [kvmtool PATCH 2/2] aarch64: Add support for MTE Message-ID: References: <20220321152820.246700-1-alexandru.elisei@arm.com> <20220321152820.246700-3-alexandru.elisei@arm.com> <3cf3b621-5a07-5c06-cb9f-f9c776b6717d@arm.com> <7e5ebae0-db08-ad87-0fa9-26da048a9b72@arm.com> <00099507-c436-dd51-8714-d1a91431e4d0@arm.com> <4731158c-b197-aba9-de64-fc5130cc152d@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <4731158c-b197-aba9-de64-fc5130cc152d@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220323_084803_566748_FE1B28D9 X-CRM114-Status: GOOD ( 58.70 ) 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 SGksCgpDYXRhbGluLCBTdGV2ZW4sIFZsYWRpbWlyLCB0aGFuayB5b3UgYWxsIGZvciB0aGUgZmVl ZGJhY2suIEknbGwgbWFrZSBNVEUKZW5hYmxlZCBieSBkZWZhdWx0IGluIHRoZSBuZXh0IGl0ZXJh dGlvbiBvZiB0aGlzIHNlcmllcy4KClRoYW5rcywKQWxleAoKT24gV2VkLCBNYXIgMjMsIDIwMjIg YXQgMDI6MTU6NTVQTSArMDAwMCwgU3RldmVuIFByaWNlIHdyb3RlOgo+IE9uIDIzLzAzLzIwMjIg MTM6NTcsIFZsYWRpbWlyIE11cnppbiB3cm90ZToKPiA+IEhpLAo+ID4gCj4gPiBPbiAzLzIzLzIy IDEyOjAzIFBNLCBBbGV4YW5kcnUgRWxpc2VpIHdyb3RlOgo+ID4+IEhpLAo+ID4+Cj4gPj4gT24g V2VkLCBNYXIgMjMsIDIwMjIgYXQgMTA6MzE6MTVBTSArMDAwMCwgVmxhZGltaXIgTXVyemluIHdy b3RlOgo+ID4+PiBPbiAzLzIxLzIyIDU6MDggUE0sIEFsZXhhbmRydSBFbGlzZWkgd3JvdGU6Cj4g Pj4+PiBIaSwKPiA+Pj4+Cj4gPj4+PiBPbiBNb24sIE1hciAyMSwgMjAyMiBhdCAwMzo0MDoxOFBN ICswMDAwLCBWbGFkaW1pciBNdXJ6aW4gd3JvdGU6Cj4gPj4+Pj4gSGkgQWxleGFuZHJ1LAo+ID4+ Pj4+Cj4gPj4+Pj4gT24gMy8yMS8yMiAzOjI4IFBNLCBBbGV4YW5kcnUgRWxpc2VpIHdyb3RlOgo+ ID4+Pj4+PiBNVEUgaGFzIGJlZW4gc3VwcG9ydGVkIGluIExpbnV4IHNpbmNlIGNvbW1pdCA2NzM2 MzhmNDM0ZWUgKCJLVk06Cj4gPj4+Pj4+IGFybTY0Ogo+ID4+Pj4+PiBFeHBvc2UgS1ZNX0FSTV9D QVBfTVRFIiksIGFkZCBzdXBwb3J0IGZvciBpdCBpbiBrdm10b29sLgo+ID4+Pj4+Pgo+ID4+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgRWxpc2VpIDxhbGV4YW5kcnUuZWxpc2VpQGFybS5j b20+Cj4gPj4+Pj4+IC0tLQo+ID4+Pj4+PiDCoMKgIGFybS9hYXJjaDMyL2luY2x1ZGUva3ZtL2t2 bS1hcmNoLmjCoMKgwqDCoMKgwqDCoCB8wqAgMyArKysKPiA+Pj4+Pj4gwqDCoCBhcm0vYWFyY2g2 NC9pbmNsdWRlL2t2bS9rdm0tYXJjaC5owqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+ID4+Pj4+PiDC oMKgIGFybS9hYXJjaDY0L2luY2x1ZGUva3ZtL2t2bS1jb25maWctYXJjaC5oIHzCoCAyICsrCj4g Pj4+Pj4+IMKgwqAgYXJtL2FhcmNoNjQva3ZtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxMyArKysrKysrKysrKysrCj4gPj4+Pj4+IMKgwqAgYXJt L2luY2x1ZGUvYXJtLWNvbW1vbi9rdm0tY29uZmlnLWFyY2guaMKgIHzCoCAxICsKPiA+Pj4+Pj4g wqDCoCBhcm0va3ZtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICsrKwo+ID4+Pj4+PiDCoMKgIDYgZmlsZXMgY2hh bmdlZCwgMjMgaW5zZXJ0aW9ucygrKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvYXJt L2FhcmNoMzIvaW5jbHVkZS9rdm0va3ZtLWFyY2guaAo+ID4+Pj4+PiBiL2FybS9hYXJjaDMyL2lu Y2x1ZGUva3ZtL2t2bS1hcmNoLmgKPiA+Pj4+Pj4gaW5kZXggYmVlMmZjMjU1YTgyLi41NjE2YjI3 ZTI1N2UgMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2FybS9hYXJjaDMyL2luY2x1ZGUva3ZtL2t2bS1h cmNoLmgKPiA+Pj4+Pj4gKysrIGIvYXJtL2FhcmNoMzIvaW5jbHVkZS9rdm0va3ZtLWFyY2guaAo+ ID4+Pj4+PiBAQCAtNSw2ICs1LDkgQEAKPiA+Pj4+Pj4gwqDCoCAjZGVmaW5lIGt2bV9fYXJjaF9n ZXRfa2Vybl9vZmZzZXQoLi4uKcKgwqDCoCAweDgwMDAKPiA+Pj4+Pj4gK3N0cnVjdCBrdm07Cj4g Pj4+Pj4+ICtzdGF0aWMgaW5saW5lIHZvaWQga3ZtX19hcmNoX2VuYWJsZV9tdGUoc3RydWN0IGt2 bSAqa3ZtKSB7fQo+ID4+Pj4+PiArCj4gPj4+Pj4+IMKgwqAgI2RlZmluZSBBUk1fTUFYX01FTU9S WSguLi4pwqDCoMKgIEFSTV9MT01BUF9NQVhfTUVNT1JZCj4gPj4+Pj4+IMKgwqAgI2RlZmluZSBN QVhfUEFHRV9TSVpFwqDCoMKgIFNaXzRLCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9hcm0vYWFyY2g2 NC9pbmNsdWRlL2t2bS9rdm0tYXJjaC5oCj4gPj4+Pj4+IGIvYXJtL2FhcmNoNjQvaW5jbHVkZS9r dm0va3ZtLWFyY2guaAo+ID4+Pj4+PiBpbmRleCA1ZTVlZTQxMjExZWQuLjkxMjRmNjkxOWQwZiAx MDA2NDQKPiA+Pj4+Pj4gLS0tIGEvYXJtL2FhcmNoNjQvaW5jbHVkZS9rdm0va3ZtLWFyY2guaAo+ ID4+Pj4+PiArKysgYi9hcm0vYWFyY2g2NC9pbmNsdWRlL2t2bS9rdm0tYXJjaC5oCj4gPj4+Pj4+ IEBAIC02LDYgKzYsNyBAQAo+ID4+Pj4+PiDCoMKgIHN0cnVjdCBrdm07Cj4gPj4+Pj4+IMKgwqAg dW5zaWduZWQgbG9uZyBsb25nIGt2bV9fYXJjaF9nZXRfa2Vybl9vZmZzZXQoc3RydWN0IGt2bSAq a3ZtLAo+ID4+Pj4+PiBpbnQgZmQpOwo+ID4+Pj4+PiDCoMKgIGludCBrdm1fX2FyY2hfZ2V0X2lw YV9saW1pdChzdHJ1Y3Qga3ZtICprdm0pOwo+ID4+Pj4+PiArdm9pZCBrdm1fX2FyY2hfZW5hYmxl X210ZShzdHJ1Y3Qga3ZtICprdm0pOwo+ID4+Pj4+PiDCoMKgICNkZWZpbmUgQVJNX01BWF9NRU1P Ulkoa3ZtKcKgwqDCoCAoe8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwK PiA+Pj4+Pj4gwqDCoMKgwqDCoMKgIHU2NCBtYXhfcmFtO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9h cm0vYWFyY2g2NC9pbmNsdWRlL2t2bS9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiBiL2FybS9h YXJjaDY0L2luY2x1ZGUva3ZtL2t2bS1jb25maWctYXJjaC5oCj4gPj4+Pj4+IGluZGV4IDA0YmU0 M2RmYTliMi4uMTEyNTAzNjVkOGQ1IDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9hcm0vYWFyY2g2NC9p bmNsdWRlL2t2bS9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiArKysgYi9hcm0vYWFyY2g2NC9p bmNsdWRlL2t2bS9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiBAQCAtNiw2ICs2LDggQEAKPiA+ Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiUnVuIEFBcmNoMzIgZ3Vlc3QiKSzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgT1BU X0JPT0xFQU4oJ1wwJywgInBtdSIsICYoY2ZnKS0+aGFzX3BtdXYzLMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgXAo+ID4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJDcmVhdGUgUE1V djMgZGV2aWNlIikswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+Pj4+Pj4gK8Kg wqDCoCBPUFRfQk9PTEVBTignXDAnLCAibXRlIiwgJihjZmcpLT5oYXNfbXRlLMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgXAo+ID4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiRW5hYmxlIG1l bW9yeSB0YWdnaW5nIGV4dGVuc2lvbiIpLMKgwqDCoMKgwqDCoMKgIFwKPiA+Pj4+Pj4gwqDCoMKg wqDCoMKgIE9QVF9VNjQoJ1wwJywgImthc2xyLXNlZWQiLCAmKGNmZyktPmthc2xyX3NlZWQswqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgIlNwZWNpZnkgcmFuZG9tIHNlZWQgZm9yIEtlcm5lbCBBZGRyZXNzIFNwYWNlICLCoMKgwqAg XAo+ID4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJMYXlvdXQgUmFuZG9taXph dGlvbiAoS0FTTFIpIiksCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9hcm0vYWFyY2g2NC9rdm0uYyBi L2FybS9hYXJjaDY0L2t2bS5jCj4gPj4+Pj4+IGluZGV4IDU2YTBhZWRjMjYzZC4uNDY1NDhmOGVl OTZlIDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9hcm0vYWFyY2g2NC9rdm0uYwo+ID4+Pj4+PiArKysg Yi9hcm0vYWFyY2g2NC9rdm0uYwo+ID4+Pj4+PiBAQCAtODEsMyArODEsMTYgQEAgaW50IGt2bV9f Z2V0X3ZtX3R5cGUoc3RydWN0IGt2bSAqa3ZtKQo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgcmV0dXJu IEtWTV9WTV9UWVBFX0FSTV9JUEFfU0laRShpcGFfYml0cyk7Cj4gPj4+Pj4+IMKgwqAgfQo+ID4+ Pj4+PiArCj4gPj4+Pj4+ICt2b2lkIGt2bV9fYXJjaF9lbmFibGVfbXRlKHN0cnVjdCBrdm0gKmt2 bSkKPiA+Pj4+Pj4gK3sKPiA+Pj4+Pj4gK8KgwqDCoCBzdHJ1Y3Qga3ZtX2VuYWJsZV9jYXAgY2Fw ID0gewo+ID4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgLmNhcCA9IEtWTV9DQVBfQVJNX01URSwKPiA+ Pj4+Pj4gK8KgwqDCoCB9Owo+ID4+Pj4+PiArCj4gPj4+Pj4+ICvCoMKgwqAgaWYgKCFrdm1fX3N1 cHBvcnRzX2V4dGVuc2lvbihrdm0sIEtWTV9DQVBfQVJNX01URSkpCj4gPj4+Pj4+ICvCoMKgwqDC oMKgwqDCoCBkaWUoIk1URSBjYXBhYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQiKTsKPiA+Pj4+Pj4g Kwo+ID4+Pj4+PiArwqDCoMKgIGlmIChpb2N0bChrdm0tPnZtX2ZkLCBLVk1fRU5BQkxFX0NBUCwg JmNhcCkpCj4gPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBkaWVfcGVycm9yKCJLVk1fRU5BQkxFX0NB UChLVk1fQ0FQX0FSTV9NVEUpIik7Cj4gPj4+Pj4+ICt9Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9h cm0vaW5jbHVkZS9hcm0tY29tbW9uL2t2bS1jb25maWctYXJjaC5oCj4gPj4+Pj4+IGIvYXJtL2lu Y2x1ZGUvYXJtLWNvbW1vbi9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiBpbmRleCA1NzM0YzQ2 YWI5ZTYuLjE2ZThkNTAwYTcxYiAxMDA2NDQKPiA+Pj4+Pj4gLS0tIGEvYXJtL2luY2x1ZGUvYXJt LWNvbW1vbi9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiArKysgYi9hcm0vaW5jbHVkZS9hcm0t Y29tbW9uL2t2bS1jb25maWctYXJjaC5oCj4gPj4+Pj4+IEBAIC05LDYgKzksNyBAQCBzdHJ1Y3Qg a3ZtX2NvbmZpZ19hcmNoIHsKPiA+Pj4+Pj4gwqDCoMKgwqDCoMKgIGJvb2zCoMKgwqDCoMKgwqDC oCB2aXJ0aW9fdHJhbnNfcGNpOwo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgYm9vbMKgwqDCoMKgwqDC oMKgIGFhcmNoMzJfZ3Vlc3Q7Cj4gPj4+Pj4+IMKgwqDCoMKgwqDCoCBib29swqDCoMKgwqDCoMKg wqAgaGFzX3BtdXYzOwo+ID4+Pj4+PiArwqDCoMKgIGJvb2zCoMKgwqDCoMKgwqDCoCBoYXNfbXRl Owo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgdTY0wqDCoMKgwqDCoMKgwqAga2FzbHJfc2VlZDsKPiA+ Pj4+Pj4gwqDCoMKgwqDCoMKgIGVudW0gaXJxY2hpcF90eXBlIGlycWNoaXA7Cj4gPj4+Pj4+IMKg wqDCoMKgwqDCoCB1NjTCoMKgwqDCoMKgwqDCoCBmd19hZGRyOwo+ID4+Pj4+PiBkaWZmIC0tZ2l0 IGEvYXJtL2t2bS5jIGIvYXJtL2t2bS5jCj4gPj4+Pj4+IGluZGV4IDgwZDIzM2YxM2QwYi4uZjJk YjkzOTUzNzc4IDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9hcm0va3ZtLmMKPiA+Pj4+Pj4gKysrIGIv YXJtL2t2bS5jCj4gPj4+Pj4+IEBAIC04Niw2ICs4Niw5IEBAIHZvaWQga3ZtX19hcmNoX2luaXQo c3RydWN0IGt2bSAqa3ZtLCBjb25zdCBjaGFyCj4gPj4+Pj4+ICpodWdldGxiZnNfcGF0aCwgdTY0 IHJhbV9zaXplKQo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgLyogQ3JlYXRlIHRoZSB2aXJ0dWFsIEdJ Qy4gKi8KPiA+Pj4+Pj4gwqDCoMKgwqDCoMKgIGlmIChnaWNfX2NyZWF0ZShrdm0sIGt2bS0+Y2Zn LmFyY2guaXJxY2hpcCkpCj4gPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRpZSgiRmFpbGVk IHRvIGNyZWF0ZSB2aXJ0dWFsIEdJQyIpOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICvCoMKgwqAgaWYg KGt2bS0+Y2ZnLmFyY2guaGFzX210ZSkKPiA+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGt2bV9fYXJj aF9lbmFibGVfbXRlKGt2bSk7Cj4gPj4+Pj4+IMKgwqAgfQo+ID4+Pj4+Cj4gPj4+Pj4gQ2FuIHdl IGVuYWJsZSBpdCB1bmNvbmRpdGlvbmFsbHkgaWYgS1ZNX0NBUF9BUk1fTVRFIGlzIHN1cHBvcnRl ZAo+ID4+Pj4+IGxpa2Ugd2UgZG8gZm9yCj4gPj4+Pj4gUEFDIGFuZCBTVkU/Cj4gPj4+Pgo+ID4+ Pj4gSSB0aG91Z2h0IGFib3V0IHRoYXQsIHRoZSByZWFzb24gSSBjaG9zZSB0byBlbmFibGUgaXQg YmFzZWQgYSBrdm10b29sCj4gPj4+PiBjb21tYW5kIGxpbmUgb3B0aW9uLCBpbnN0ZWFkIG9mIGFs d2F5cyBiZWluZyBlbmFibGVkIGlmIGF2YWlsYWJsZSwgaXMKPiA+Pj4+IGJlY2F1c2Ugb2YgdGhl IG92ZXJoZWFkIG9mIHNhbml0aXNpbmcgdGhlIE1URSB0YWdzIG9uIGVhY2ggc3RhZ2UgMiBkYXRh Cj4gPj4+PiBhYm9ydC4gU3RldmVuLCBhbSBJIG92ZXJyZWFjdGluZyBhbmQgdGhhdCBvdmVyaGVh ZCBpcyBuZWdsaWdpYmxlPwo+ID4+Pj4KPiA+Pj4+IEFsc28sIGFzIGZhciBhcyBJIGtub3csIFBB QyBhbmQgU1ZFIGluY3VyIGJhc2ljYWxseSBubyBvdmVyaGVhZCBpbiBLVk0KPiA+Pj4+IHVudGls IHRoZSBndWVzdCBzdGFydHMgdG8gdXNlIHRob3NlIGZlYXR1cmVzLgo+ID4+Pj4KPiA+Pj4+IERv IHlvdSBoYXZlIGEgc3BlY2lmaWMgcmVhc29uIGZvciB3YW50aW5nIE1URSB0byBhbHdheXMgYmUg ZW5hYmxlZCBpZgo+ID4+Pj4gYXZhaWxhYmxlPyBJJ20gaGFwcHkgdG8gYmUgY29udmluY2VkIHRv IG1ha2UgTVRFIGVuYWJsZWQgYnkgZGVmYXVsdCwgSQo+ID4+Pj4gZG9uJ3QgaGF2ZSBwcmVmZXJl bmNlIGVpdGhlciB3YXkuCj4gPj4+Cj4gPj4+IFdlbGwsIGF1dG9tYXRpY2FsbHkgZW5hYmxpbmcg aWYgYXZhaWxhYmxlIHdvdWxkIGFsaWduIHdpdGggd2hhdCB3ZSBkbwo+ID4+PiBmb3IKPiA+Pj4g b3RoZXIgZmVhdHVyZXMgaW4ga3ZtdG9vbCBhbmQgTGludXggaXRzZWxmIC0gd2UgdGVuZCB0byBk ZWZhdWx0IHkgZm9yCj4gPj4+IG5ldwo+ID4+PiBmZWF0dXJlcywgZXZlbiBNVEUsIHRodXMgaW1w cm92aW5nIGNoYW5jZXMgdG8gZ2V0IHJlcG9ydHMgYmFjayBlYXJseSBpZgo+ID4+PiBzb21ldGhp bmcgKGV2ZW4gcGVyZm9ybWFuY2UpIGdvZXMgd3JvbmcuIEp1c3QgbXkgMnAuCj4gPj4KPiA+PiBB Y2NvcmRpbmcgdG8gU3RldmVuLCBmb3IgZWFjaCA0ayBwYWdlIHRoZSBrZXJuZWwgdXNlcyBhbiAx MjggYnl0ZQo+ID4+IGJ1ZmZlciB0bwo+ID4+IHN0b3JlIHRoZSB0YWdzLCBhbmQgdGhlbiBzb21l IGV4dHJhIG1lbW9yeSBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlCj4gPj4gYnVmZmVycy4g TGV0J3MgdGFrZSB0aGUgY2FzZSBvZiBhIFZNIHdpdGggMUdCIG9mIG1lbW9yeSwgYW5kIGJlCj4g Pj4gY29uc2VydmF0aXZlIGFuZCBvbmx5IGFjY291bnQgZm9yIHRoZSB0YWcgYnVmZmVyLiBJbiB0 aGlzIGNhc2UsIHRoZSB0YWcKPiA+PiBidWZmZXJzIGFsb25lIHdpbGwgYmUgMzJNQi4KPiA+IAo+ ID4gUmlnaHQsIElJVUMsIHRoYXQgbWVtb3J5IGlzIGFsbG9jYXRlZCBvbiBkZW1hbmQgd2hlbiB3 ZSBhYm91dCB0byBzd2FwCj4gPiB0aGUgcGFnZQo+ID4gb3V0IG9yIHBlcmZvcm0gaGliZXJuYXRp b24sIHNvIHRoZXJlIGlzIG5vIHJlc2VydmF0aW9uIGRvbmUgdXBmcm9udCBvciBJJ20KPiA+IG1p c3Npbmcgc29tZXRoaW5nPwo+IAo+IFRoYXQncyBjb3JyZWN0LCBzb3JyeSBpZiBJIGRpZG4ndCBt YWtlIHRoYXQgY2xlYXIgZWFybGllci4gVGhlIGhvc3QKPiBtZW1vcnkgaXMgb25seSBhbGxvY2F0 ZWQgd2hlbiB0aGUgTVRFLWVuYWJsZWQgZ3Vlc3QncyBwYWdlcyBhcmUgc3dhcHBlZAo+IG91dC4g U28gaWYgdGhleSBhcmUgbmV2ZXIgc3dhcHBlZCBvdXQgdGhlcmUncyBubyBtZW1vcnkgb3Zlcmhl YWQuCj4gCj4gPj4KPiA+PiBGb3IgYSBWTSB3aXRoIDFHQiBvZiBtZW1vcnkgY3JlYXRlZCB3aXRo IGt2bXRvb2wgYnVpbHQgZnJvbSBjdXJyZW50Cj4gPj4gbWFzdGVyCj4gPj4gKGNvbW1pdCBmYWFl ODMzYTc0NmYpLCBwbWFwIHNob3dzIGEgdG90YWwgbWVtb3J5IHVzYWdlIG9mIDEyNjgzODhLLgo+ ID4+IFN1YnRyYWN0aW5nIHRoZSBtZW1vcnkgb2YgdGhlIFZNLCB3ZSBhcmUgbGVmdCB3aXRoIDIx NE1CIG9mIG1lbW9yeQo+ID4+IGNvbnN1bWVkCj4gPj4gYnkga3ZtdG9vbC4gSGF2aW5nIE1URSBl bmFibGVkIHdvdWxkIGluY3JlYXNlIHRoZSBtZW1vcnkgb3ZlcmhlYWQgb2YKPiA+PiBrdm10b29s IGJ5IDMyLzIxNCoxMDAgPSAxNSUuCj4gPj4KPiA+IAo+ID4gSSBhZG1pdCwgSSBtaWdodCBiZSBt aXNzaW5nIHNvbWV0aGluZywgYnV0IGdpdmVuIHRoYXQgZXh0cmEgdGFnIHN0b3JhZ2UKPiA+IGFs bG9jYXRlZCBmb3Igc3dhcC9oaWJlcm5hdGlvbiBvdmVyaGVhZCBjYW4gYmUgYXBwbGllZCB0byBh bnkgcHJvY2VzcyB3aGljaAo+ID4gdXNlcyBNVEUsIG5vPwo+IAo+IE9uZSBkaWZmZXJlbmNlIGlz IHRoYXQgdGhlIGVudGlyZSBWTSBpcyBjb25zaWRlcmVkIE1URSBtZW1vcnksIHdoZXJlYXMKPiBp biBhIG5vcm1hbCBhcHBsaWNhdGlvbiBvbmx5IHRob3NlIHBhZ2VzIG1hcHBlZCB3aXRoIFBST1Rf TVRFIHRha2UgdGhlCj4gb3ZlcmhlYWQuIFNvIHRoZSBtZW1vcnkgb3ZlcmhlYWQgb2YgYXBwbGlj YXRpb25zIHJ1bm5pbmcgaW4gdGhlIFZNIGlzCj4gaGlnaGVyIHRoYW4gdGhlIHNhbWUgYXBwbGlj YXRpb24gb3V0c2lkZSBvZiB0aGUgVk0gKGFzc3VtaW5nIHRoZSBtZW1vcnkKPiBpcyBzd2FwcGVk IG91dCBieSB0aGUgaG9zdCkuCj4gCj4gPj4gT2YgY291cnNlLCB0aGlzIG1lbW9yeSBvdmVyaGVh ZCBzY2FsZXMgd2l0aCB0aGUgYW1vdW50IG9mIG1lbW9yeSB0aGUgVk0KPiA+PiBoYXMuIFRoZSBi dWZmZXIgc2l6ZSB0aGF0IEtWTSB1c2VzIG1pZ2h0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLCBidXQK PiA+PiBzaW5jZSB3ZQo+ID4+IGNhbm5vdCBwcmVkaWN0IHRoZSBmdXR1cmUgKG1pZ2h0IGJlY29t ZSBsYXJnZXIgb3Igc21hbGxlciksIEknbSB3b3JraW5nCj4gPj4gd2l0aCB3aGF0IGlzIGltcGxl bWVudCB0b2RheS4KPiA+Pgo+ID4gCj4gPiBGYWlyIGVub3VnaC4gSU1PLCB3ZSB3aWxsIHNlZSBt b3JlIE1URSBjYXBhYmxlIGhhcmR3YXJlLCBPVE9ILCBtZW1vcnkKPiA+IG92ZXJoZWFkCj4gPiB3 b24ndCBtYWdpY2FsbHkgZGlzYXBwZWFyLCBzbyBzaG91bGQgd2Ugc3RhcnQgdGhpbmtpbmcgaG93 IHRvIHJlZHVjZSBpdD8KPiA+IEkgbm90aWNlZCB0aGF0IGNvZGUgc2F2ZXMgdGFncyBvbmUgdG8g b25lLCBzbyBmb3IgZ3Vlc3Qgd2hpY2ggZG9lc24ndAo+ID4gYWN0aXZlbHkgdXNlIE1URSB3aG9s ZSBwYWdlIHdvdWxkIGJlIHRhZ2dlZCB3aXRoIHplcm8sIGNhbm5vdCB0aGF0IGNhc2UgYmUKPiA+ IG9wdGltaXplZD8gb3IgbWF5YmUgYmUgZ28gZnVydGhlciBhbmQgY29tcHJlc3MgdGFncz8KPiAK PiBDb21wcmVzc2luZyB0YWdzIGlzIGNlcnRhaW5seSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBj b25zaWRlcmVkIChhbgo+IGVhcmx5IHJldmlzaW9uIG9mIHRoZSBNVEUgc3dhcCBkaWQgb3B0aW1p c2UgdGhlIHplcm8gY2FzZSkuCj4gCj4gSG93ZXZlciBMaW51eCBpcyBsYXp5IHdpdGggdGhlIHRh Z3MgLSBpZiBhbiBhcHBsaWNhdGlvbiBuZWVkcyBtZW1vcnkgYnV0Cj4gZG9lc24ndCB1c2UgdGhl IHRhZ3MgdGhlbiBvbmx5IHRoZSBkYXRhIHBvcnRpb24gd2lsbCBiZSB6ZXJvZWQgYW5kIHRoZQo+ IHRhZ3Mgd2lsbCBiZSBsZWZ0IHdpdGggd2hhdGV2ZXIgdmFsdWUgdGhleSBoYWQgcHJldmlvdXNs eSAoYXMgdGhleSBhcmUKPiBub3QgYWNjZXNzaWJsZSBieSB0aGUgYXBwbGljYXRpb24pLiBUaGlz IGNvdWxkIG1lYW4gdGhhdCBhIE1URS1lbmFibGVkCj4gZ3Vlc3QgZW5kcyB3aXRoIHdpdGggcmVt YXJrYWJseSBmZXcgcGFnZXMgd2l0aCB6ZXJvZWQgdGFncyBhZnRlciBpdCBoYXMKPiBiZWVuIHJ1 bm5pbmcgZm9yIGEgd2hpbGUuCj4gCj4gRnJvbSB0aGUgaG9zdCBpdCdzIG5vdCBwb3NzaWJsZSB0 byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdGFncyBhcmUgdXNlZnVsCj4gb3Igbm90IHNvIHRoZXkg aGF2ZSB0byBiZSBzYXZlZCByZWdhcmRsZXNzLgo+IAo+IFRoYXQgc2FpZCBJIGRvbid0IGhhdmUg YSBzdHJvbmcgb3BpbmlvbiBvbiB0aGUgZGVmYXVsdCwgYXMgbG9uZyBhcwo+IHRoZXJlJ3MgYW4g b3B0aW9uIHRvIGRpc2FibGUgTVRFIHRoZW4gaGF2aW5nIHRoZSBkZWZhdWx0IHdpdGggaXQgdHVy bmVkCj4gb24gaXMgZmluZSBieSBtZS4KPiAKPiA+PiBUaGUga2VybmVsIGRvY3VtZW50YXRpb24g Zm9yIE1URSBzdWdnZXN0cyB0aGF0IGluIG9yZGVyIHRvIHRha2UgYWR2YW50YWdlCj4gPj4gb2Yg aXQsIHNvZnR3YXJlIG11c3QgYmUgbW9kaWZpZWQgYW5kIHJlY29tcGlsZWQuIFRoYXQgbWVhbnMg dGhhdCB1c2Vycwo+ID4+IHRoYXQKPiA+PiBkb24ndCB3YW50IHRvIHVzZSBNVEUgd29uJ3QgZ2V0 IHRvIGV4ZXJjaXNlIE1URSBiZWNhdXNlIHRoZXkgd29uJ3QgYmUKPiA+PiB1c2luZwo+ID4+IE1U RSBlbmFibGVkIHNvZnR3YXJlLCBidXQgdGhleSB3aWxsIHBheSB0aGUgb3ZlcmhlYWQgcmVnYXJk bGVzcy4gVGhpcyBvZgo+ID4+IGNvdXJzZSBhc3N1bWVzIHRoYXQgZ29pbmcgZm9yd2FyZCBzb2Z0 d2FyZSB3b24ndCBiZSB1c2luZyBNVEUgYnkgZGVmYXVsdC4KPiA+Pgo+ID4+IGt2bXRvb2wgaXMg c3VwcG9zZWQgdG8gYmUgc2ltcGxlLCBmYXN0IGFuZCBsZXNzIHJlc291cmNlIGludGVuc2l2ZSB0 aGFuCj4gPj4gb3RoZXIgaHlwZXJ2aXNvcnMsIHRoYXQncyB3aHkgSSB0aGluayBoYXZpbmcgTVRF IGRpc2FibGVkIGJ5IGRlZmF1bHQKPiA+PiBpcyB0aGUKPiA+PiBiZXN0IHdheSB0byBpbXBsZW1l bnQgdGhlIGNhcGFiaWxpdHkuCj4gPiAKPiA+IEkgc2VlIGt2bXRvb2wgYXMgYmxlZWRpbmcgZWRn ZSBoYWNraW5nIHRvb2wsIHNvIGNsb3NlciBpdCB0byB0aGUgZWRnZSBpcwo+ID4gYmV0dGVyIDop Cj4gCj4gSSBoYXZlIHRvIGFkbWl0IEkgbGlrZSB0aGUgImp1c3Qgd29ya3MiIGFwcHJvYWNoIHRo YXQgdGhlIGRlZmF1bHRzIGdpdmUKPiB5b3UgKGUuZy4gcDkgZmlsZXN5c3RlbSBmcm9tIGhvc3Qs IG5vIG5lZWQgdG8gY29uZmlndXJlIHJvb3QgZmlsZXN5c3RlbXMKPiBldGMpLCBzbyB0aGVyZSdz IGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIGJlIHNhaWQgZm9yIE1URSAianVzdCB3b3JraW5nIgo+ IGluIGt2bXRvb2wgdG9vLgo+IAo+IFN0ZXZlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A9A25C433F5 for ; Wed, 23 Mar 2022 15:48:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238839AbiCWPtj (ORCPT ); Wed, 23 Mar 2022 11:49:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245248AbiCWPtf (ORCPT ); Wed, 23 Mar 2022 11:49:35 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D57B2B86C for ; Wed, 23 Mar 2022 08:48:02 -0700 (PDT) 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 C3F93D6E; Wed, 23 Mar 2022 08:48:01 -0700 (PDT) Received: from monolith.localdoman (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 122723F73D; Wed, 23 Mar 2022 08:47:59 -0700 (PDT) Date: Wed, 23 Mar 2022 15:48:31 +0000 From: Alexandru Elisei To: Steven Price Cc: Vladimir Murzin , will@kernel.org, kvm@vger.kernel.org, julien.thierry.kdev@gmail.com, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com Subject: Re: [kvmtool PATCH 2/2] aarch64: Add support for MTE Message-ID: References: <20220321152820.246700-1-alexandru.elisei@arm.com> <20220321152820.246700-3-alexandru.elisei@arm.com> <3cf3b621-5a07-5c06-cb9f-f9c776b6717d@arm.com> <7e5ebae0-db08-ad87-0fa9-26da048a9b72@arm.com> <00099507-c436-dd51-8714-d1a91431e4d0@arm.com> <4731158c-b197-aba9-de64-fc5130cc152d@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4731158c-b197-aba9-de64-fc5130cc152d@arm.com> Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Hi, Catalin, Steven, Vladimir, thank you all for the feedback. I'll make MTE enabled by default in the next iteration of this series. Thanks, Alex On Wed, Mar 23, 2022 at 02:15:55PM +0000, Steven Price wrote: > On 23/03/2022 13:57, Vladimir Murzin wrote: > > Hi, > > > > On 3/23/22 12:03 PM, Alexandru Elisei wrote: > >> Hi, > >> > >> On Wed, Mar 23, 2022 at 10:31:15AM +0000, Vladimir Murzin wrote: > >>> On 3/21/22 5:08 PM, Alexandru Elisei wrote: > >>>> Hi, > >>>> > >>>> On Mon, Mar 21, 2022 at 03:40:18PM +0000, Vladimir Murzin wrote: > >>>>> Hi Alexandru, > >>>>> > >>>>> On 3/21/22 3:28 PM, Alexandru Elisei wrote: > >>>>>> MTE has been supported in Linux since commit 673638f434ee ("KVM: > >>>>>> arm64: > >>>>>> Expose KVM_ARM_CAP_MTE"), add support for it in kvmtool. > >>>>>> > >>>>>> Signed-off-by: Alexandru Elisei > >>>>>> --- > >>>>>>    arm/aarch32/include/kvm/kvm-arch.h        |  3 +++ > >>>>>>    arm/aarch64/include/kvm/kvm-arch.h        |  1 + > >>>>>>    arm/aarch64/include/kvm/kvm-config-arch.h |  2 ++ > >>>>>>    arm/aarch64/kvm.c                         | 13 +++++++++++++ > >>>>>>    arm/include/arm-common/kvm-config-arch.h  |  1 + > >>>>>>    arm/kvm.c                                 |  3 +++ > >>>>>>    6 files changed, 23 insertions(+) > >>>>>> > >>>>>> diff --git a/arm/aarch32/include/kvm/kvm-arch.h > >>>>>> b/arm/aarch32/include/kvm/kvm-arch.h > >>>>>> index bee2fc255a82..5616b27e257e 100644 > >>>>>> --- a/arm/aarch32/include/kvm/kvm-arch.h > >>>>>> +++ b/arm/aarch32/include/kvm/kvm-arch.h > >>>>>> @@ -5,6 +5,9 @@ > >>>>>>    #define kvm__arch_get_kern_offset(...)    0x8000 > >>>>>> +struct kvm; > >>>>>> +static inline void kvm__arch_enable_mte(struct kvm *kvm) {} > >>>>>> + > >>>>>>    #define ARM_MAX_MEMORY(...)    ARM_LOMAP_MAX_MEMORY > >>>>>>    #define MAX_PAGE_SIZE    SZ_4K > >>>>>> diff --git a/arm/aarch64/include/kvm/kvm-arch.h > >>>>>> b/arm/aarch64/include/kvm/kvm-arch.h > >>>>>> index 5e5ee41211ed..9124f6919d0f 100644 > >>>>>> --- a/arm/aarch64/include/kvm/kvm-arch.h > >>>>>> +++ b/arm/aarch64/include/kvm/kvm-arch.h > >>>>>> @@ -6,6 +6,7 @@ > >>>>>>    struct kvm; > >>>>>>    unsigned long long kvm__arch_get_kern_offset(struct kvm *kvm, > >>>>>> int fd); > >>>>>>    int kvm__arch_get_ipa_limit(struct kvm *kvm); > >>>>>> +void kvm__arch_enable_mte(struct kvm *kvm); > >>>>>>    #define ARM_MAX_MEMORY(kvm)    ({                    \ > >>>>>>        u64 max_ram;                            \ > >>>>>> diff --git a/arm/aarch64/include/kvm/kvm-config-arch.h > >>>>>> b/arm/aarch64/include/kvm/kvm-config-arch.h > >>>>>> index 04be43dfa9b2..11250365d8d5 100644 > >>>>>> --- a/arm/aarch64/include/kvm/kvm-config-arch.h > >>>>>> +++ b/arm/aarch64/include/kvm/kvm-config-arch.h > >>>>>> @@ -6,6 +6,8 @@ > >>>>>>                "Run AArch32 guest"),                \ > >>>>>>        OPT_BOOLEAN('\0', "pmu", &(cfg)->has_pmuv3,            \ > >>>>>>                "Create PMUv3 device"),                \ > >>>>>> +    OPT_BOOLEAN('\0', "mte", &(cfg)->has_mte,            \ > >>>>>> +            "Enable memory tagging extension"),        \ > >>>>>>        OPT_U64('\0', "kaslr-seed", &(cfg)->kaslr_seed,            \ > >>>>>>                "Specify random seed for Kernel Address Space "    \ > >>>>>>                "Layout Randomization (KASLR)"), > >>>>>> diff --git a/arm/aarch64/kvm.c b/arm/aarch64/kvm.c > >>>>>> index 56a0aedc263d..46548f8ee96e 100644 > >>>>>> --- a/arm/aarch64/kvm.c > >>>>>> +++ b/arm/aarch64/kvm.c > >>>>>> @@ -81,3 +81,16 @@ int kvm__get_vm_type(struct kvm *kvm) > >>>>>>        return KVM_VM_TYPE_ARM_IPA_SIZE(ipa_bits); > >>>>>>    } > >>>>>> + > >>>>>> +void kvm__arch_enable_mte(struct kvm *kvm) > >>>>>> +{ > >>>>>> +    struct kvm_enable_cap cap = { > >>>>>> +        .cap = KVM_CAP_ARM_MTE, > >>>>>> +    }; > >>>>>> + > >>>>>> +    if (!kvm__supports_extension(kvm, KVM_CAP_ARM_MTE)) > >>>>>> +        die("MTE capability is not supported"); > >>>>>> + > >>>>>> +    if (ioctl(kvm->vm_fd, KVM_ENABLE_CAP, &cap)) > >>>>>> +        die_perror("KVM_ENABLE_CAP(KVM_CAP_ARM_MTE)"); > >>>>>> +} > >>>>>> diff --git a/arm/include/arm-common/kvm-config-arch.h > >>>>>> b/arm/include/arm-common/kvm-config-arch.h > >>>>>> index 5734c46ab9e6..16e8d500a71b 100644 > >>>>>> --- a/arm/include/arm-common/kvm-config-arch.h > >>>>>> +++ b/arm/include/arm-common/kvm-config-arch.h > >>>>>> @@ -9,6 +9,7 @@ struct kvm_config_arch { > >>>>>>        bool        virtio_trans_pci; > >>>>>>        bool        aarch32_guest; > >>>>>>        bool        has_pmuv3; > >>>>>> +    bool        has_mte; > >>>>>>        u64        kaslr_seed; > >>>>>>        enum irqchip_type irqchip; > >>>>>>        u64        fw_addr; > >>>>>> diff --git a/arm/kvm.c b/arm/kvm.c > >>>>>> index 80d233f13d0b..f2db93953778 100644 > >>>>>> --- a/arm/kvm.c > >>>>>> +++ b/arm/kvm.c > >>>>>> @@ -86,6 +86,9 @@ void kvm__arch_init(struct kvm *kvm, const char > >>>>>> *hugetlbfs_path, u64 ram_size) > >>>>>>        /* Create the virtual GIC. */ > >>>>>>        if (gic__create(kvm, kvm->cfg.arch.irqchip)) > >>>>>>            die("Failed to create virtual GIC"); > >>>>>> + > >>>>>> +    if (kvm->cfg.arch.has_mte) > >>>>>> +        kvm__arch_enable_mte(kvm); > >>>>>>    } > >>>>> > >>>>> Can we enable it unconditionally if KVM_CAP_ARM_MTE is supported > >>>>> like we do for > >>>>> PAC and SVE? > >>>> > >>>> I thought about that, the reason I chose to enable it based a kvmtool > >>>> command line option, instead of always being enabled if available, is > >>>> because of the overhead of sanitising the MTE tags on each stage 2 data > >>>> abort. Steven, am I overreacting and that overhead is negligible? > >>>> > >>>> Also, as far as I know, PAC and SVE incur basically no overhead in KVM > >>>> until the guest starts to use those features. > >>>> > >>>> Do you have a specific reason for wanting MTE to always be enabled if > >>>> available? I'm happy to be convinced to make MTE enabled by default, I > >>>> don't have preference either way. > >>> > >>> Well, automatically enabling if available would align with what we do > >>> for > >>> other features in kvmtool and Linux itself - we tend to default y for > >>> new > >>> features, even MTE, thus improving chances to get reports back early if > >>> something (even performance) goes wrong. Just my 2p. > >> > >> According to Steven, for each 4k page the kernel uses an 128 byte > >> buffer to > >> store the tags, and then some extra memory is used to keep track of the > >> buffers. Let's take the case of a VM with 1GB of memory, and be > >> conservative and only account for the tag buffer. In this case, the tag > >> buffers alone will be 32MB. > > > > Right, IIUC, that memory is allocated on demand when we about to swap > > the page > > out or perform hibernation, so there is no reservation done upfront or I'm > > missing something? > > That's correct, sorry if I didn't make that clear earlier. The host > memory is only allocated when the MTE-enabled guest's pages are swapped > out. So if they are never swapped out there's no memory overhead. > > >> > >> For a VM with 1GB of memory created with kvmtool built from current > >> master > >> (commit faae833a746f), pmap shows a total memory usage of 1268388K. > >> Subtracting the memory of the VM, we are left with 214MB of memory > >> consumed > >> by kvmtool. Having MTE enabled would increase the memory overhead of > >> kvmtool by 32/214*100 = 15%. > >> > > > > I admit, I might be missing something, but given that extra tag storage > > allocated for swap/hibernation overhead can be applied to any process which > > uses MTE, no? > > One difference is that the entire VM is considered MTE memory, whereas > in a normal application only those pages mapped with PROT_MTE take the > overhead. So the memory overhead of applications running in the VM is > higher than the same application outside of the VM (assuming the memory > is swapped out by the host). > > >> Of course, this memory overhead scales with the amount of memory the VM > >> has. The buffer size that KVM uses might change in the future, but > >> since we > >> cannot predict the future (might become larger or smaller), I'm working > >> with what is implement today. > >> > > > > Fair enough. IMO, we will see more MTE capable hardware, OTOH, memory > > overhead > > won't magically disappear, so should we start thinking how to reduce it? > > I noticed that code saves tags one to one, so for guest which doesn't > > actively use MTE whole page would be tagged with zero, cannot that case be > > optimized? or maybe be go further and compress tags? > > Compressing tags is certainly something that could be considered (an > early revision of the MTE swap did optimise the zero case). > > However Linux is lazy with the tags - if an application needs memory but > doesn't use the tags then only the data portion will be zeroed and the > tags will be left with whatever value they had previously (as they are > not accessible by the application). This could mean that a MTE-enabled > guest ends with with remarkably few pages with zeroed tags after it has > been running for a while. > > From the host it's not possible to determine whether the tags are useful > or not so they have to be saved regardless. > > That said I don't have a strong opinion on the default, as long as > there's an option to disable MTE then having the default with it turned > on is fine by me. > > >> The kernel documentation for MTE suggests that in order to take advantage > >> of it, software must be modified and recompiled. That means that users > >> that > >> don't want to use MTE won't get to exercise MTE because they won't be > >> using > >> MTE enabled software, but they will pay the overhead regardless. This of > >> course assumes that going forward software won't be using MTE by default. > >> > >> kvmtool is supposed to be simple, fast and less resource intensive than > >> other hypervisors, that's why I think having MTE disabled by default > >> is the > >> best way to implement the capability. > > > > I see kvmtool as bleeding edge hacking tool, so closer it to the edge is > > better :) > > I have to admit I like the "just works" approach that the defaults give > you (e.g. p9 filesystem from host, no need to configure root filesystems > etc), so there's definitely something to be said for MTE "just working" > in kvmtool too. > > Steve