Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp542769ybt; Wed, 17 Jun 2020 07:43:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzf/SpFXP7erR5cUTS72SiFO+8zG7rHeMXU7T1aILqrKdUJ2eep3WP48tUcUgcycyiiW5fB X-Received: by 2002:a17:906:cb94:: with SMTP id mf20mr7731172ejb.46.1592404994260; Wed, 17 Jun 2020 07:43:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592404994; cv=none; d=google.com; s=arc-20160816; b=fn11AJlBYvNCzkP8YV+NtpX5GztRrXIvaiqy8WMoQ57DJ9Y1YDymZx8VFpvShMBC2g UdCXnsXz9zH2uKt1Dv9iuBUWzOKezc6PizzcCTlj8bsmz2jqQh8/MP1QQ/tUt7N6prsY btUYCL5G2KYXzXeEWmPa1Ud/9t8bo6nIp1U101jrwoB+YEobCyg3AKQvEDR8dWjf5ZwF qyfMD0Myh1kCV4WHfI1z7pSZWDMq8Ajs83oG/y5ePPfNdgMm2lTSA4qy0Zgo9jQ+2RV5 n0b8A0dZDnpgZPGQJUel9MXGUNT/2l8tfszbuPkMND7SyEqiI9k14ootbtC/zdwL5BUx V/mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=peGxwnm9F3TvgLVb2JWiPClfCmg7OPeoowGkxRP7Kio=; b=zAKCa4gSLumGCvA5hmpc3Lbbpc+L8QzAOYevcQGhKFlgmJuJ4RYwyY/p1vCiE5JzIi BkYFtuG/X5Tms4uuZzOYaUORhKn7i5VbZZnn2tCIp26wlBCQ1pRhQQbcxqeu3yQBQOxL mBdY1z2LLIHszQaI9PSMTqjZjhavXUwOYaJrfkltM4x87KCOXY28b3TJAeyCqLsrBsQK DavsTnPvWPeY4QMO1ASsX9dv8mPDYSe/OO+e1J3Czw68vEAFeElZ/8C67MxW4koplwHl XCMrjc69VwfmOAXABCC6ywq/u1GAcLwCEENADs+S21S+4TpFCRq0lSrm+aOmkcwMcsNS hd1g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b10si109364edw.184.2020.06.17.07.42.52; Wed, 17 Jun 2020 07:43:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726952AbgFQOiT (ORCPT + 99 others); Wed, 17 Jun 2020 10:38:19 -0400 Received: from foss.arm.com ([217.140.110.172]:59000 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726708AbgFQOiS (ORCPT ); Wed, 17 Jun 2020 10:38:18 -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 4EA4531B; Wed, 17 Jun 2020 07:38:18 -0700 (PDT) Received: from gaia (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9D2CA3F73C; Wed, 17 Jun 2020 07:38:16 -0700 (PDT) Date: Wed, 17 Jun 2020 15:38:10 +0100 From: Catalin Marinas To: Steven Price Cc: Marc Zyngier , Will Deacon , James Morse , Julien Thierry , Suzuki K Poulose , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Dave Martin , Mark Rutland , Thomas Gleixner Subject: Re: [RFC PATCH 2/2] arm64: kvm: Introduce MTE VCPU feature Message-ID: <20200617143809.GF5388@gaia> References: <20200617123844.29960-1-steven.price@arm.com> <20200617123844.29960-3-steven.price@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200617123844.29960-3-steven.price@arm.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 17, 2020 at 01:38:44PM +0100, Steven Price wrote: > diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c > index e3b9ee268823..040a7fffaa93 100644 > --- a/virt/kvm/arm/mmu.c > +++ b/virt/kvm/arm/mmu.c > @@ -1783,6 +1783,17 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, > vma_pagesize = PMD_SIZE; > } > > + if (system_supports_mte() && kvm->arch.vcpu_has_mte) { > + /* > + * VM will be able to see the page's tags, so we must ensure > + * they have been initialised. > + */ > + struct page *page = pfn_to_page(pfn); > + > + if (!test_and_set_bit(PG_mte_tagged, &page->flags)) > + mte_clear_page_tags(page_address(page), page_size(page)); > + } Are all the guest pages always mapped via a Stage 2 fault? It may be better if we did that via kvm_set_spte_hva(). -- Catalin