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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3846C5B549 for ; Wed, 4 Jun 2025 13:34:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B0F06B052B; Wed, 4 Jun 2025 09:34:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 288606B052D; Wed, 4 Jun 2025 09:34:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 178FB6B052E; Wed, 4 Jun 2025 09:34:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id EE40E6B052B for ; Wed, 4 Jun 2025 09:34:02 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 925981415F5 for ; Wed, 4 Jun 2025 13:34:02 +0000 (UTC) X-FDA: 83517811524.17.1C0A1D4 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 20EE714000A for ; Wed, 4 Jun 2025 13:33:59 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="EAtXbRy/"; spf=pass (imf09.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749044040; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=400pLR7sGtY1MX0d40R9pVg91ODX78Y5o3a7UpInxi8=; b=B3993n1RYwZWw6HiqiQcDBwbdwMNC+u53VWxP+ekG9SgWj6xZX5EdMrOLuBucALvjqppq1 lMopK/88s/ALCxxP42gv7UE5UxMH9zeeuGzjUjLPV100aldjey9QRH1bz1wJBbyzNnTdSl /yMowWYmRI+9lvBXXYahpBG+G9Gvkgo= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="EAtXbRy/"; spf=pass (imf09.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749044040; a=rsa-sha256; cv=none; b=YJnBaJufhZEM6VWtYgAQEQFOR6s6IyHXcNDTfBE9Ry1T6nmmaOqWa1DBEkvbHc/gy9/wKT VnwBRRR2le07FdaPErc8C3DoCQAq2Prm7CBDA92ZE2mZd5uz/hX8Ey3/H2oTF356jWJCbz 7HXMdG9ZcQKl4unq9bzSP6ykWbWY7tg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749044039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=400pLR7sGtY1MX0d40R9pVg91ODX78Y5o3a7UpInxi8=; b=EAtXbRy/3XrqCxKVwbmz/dk2ZA9XDDrPrfCUKKgG+zYXrm7LJ6ux7/U4nLtl6blS5jI04I THoareJAbxWJzbRUWTAXxQjCjjHOcqO3DlhNvZMef+DQvMrjoJbxcLvPbcy/oNP9XroP5E gl7JXCqXsxlucQqCyTF2vCZk6Z8KH5s= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-208-aqh4oOHPPOa4nqTNmkEokA-1; Wed, 04 Jun 2025 09:33:58 -0400 X-MC-Unique: aqh4oOHPPOa4nqTNmkEokA-1 X-Mimecast-MFC-AGG-ID: aqh4oOHPPOa4nqTNmkEokA_1749044037 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-3a4f8fd1847so2130460f8f.1 for ; Wed, 04 Jun 2025 06:33:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749044037; x=1749648837; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from:references:cc:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=400pLR7sGtY1MX0d40R9pVg91ODX78Y5o3a7UpInxi8=; b=q5bLw6sVAZLeguqWlg46PNo/dhAaRf40X/TDy9IkPFKOcu/mexZugG7eD7Bx7Xvxg4 C8zodkQmRZSYx2iA6aCt0zgSjttAM2o4L+SckS46DVULv/sAcFYIPtSP2bWL3VcD+9vc kKy/uVHDi5hqfNMXTEXaxi8RX9n+Kcaf8ZGB10awhjml4ZQCjRDhuH7v9iaxUZrJbmly GisGj7on82ka4em/ZKNqWS65IK/4B5vRjvlzCle9gM2EWa1IGuxZaiwPlPWp8tXvWbVn BLgKIyYeH83se2O6cIbqnJUo/25UfQw7EGBW9u19cswsw5FmM2TKO0yGyvpKN6AW0E6J 10RA== X-Forwarded-Encrypted: i=1; AJvYcCXAbNTgVMeXE8kZTVaY0P+Xi8XDPTEJsi66bNRdYqxVx/KGH40ndIjC7wSVKQN2DKxaNnzZtzB7mg==@kvack.org X-Gm-Message-State: AOJu0Yy2YfCvoSsCaweu/aVZxMSJh/7bY255CdmH29gAJvUr/6257FVZ VSrReB2eItcPvx969Vg+LNIERi4irRguh0UNs7Z8TDXIo+Al8125hjePDQX1HeaPlFh1AdGcr89 UatXKPtqJPOupNz1vcEcoqFgrf5kTmFtJMVNiVLeSvPZcgeNim6Dt X-Gm-Gg: ASbGnctlwKqXXds1JKyAjz/EFeGfCmq/GCujVORXDrx5/BPgJYNDQL/gLrc8seK7ghr oaW18Gs2j2p4pAYf4xB89MdJO3XQc9psEMe7y+znzEI2TOwl3+buaVFcJZYCvPuVuPqrayHnPzD JHpVncSc07hN6QGPeL60FdPWfo5Hg+P3AJ6s5HlCUwr0rCke8zvnPX/oUy67mo6UQ1IXUtuLux2 aNqFxRBVba/jI9g56L3AAJ9um8VJzE4x9NM0AyaqDvyO3l9RNhmVWAzJs2vrLqd224NauMJMxy9 6SsfO0QrU7CCdl7IOMK/OFJX1JZghTQGRWQyXIskT3aH/77RNqXApXuvUk5YJ0dYTGieQWgUaXI YoAuCvqi6BmZ93Z3FsbVdf315VzHG74B7fQu3gVU= X-Received: by 2002:a05:6000:2903:b0:3a5:42:b17b with SMTP id ffacd0b85a97d-3a51d9581d4mr2362984f8f.29.1749044036626; Wed, 04 Jun 2025 06:33:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFINzTGjEn+KLVLmOlHfn5DZd0VArTwO1Fk+EQL/M6YEeApuu3Yl+w27J2Vk3WzoGqQXJWtxQ== X-Received: by 2002:a05:6000:2903:b0:3a5:42:b17b with SMTP id ffacd0b85a97d-3a51d9581d4mr2362954f8f.29.1749044036127; Wed, 04 Jun 2025 06:33:56 -0700 (PDT) Received: from ?IPV6:2003:d8:2f1b:b800:6fdb:1af2:4fbd:1fdf? (p200300d82f1bb8006fdb1af24fbd1fdf.dip0.t-ipconnect.de. [2003:d8:2f1b:b800:6fdb:1af2:4fbd:1fdf]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a4efe6cd15sm22130665f8f.39.2025.06.04.06.33.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Jun 2025 06:33:55 -0700 (PDT) Message-ID: <61511663-ec0f-4f08-b918-9676661a8c4f@redhat.com> Date: Wed, 4 Jun 2025 15:33:53 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v10 13/16] KVM: arm64: Handle guest_memfd-backed guest page faults To: Fuad Tabba Cc: kvm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mm@kvack.org, pbonzini@redhat.com, chenhuacai@kernel.org, mpe@ellerman.id.au, anup@brainfault.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, seanjc@google.com, viro@zeniv.linux.org.uk, brauner@kernel.org, willy@infradead.org, akpm@linux-foundation.org, xiaoyao.li@intel.com, yilun.xu@intel.com, chao.p.peng@linux.intel.com, jarkko@kernel.org, amoorthy@google.com, dmatlack@google.com, isaku.yamahata@intel.com, mic@digikod.net, vbabka@suse.cz, vannapurve@google.com, ackerleytng@google.com, mail@maciej.szmigiero.name, michael.roth@amd.com, wei.w.wang@intel.com, liam.merwick@oracle.com, isaku.yamahata@gmail.com, kirill.shutemov@linux.intel.com, suzuki.poulose@arm.com, steven.price@arm.com, quic_eberman@quicinc.com, quic_mnalajal@quicinc.com, quic_tsoni@quicinc.com, quic_svaddagi@quicinc.com, quic_cvanscha@quicinc.com, quic_pderrin@quicinc.com, quic_pheragu@quicinc.com, catalin.marinas@arm.com, james.morse@arm.com, yuzenghui@huawei.com, oliver.upton@linux.dev, maz@kernel.org, will@kernel.org, qperret@google.com, keirf@google.com, roypat@amazon.co.uk, shuah@kernel.org, hch@infradead.org, jgg@nvidia.com, rientjes@google.com, jhubbard@nvidia.com, fvdl@google.com, hughd@google.com, jthoughton@google.com, peterx@redhat.com, pankaj.gupta@amd.com, ira.weiny@intel.com References: <20250527180245.1413463-1-tabba@google.com> <20250527180245.1413463-14-tabba@google.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bAN23WeUeIrWPitsdf1NnHg1jDr2X0cx9XlD9LLb7G0_1749044037 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 20EE714000A X-Stat-Signature: 7b384pc3b1ubxkwbaww3rn5ogtwy9m4n X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1749044039-335577 X-HE-Meta: U2FsdGVkX18QirmDFpPIy1AVTB/KXF5bh9Gwl3jgOheXqzKhfcxkodGCXeVPSSQGo0O933o9FwpmsNEPKZUjKGHhqKjKVHdXxFxpnybt+l4PwYIWJQBZVGg4S8liM+vYlae1RHZDDCSaeOudht0mm8c8X0Y6cKWjatYZWzFad2N3SnSU7ELNQhsMN4Lj11NBHatECOpkKg5agL4ixLxhc5oEZuJvDI1jq161WK94KLXWZxj8TfbQz0T4rSoAGPzX9nZYAl+Mm+M/2dzeZZQBwPmhMVsaR00dmnsWfunBfMhv+6h5bdInrGuf2m8IZAghyTCifckGduHoI+B3ug4MVvOgOUIHzaI2p2SpXf5mCJNPIqgJnBNumo9gbxr/OZ2uAqKsnlMhAvcB1GlId3AFyFd3j8J+sgACMDUZzbJPj9WYnvWO4URo1TvKwMvqJoGxRg9Vmj4X6PIFcZ2hOm4nVRZbA4KT1C8uGytgeqQlQekXBH/G0FtZkPGapz2v1776C/gCxSWwDPaV/VOnRqQbeEfAa9ec/zzSRGhlWGK+NAb4jpAhKMcoO2jua6guqlH9OYzuth0YxkV9W3/fqDW2QFGib3qgYe12tyx45XAbN1e7FAJiO/RDmBw9SG64+HchEZQ4HbMulqXdmrNQhIjFFfMhtOQON5g1NMM9hixvSQ3k3C9y+fW6mQJy2DzTxrhxhx2LfwTkk2eqvf3C7oyXLWqkMRp0cEq3iEvQwAufXjv9t2mbazykz6qmlIDGKAbCOIESuJ8w4AQ11GNgTbvhCXzXEAI/KQvHMiNZ3EGFAJUZg07jZ3qC66B9HsXhmo9b2LmR/dyjNrWrWIm+z1+yP9u1ZUNrFoV1NtLgqrni0LCC1qcdWct7JjpEqqu7IPyNa+saJW5G/BiJUHbLHK2rocOh1q+0vaY/uidzs+VISBvzISsjyFPXATQl6gxkje0GE2sMoHZLMZpDfUq4UuO 1IURvLQF LxzSXvNUE4bnrPvzs+hL58Uc4ZVUJjfRGNLiAzPVG/CuTjZXMkgcoTamWpkxQJ4o1sZolTAp4+7RobJWotFWMWroSbgd6Oa7yGrH/6LbqqpHfeVHsQOb1A+T1V+5MnYTlR2QZJXkG5mNHD+u9rTeNYmwiksLQFz/3i8VtZS2rZeBE5j2ey6QhzWvUpLeY7yFhfEVsum9/JI9s+s11htysmopXEw2xgUGTzwigYSvPg/YJe9ktMgmcUiQDffRtDUjLjA0SGvTeoVRzvPkkiF3ide6bkCRuZQ5hz+bzkWe0odyC92OZNgG74CH+662iiqRifL7YQV8jF1uJfDuZQtZTbBz8/xCe94b8B7nWdqsKL4cgFXRXvH4Cav8AyhfC6hZ5mTKE2i66ZW+uO2jYdvy/LiNw1ULDaRwdPfAAZxJCx5UySSW99jkIx6yv4P6yaVwMP0YobuoK7wbBhCgTw3VXO0fuRssKawFKfznnQffj9sy4rNt1zlEt/NO6apEGchH2NDAysAPwnb3U8UTP+BbEnYtL/s8oWm8jlAOtnKGgILun9q+0sGAgO2YHYIcGMqkUDk/uneuNp+rqCX9rb1+HcnNtYl/qGotz1LemPSxynLIpRKUj2Ix3nCiLJw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 04.06.25 15:30, Fuad Tabba wrote: > Hi David > > On Wed, 4 Jun 2025 at 14:17, David Hildenbrand wrote: >> >> On 27.05.25 20:02, Fuad Tabba wrote: >>> Add arm64 support for handling guest page faults on guest_memfd backed >>> memslots. Until guest_memfd supports huge pages, the fault granule is >>> restricted to PAGE_SIZE. >>> >>> Signed-off-by: Fuad Tabba >>> >>> --- >>> >>> Note: This patch introduces a new function, gmem_abort() rather than >>> previous attempts at trying to expand user_mem_abort(). This is because >>> there are many differences in how faults are handled when backed by >>> guest_memfd vs regular memslots with anonymous memory, e.g., lack of >>> VMA, and for now, lack of huge page support for guest_memfd. The >>> function user_mem_abort() is already big and unwieldly, adding more >>> complexity to it made things more difficult to understand. >>> >>> Once larger page size support is added to guest_memfd, we could factor >>> out the common code between these two functions. >>> >>> --- >>> arch/arm64/kvm/mmu.c | 89 +++++++++++++++++++++++++++++++++++++++++++- >>> 1 file changed, 87 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c >>> index 9865ada04a81..896c56683d88 100644 >>> --- a/arch/arm64/kvm/mmu.c >>> +++ b/arch/arm64/kvm/mmu.c >>> @@ -1466,6 +1466,87 @@ static bool kvm_vma_mte_allowed(struct vm_area_struct *vma) >>> return vma->vm_flags & VM_MTE_ALLOWED; >>> } >>> >>> +static int gmem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, >>> + struct kvm_memory_slot *memslot, bool is_perm) >> >> TBH, I have no idea why the existing function is called "_abort". I am >> sure there is a good reason :) >> > > The reason is ARM. They're called "memory aborts", see D8.15 Memory > aborts in the ARM ARM: > > https://developer.arm.com/documentation/ddi0487/latest/ > > Warning: PDF is 100mb+ with almost 15k pages :) > >>> +{ >>> + enum kvm_pgtable_walk_flags flags = KVM_PGTABLE_WALK_HANDLE_FAULT | KVM_PGTABLE_WALK_SHARED; >>> + enum kvm_pgtable_prot prot = KVM_PGTABLE_PROT_R; >>> + bool logging, write_fault, exec_fault, writable; >>> + struct kvm_pgtable *pgt; >>> + struct page *page; >>> + struct kvm *kvm; >>> + void *memcache; >>> + kvm_pfn_t pfn; >>> + gfn_t gfn; >>> + int ret; >>> + >>> + if (!is_perm) { >>> + int min_pages = kvm_mmu_cache_min_pages(vcpu->arch.hw_mmu); >>> + >>> + if (!is_protected_kvm_enabled()) { >>> + memcache = &vcpu->arch.mmu_page_cache; >>> + ret = kvm_mmu_topup_memory_cache(memcache, min_pages); >>> + } else { >>> + memcache = &vcpu->arch.pkvm_memcache; >>> + ret = topup_hyp_memcache(memcache, min_pages); >>> + } >>> + if (ret) >>> + return ret; >>> + } >>> + >>> + kvm = vcpu->kvm; >>> + gfn = fault_ipa >> PAGE_SHIFT; >> >> These two can be initialized directly above. >> > > I was trying to go with reverse christmas tree order of declarations, > but I'll do that. Can still do that, no? vcpu and fault_ipa are input parameters, so no dependency between them. > >>> + >>> + logging = memslot_is_logging(memslot); >>> + write_fault = kvm_is_write_fault(vcpu); >>> + exec_fault = kvm_vcpu_trap_is_exec_fault(vcpu); >> > + VM_BUG_ON(write_fault && exec_fault); >> >> No VM_BUG_ON please. >> >> VM_WARN_ON_ONCE() maybe. Or just handle it along the "Unexpected L2 read >> permission error" below cleanly. > > I'm following the same pattern as the existing user_mem_abort(), but > I'll change it. Yeah, there are a lot of BUG_ON thingies that should be reworked. -- Cheers, David / dhildenb