From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B92AE322B for ; Mon, 13 Mar 2023 17:21:11 +0000 (UTC) Received: by mail-pl1-f202.google.com with SMTP id p10-20020a170902e74a00b0019ec1acba17so7412613plf.0 for ; Mon, 13 Mar 2023 10:21:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678728071; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=6T1FQzdq6ySi1rIwhJyo74NnzXWN8IL63XLJcIURd30=; b=NCrllu0cypSlyHtfYfnDii1y8LyzSvcc2SYpEkINqE5iKRucAG5Swb2pBV5/VHDqJp k15ND+xGJzBoEqpqPJnBxygkn2p7oF3VYUZHqjJ+HRSc02ZHRiOrGVZMB9AovrMKQRAw LuE3+eFR/EW9HvUCuLcAvpG1+SK+QPGeNLlNON/OPmFpnL3RViya8NRf3AA/hxxwGwib qgn7TYoyPKMnMc3GfvBgnOW7WnMa2a8PVnjOqJHFbRsXt3WLmXB9O9R6s0O+h2lvGOO7 YDqzbMQf6oBxCMTBVuHREGXQHz3euArR6zCyckO+3M1EmdWnXUKYMa7kheZ4k9cK+yu1 eifg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678728071; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=6T1FQzdq6ySi1rIwhJyo74NnzXWN8IL63XLJcIURd30=; b=FF23ssup9oMu5p4tAPhypQNbFNZRHzmP14gDZAf2e+Vvej5taeHsEJJGVqGwUXu/9Z /qZqzR9izJWCzs66OgGDO0ryASfEV8lWneITJBwor3bmMXfOifS0segFzCOYrP7kNsLP VzQfEy+V9RCKRv6eIgoCuYB9cfhuQiLlWaayw4C9EqS1pE/McSTCscf3iJODDF8Od/Tp SbawKqnIMsr0jDkLzJRVYfWl738ntKHPxKvyEqyVYyTWdidaK5oNpPL+hkff4IpY/fIj uQ4YHo7y8Y1m9q9V2lSOD1A6Vdz00VuIP0HtqOVrGyPCIrEtjEP+PzDlTi3JmQES+cD0 KteQ== X-Gm-Message-State: AO0yUKWuxxwN3Shhqknc4SqSd25Kpnh83edNj+hWzkfBE0bhwSBxNAkI n1rI5RB13VMxUbssl4BPyrZ7WbPW/cc= X-Google-Smtp-Source: AK7set8B3CeFNCeFlI5qCMlp/uO9ITN1guOuZisHUyY14k69LU+SjjJ6+snECmGiZWES/zdYV86/vdKAdjA= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:2136:b0:590:3182:7ac3 with SMTP id n22-20020a056a00213600b0059031827ac3mr13418688pfj.0.1678728071185; Mon, 13 Mar 2023 10:21:11 -0700 (PDT) Date: Mon, 13 Mar 2023 10:21:09 -0700 In-Reply-To: Precedence: bulk X-Mailing-List: kvmarm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20230313091425.1962708-1-maz@kernel.org> <20230313091425.1962708-2-maz@kernel.org> Message-ID: Subject: Re: [PATCH 1/2] KVM: arm64: Disable interrupts while walking userspace PTs From: Sean Christopherson To: David Matlack Cc: Marc Zyngier , kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu , Ard Biesheuvel , Will Deacon , Quentin Perret , stable@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 13, 2023, David Matlack wrote: > On Mon, Mar 13, 2023 at 8:53=E2=80=AFAM Sean Christopherson wrote: > > > > +David > > > > On Mon, Mar 13, 2023, Marc Zyngier wrote: > > > diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c > > > index 7113587222ff..d7b8b25942df 100644 > > > --- a/arch/arm64/kvm/mmu.c > > > +++ b/arch/arm64/kvm/mmu.c > > > @@ -666,14 +666,23 @@ static int get_user_mapping_size(struct kvm *kv= m, u64 addr) > > > CONFIG_PGTABLE_LEVELS), > > > .mm_ops =3D &kvm_user_mm_ops, > > > }; > > > + unsigned long flags; > > > kvm_pte_t pte =3D 0; /* Keep GCC quiet... */ > > > u32 level =3D ~0; > > > int ret; > > > > > > + /* > > > + * Disable IRQs so that we hazard against a concurrent > > > + * teardown of the userspace page tables (which relies on > > > + * IPI-ing threads). > > > + */ > > > + local_irq_save(flags); > > > ret =3D kvm_pgtable_get_leaf(&pgt, addr, &pte, &level); > > > - VM_BUG_ON(ret); > > > - VM_BUG_ON(level >=3D KVM_PGTABLE_MAX_LEVELS); > > > - VM_BUG_ON(!(pte & PTE_VALID)); > > > + local_irq_restore(flags); > > > + > > > + /* Oops, the userspace PTs are gone... */ > > > + if (ret || level >=3D KVM_PGTABLE_MAX_LEVELS || !(pte & PTE_VAL= ID)) > > > + return -EFAULT; > > > > I don't think this should return -EFAULT all the way out to userspace. = Unless > > arm64 differs from x86 in terms of how the userspace page tables are ma= naged, not > > having a valid translation _right now_ doesn't mean that one can't be c= reated in > > the future, e.g. by way of a subsequent hva_to_pfn(). > > > > FWIW, the approach x86 takes is to install a 4KiB (smallest granuale) t= ranslation, >=20 > If I'm reading the ARM code correctly, returning -EFAULT here will > have that effect. get_user_mapping_size() is only called by > transparent_hugepage_adjust() which returns PAGE_SIZE if > get_user_mapping_size() returns anything less than PMD_SIZE. No, this patch adds + int sz =3D get_user_mapping_size(kvm, hva); + + if (sz < 0) + return sz; + + if (sz < PMD_SIZE) + return PAGE_SIZE; + and=20 vma_pagesize =3D transparent_hugepage_adjust(kvm, m= emslot, hva, &pf= n, &fault_i= pa); + + if (vma_pagesize < 0) { + ret =3D vma_pagesize; + goto out_unlock; + } 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 60FB2C61DA4 for ; Mon, 13 Mar 2023 17:27:59 +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:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=msAMrjSXz4coWyGHj7Sg7p2YwLrCs23k0FQ/FZyki58=; b=XXSqiWj+Uons9ON4VoFEeP0w84 v8UioJi5OfIM5fszPjOLFsY9akJV5slXBaFxHzdwA1Hk3/xJQ0ba55VUWP3omSjQnYgdufZ3X7vS9 I0Zn7UM3j8nLQyOhVTZ3zeYYmiW7GICALU08ptNy+F/X8MLSBIJWwyBBdlouoQANF6QNj6ffxGRJj Q8IDr067Q8fLHvlVlfliNRi9EH3U0HUExcxwiSfimZsTbk0kACZd52+D4AcNZIJ+h1ANJtW8aGiZf Non1tWkGiDMKJkZ+0mP+rreCLNKaftJflCNs8PMU4SjDW0TRE+MguBdYxnJr63DLMW6xiQsLTmnpJ x5KhOX5g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pblwX-00767p-9u; Mon, 13 Mar 2023 17:26:43 +0000 Received: from mail-pl1-x649.google.com ([2607:f8b0:4864:20::649]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pblrG-0073qj-3H for linux-arm-kernel@lists.infradead.org; Mon, 13 Mar 2023 17:21:16 +0000 Received: by mail-pl1-x649.google.com with SMTP id az7-20020a170902a58700b001a0534b4ddbso1286371plb.15 for ; Mon, 13 Mar 2023 10:21:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678728071; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=6T1FQzdq6ySi1rIwhJyo74NnzXWN8IL63XLJcIURd30=; b=NCrllu0cypSlyHtfYfnDii1y8LyzSvcc2SYpEkINqE5iKRucAG5Swb2pBV5/VHDqJp k15ND+xGJzBoEqpqPJnBxygkn2p7oF3VYUZHqjJ+HRSc02ZHRiOrGVZMB9AovrMKQRAw LuE3+eFR/EW9HvUCuLcAvpG1+SK+QPGeNLlNON/OPmFpnL3RViya8NRf3AA/hxxwGwib qgn7TYoyPKMnMc3GfvBgnOW7WnMa2a8PVnjOqJHFbRsXt3WLmXB9O9R6s0O+h2lvGOO7 YDqzbMQf6oBxCMTBVuHREGXQHz3euArR6zCyckO+3M1EmdWnXUKYMa7kheZ4k9cK+yu1 eifg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678728071; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=6T1FQzdq6ySi1rIwhJyo74NnzXWN8IL63XLJcIURd30=; b=mvcUZstUdQajtMjqzsTMc6QgDcn8l0fK6Wd52x3t9WAZ2dn6++yKaf6lGni/SuDnNG jy0idunGNPjuddOUuB8rXDoO2KRx4pPXyZVZJPW9zMUkr6SlLKdS0HxpXpS3tKILXfM9 0Y/x+SDpAQtLSLImrfPgEZo4LN0INkhumQGkEGJvR9o+SOgPSDuPvniljBhndnuhT8vx /mLlJW4xh3rcRBqirZnqNVj4OgS65VIUEtfbjQ/ckkqnvQLGVgam84806aepsRFdWKwY uQ93e9GhdP5FZpKGhtBvekTfYtUavLQVN6CHTu/wmxU6g38r77+Pllk+du7MtwnCzLk+ 4e0w== X-Gm-Message-State: AO0yUKUVKCiAm/XlBAHpfv3UOCHk7b9N25+NYsYCfjXkJHNyz2BENNEp 7j1yq8+ZWTOPCos2gpGLtbOlfwF4j3s= X-Google-Smtp-Source: AK7set8B3CeFNCeFlI5qCMlp/uO9ITN1guOuZisHUyY14k69LU+SjjJ6+snECmGiZWES/zdYV86/vdKAdjA= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:2136:b0:590:3182:7ac3 with SMTP id n22-20020a056a00213600b0059031827ac3mr13418688pfj.0.1678728071185; Mon, 13 Mar 2023 10:21:11 -0700 (PDT) Date: Mon, 13 Mar 2023 10:21:09 -0700 In-Reply-To: Mime-Version: 1.0 References: <20230313091425.1962708-1-maz@kernel.org> <20230313091425.1962708-2-maz@kernel.org> Message-ID: Subject: Re: [PATCH 1/2] KVM: arm64: Disable interrupts while walking userspace PTs From: Sean Christopherson To: David Matlack Cc: Marc Zyngier , kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu , Ard Biesheuvel , Will Deacon , Quentin Perret , stable@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230313_102114_180071_599F1C7D X-CRM114-Status: GOOD ( 24.31 ) 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 T24gTW9uLCBNYXIgMTMsIDIwMjMsIERhdmlkIE1hdGxhY2sgd3JvdGU6Cj4gT24gTW9uLCBNYXIg MTMsIDIwMjMgYXQgODo1M+KAr0FNIFNlYW4gQ2hyaXN0b3BoZXJzb24gPHNlYW5qY0Bnb29nbGUu Y29tPiB3cm90ZToKPiA+Cj4gPiArRGF2aWQKPiA+Cj4gPiBPbiBNb24sIE1hciAxMywgMjAyMywg TWFyYyBaeW5naWVyIHdyb3RlOgo+ID4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vbW11 LmMgYi9hcmNoL2FybTY0L2t2bS9tbXUuYwo+ID4gPiBpbmRleCA3MTEzNTg3MjIyZmYuLmQ3Yjhi MjU5NDJkZiAxMDA2NDQKPiA+ID4gLS0tIGEvYXJjaC9hcm02NC9rdm0vbW11LmMKPiA+ID4gKysr IGIvYXJjaC9hcm02NC9rdm0vbW11LmMKPiA+ID4gQEAgLTY2NiwxNCArNjY2LDIzIEBAIHN0YXRp YyBpbnQgZ2V0X3VzZXJfbWFwcGluZ19zaXplKHN0cnVjdCBrdm0gKmt2bSwgdTY0IGFkZHIpCj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTkZJR19QR1RBQkxFX0xFVkVM UyksCj4gPiA+ICAgICAgICAgICAgICAgLm1tX29wcyAgICAgICAgID0gJmt2bV91c2VyX21tX29w cywKPiA+ID4gICAgICAgfTsKPiA+ID4gKyAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ID4g ICAgICAga3ZtX3B0ZV90IHB0ZSA9IDA7ICAgICAgLyogS2VlcCBHQ0MgcXVpZXQuLi4gKi8KPiA+ ID4gICAgICAgdTMyIGxldmVsID0gfjA7Cj4gPiA+ICAgICAgIGludCByZXQ7Cj4gPiA+Cj4gPiA+ ICsgICAgIC8qCj4gPiA+ICsgICAgICAqIERpc2FibGUgSVJRcyBzbyB0aGF0IHdlIGhhemFyZCBh Z2FpbnN0IGEgY29uY3VycmVudAo+ID4gPiArICAgICAgKiB0ZWFyZG93biBvZiB0aGUgdXNlcnNw YWNlIHBhZ2UgdGFibGVzICh3aGljaCByZWxpZXMgb24KPiA+ID4gKyAgICAgICogSVBJLWluZyB0 aHJlYWRzKS4KPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIGxvY2FsX2lycV9zYXZlKGZsYWdz KTsKPiA+ID4gICAgICAgcmV0ID0ga3ZtX3BndGFibGVfZ2V0X2xlYWYoJnBndCwgYWRkciwgJnB0 ZSwgJmxldmVsKTsKPiA+ID4gLSAgICAgVk1fQlVHX09OKHJldCk7Cj4gPiA+IC0gICAgIFZNX0JV R19PTihsZXZlbCA+PSBLVk1fUEdUQUJMRV9NQVhfTEVWRUxTKTsKPiA+ID4gLSAgICAgVk1fQlVH X09OKCEocHRlICYgUFRFX1ZBTElEKSk7Cj4gPiA+ICsgICAgIGxvY2FsX2lycV9yZXN0b3JlKGZs YWdzKTsKPiA+ID4gKwo+ID4gPiArICAgICAvKiBPb3BzLCB0aGUgdXNlcnNwYWNlIFBUcyBhcmUg Z29uZS4uLiAqLwo+ID4gPiArICAgICBpZiAocmV0IHx8IGxldmVsID49IEtWTV9QR1RBQkxFX01B WF9MRVZFTFMgfHwgIShwdGUgJiBQVEVfVkFMSUQpKQo+ID4gPiArICAgICAgICAgICAgIHJldHVy biAtRUZBVUxUOwo+ID4KPiA+IEkgZG9uJ3QgdGhpbmsgdGhpcyBzaG91bGQgcmV0dXJuIC1FRkFV TFQgYWxsIHRoZSB3YXkgb3V0IHRvIHVzZXJzcGFjZS4gIFVubGVzcwo+ID4gYXJtNjQgZGlmZmVy cyBmcm9tIHg4NiBpbiB0ZXJtcyBvZiBob3cgdGhlIHVzZXJzcGFjZSBwYWdlIHRhYmxlcyBhcmUg bWFuYWdlZCwgbm90Cj4gPiBoYXZpbmcgYSB2YWxpZCB0cmFuc2xhdGlvbiBfcmlnaHQgbm93XyBk b2Vzbid0IG1lYW4gdGhhdCBvbmUgY2FuJ3QgYmUgY3JlYXRlZCBpbgo+ID4gdGhlIGZ1dHVyZSwg ZS5nLiBieSB3YXkgb2YgYSBzdWJzZXF1ZW50IGh2YV90b19wZm4oKS4KPiA+Cj4gPiBGV0lXLCB0 aGUgYXBwcm9hY2ggeDg2IHRha2VzIGlzIHRvIGluc3RhbGwgYSA0S2lCIChzbWFsbGVzdCBncmFu dWFsZSkgdHJhbnNsYXRpb24sCj4gCj4gSWYgSSdtIHJlYWRpbmcgdGhlIEFSTSBjb2RlIGNvcnJl Y3RseSwgcmV0dXJuaW5nIC1FRkFVTFQgaGVyZSB3aWxsCj4gaGF2ZSB0aGF0IGVmZmVjdC4gZ2V0 X3VzZXJfbWFwcGluZ19zaXplKCkgaXMgb25seSBjYWxsZWQgYnkKPiB0cmFuc3BhcmVudF9odWdl cGFnZV9hZGp1c3QoKSB3aGljaCByZXR1cm5zIFBBR0VfU0laRSBpZgo+IGdldF91c2VyX21hcHBp bmdfc2l6ZSgpIHJldHVybnMgYW55dGhpbmcgbGVzcyB0aGFuIFBNRF9TSVpFLgoKTm8sIHRoaXMg cGF0Y2ggYWRkcwoKKyAgICAgICAgICAgICAgIGludCBzeiA9IGdldF91c2VyX21hcHBpbmdfc2l6 ZShrdm0sIGh2YSk7CisKKyAgICAgICAgICAgICAgIGlmIChzeiA8IDApCisgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBzejsKKworICAgICAgICAgICAgICAgaWYgKHN6IDwgUE1EX1NJWkUp CisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQQUdFX1NJWkU7CisKCmFuZCAKCiAgICAg ICAgICAgICAgICAgICAgICAgIHZtYV9wYWdlc2l6ZSA9IHRyYW5zcGFyZW50X2h1Z2VwYWdlX2Fk anVzdChrdm0sIG1lbXNsb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodmEsICZwZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmF1bHRf aXBhKTsKKworICAgICAgICAgICAgICAgaWYgKHZtYV9wYWdlc2l6ZSA8IDApIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0ID0gdm1hX3BhZ2VzaXplOworICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIG91dF91bmxvY2s7CisgICAgICAgICAgICAgICB9CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==