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 69CD9C19F32 for ; Thu, 6 Mar 2025 00:02:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B6BE6280003; Wed, 5 Mar 2025 19:02:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B1A2B280002; Wed, 5 Mar 2025 19:02:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9BAF9280003; Wed, 5 Mar 2025 19:02:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7F7AC280002 for ; Wed, 5 Mar 2025 19:02:01 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 419FEB77BC for ; Thu, 6 Mar 2025 00:02:02 +0000 (UTC) X-FDA: 83189173284.26.833421E Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by imf03.hostedemail.com (Postfix) with ESMTP id 7CDD920014 for ; Thu, 6 Mar 2025 00:02:00 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="Ov6QTn/2"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of 39-XIZwsKCCwIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=39-XIZwsKCCwIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741219320; 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: in-reply-to:in-reply-to:references:dkim-signature; bh=56oJ12Bp4zx+P97DlMZ4Tn8DtYif33Fhe6HEZDkqc4g=; b=PcZo46KwO3BNXCjuog3jhjo6Ab0kqI8pcywyXzf7j8AEErH6+lfPZYN9TeY1aqmr83MqAg 5uEkkXWgXB6HdWPtJBYXcE6nQky8u4M5VqiHvAFuYl+yOE0tIQZhJVuFk0yHUela0dMWXw wpH8ydWnQcSV01vELrtBmjQdPsixuI0= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="Ov6QTn/2"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of 39-XIZwsKCCwIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=39-XIZwsKCCwIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741219320; a=rsa-sha256; cv=none; b=AggLS2FblV4hI1Hwd0Erb6qwn3ZvmKjKhS9od/C2y6SjntvYFEu7dltyzIK4EsH+TClIxw Ppf86cQG+4LZBuHZ7QENtCqIWLnXIKJprIq2FQfzYVWBigUCv1xq7lpNWUACqr6lnytlgp x5i8wzt2W/ZgIlUa0bWvkXzfIpQUhto= Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-223725a1e76so933965ad.0 for ; Wed, 05 Mar 2025 16:02:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741219319; x=1741824119; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date:from:to :cc:subject:date:message-id:reply-to; bh=56oJ12Bp4zx+P97DlMZ4Tn8DtYif33Fhe6HEZDkqc4g=; b=Ov6QTn/2TdN+vfwSEMDRg/0fi2EBZXuIw0V5OsUmEITh9SDT0dGq+cj/KO7ZVtwgN0 M3jhAgMe+lAFIKnv4uj/hRauy6ihkWiWJcYqPlinvEW1UMqAjqt6vbPXXzWmwlEauq4N j3G1gfgDrXufXxTWei/ZjhzNDaj1FIIATWZUcoAS3yh8cHiHAH2eYAleTJxhIXiollCf mSB8/WuoXTkt8tFM62ZDQpCyvUfaUW3LkT6xv56dgZ7Xs5QcbuYAeJYwLV8z6AWpGqFi puakAgTXcQOCRdpMkOasbRy3hyiKRfF82izF3NVeSlIPZkw1G8tte8ZCHHQ1Ed+WyB07 fRbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741219319; x=1741824119; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=56oJ12Bp4zx+P97DlMZ4Tn8DtYif33Fhe6HEZDkqc4g=; b=HG/1pHd7/t24dAR07Bf156xCK+70XuSjw4f/oFd1oETFwHOixa4PgO8B2kBWDEDvSW Ylk0ZrYYap5z/ZOi1Z9FJ/2OxUvGK7IpkoL2vx0EmoSMqfSHeNeOF/MBR7jjmgoyupzm dOVa0XN2S6wF4097GSI+G/NX/UARMfEzxmG1hhciPp0C70w604ep1hFgcQx7DK4gujJV 0UbfsHl63WKwHkvvW7CNJz7aN2O/1gVmoz2vMLCPxY0dWdJRk4aiSRWfNm7Ts333guxg Hv1nFt80V/7QB3abAUMvtcDA4+dllibzSFB5oNZeM0ohZ+D1mKjpdkal7QKl4fLEShvf mEvg== X-Forwarded-Encrypted: i=1; AJvYcCWMBEMiFM6UQWyf0vq3US4bWDL5/4FsPNPq9DIrP09gScmSEWX+Jpf89/Y/DHReqBeqCqibsS3JYQ==@kvack.org X-Gm-Message-State: AOJu0YzTh1EZMgApL1T9Vg/gii+cNV/F+M6e+bQdpBzDNah0x7prmFwQ iodWkvqWcZtRaaXcVPIVJm7fS7dLj4YJ6oYtx8LWocUpZ7wY7dEsaW2qdZNrV5O1x568QvbpoSJ a/TI5LHiZeZcXSOFJKGgJog== X-Google-Smtp-Source: AGHT+IEjpOP/Wjl0soyGnkaTnhki4yqOQAJMvMYNKzU+1gICchyohzEwQvzUEmiM/rlr5qBvpAcs/G+6lcFLOH+FSQ== X-Received: from plbmq6.prod.google.com ([2002:a17:902:fd46:b0:220:ddee:5ee]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:d50a:b0:224:1001:6787 with SMTP id d9443c01a7336-22410016aaamr1718525ad.4.1741219319186; Wed, 05 Mar 2025 16:01:59 -0800 (PST) Date: Thu, 06 Mar 2025 00:01:57 +0000 In-Reply-To: <20250303171013.3548775-4-tabba@google.com> (message from Fuad Tabba on Mon, 3 Mar 2025 17:10:07 +0000) Mime-Version: 1.0 Message-ID: Subject: Re: [PATCH v5 3/9] KVM: guest_memfd: Allow host to map guest_memfd() pages From: Ackerley Tng 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, mail@maciej.szmigiero.name, david@redhat.com, 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, tabba@google.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 7CDD920014 X-Rspam-User: X-Stat-Signature: g1tnymba7j6bgap3abzquwt6eimmd78f X-HE-Tag: 1741219320-727090 X-HE-Meta: U2FsdGVkX18OvapLFy4l88kQN/Gz4StjWxu3ia1X0desh6FnM2C6sjHdd2pjgjevYkkrRcbYWZ/QvSlR4e6mWuqsqxyhOcUmfUyMs+RfRQbFwME6NNN5XE0pQKbI3ipetAXVkvQr+lrDDYqdlz2alRY3ucUjVhwpavQeFpD8j5pkfVxrSN0tcCBbtJmmAjNe7tS6CL7KeTIQ09p+FuL7nNRHhF6Abp87NBmhekQVIAVAg8TC+7nbYueRpl/t36ylHZcwqXmT0LOF0HcMj+Thxq7om4VHIi3tvJVGdAYPd48XE0cTW8Dpuq7CGT1ylgAT0FdoL8QAeerWG6RFdQB0AIzy6kUObe9PbGhIRoTwMNx/wI2qq5eWfihiJmHe/pS3NSda3C2pCJRUyQxNEOACuaG6wkMWLM81/O1LhlbHbua8GcpMrMIzyCu3bpW2eWj4RLF5Y392ttQbrgnlaqnuvvqc1a2RGKlCVy5FDXB5A9ZCNu/j3Enl4Zv9FcZUENiadaP6mxjFtKNEzNOVM+TNpSm1ojUj3CT6AjaNG2pIhKwEJC9WOwrqq/ot1Iyg9IeRQE7U8C77/7FKigSFlQhB2BJMJ+ghdiz1lexZoaKg8C9Ceu3JavKHVD8iPWapW5bodTNhu45xo+rZnGt6TLRk0j861KeBXo8AVk5d9hNl9gQEYt9xrynPHxif3fID5M5tJG4nWk2IAgBOQBF72JkvA87n3JoVuezpv2CUmhYPyTzDlcJcidIwGIyo0UDvbwhUeuHHNVpVa5ZRlUCXifyQzyf7PZIFP9lXb0ovh9Rh7uDogzvvEz9lmIzAjPkxHFM8VyXz4pjV4KmjtF91Hn77DtwkuxuCgc2FxpCNJQIXH/SSiftLzcKboPtaCuqHRuQkC+bClWPoQKOxyYBXWZ48WKE9YFbg03K9i0mtsQ7mUl+crBmXF8Su9RsCcGRSpkmuo9u2wbV1IqJQuJHrM20 IC3sGUbu 4U3K/MgsNvV+t0bn06M28x0QI4inF6uvJg8DG1/TAWpcXuFzK8Wmbes2GRwG9PrjmNfiHUG1b3XtM0mEyuWFMTEE+ATneXw2BnjjGCJT+EG3I/Os2O9H/sTDvOFVJCivzaKrCJ5wMIgCRmTJc4LRA8c5gZxPahVo6oSnV8XyI3DWzXqrjNtjLTjEzRENa/ehJ1Fkm841FgjeOmEbSNZ7IGZ/ZAR/JnzYgniwNUEPZ8RQYLHLau7T1Jd3/298Y7BMaqxymIzRxYpJAjKKggOzXXGJT7vICmWGcK8KWWo024bPBQ8n6oc8N1KHtJ82dhdMfcp2raW0vTLGwpxECrFS+sIerhdWzKszLM3Q946eAkQNp7qKffPec4Ef90fg39S/FFw6EKuoFmROk/Z1tNcN4hXJLEVf7pbK8dLSrUtmAFl5bzZvH3SJa1MIbFUVsz2ZngtCaOf1Hg+eqOFOncCawLN1S8ZXx9DNq/QL0SJEAAK8AqeplPz6PwBOSqd71kc/VijoDOW7flRwVpA92dTiuhsOGbort5J6YzHB6AWTCctrqU71fIjVZmu6YhGMirq5YLfJwgwwgNnECGtgtVP+9+8herLYe5kzoecLf8/me0YqjkBUx0mdhxIfqlVemNKkeRhzIpmiJCaHzPwDkALkp54E85aWlT4WO/G8Jlv7/oQjbyQcCUbUscXh+d7lrGDblEIHsdKvndoAaI0M= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000004, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Fuad Tabba writes: > > > +static vm_fault_t kvm_gmem_fault(struct vm_fault *vmf) > +{ > + struct inode *inode = file_inode(vmf->vma->vm_file); > + struct folio *folio; > + vm_fault_t ret = VM_FAULT_LOCKED; > + > + filemap_invalidate_lock_shared(inode->i_mapping); > + > + folio = kvm_gmem_get_folio(inode, vmf->pgoff); > + if (IS_ERR(folio)) { > + switch (PTR_ERR(folio)) { > + case -EAGAIN: > + ret = VM_FAULT_RETRY; > + break; > + case -ENOMEM: > + ret = VM_FAULT_OOM; > + break; > + default: > + ret = VM_FAULT_SIGBUS; > + break; > + } > + goto out_filemap; > + } > + > + if (folio_test_hwpoison(folio)) { > + ret = VM_FAULT_HWPOISON; > + goto out_folio; > + } > + > + /* Must be called with folio lock held, i.e., after kvm_gmem_get_folio() */ > + if (!kvm_gmem_offset_is_shared(vmf->vma->vm_file, vmf->pgoff)) { > + ret = VM_FAULT_SIGBUS; > + goto out_folio; > + } > + > + /* > + * Only private folios are marked as "guestmem" so far, and we never > + * expect private folios at this point. > + */ I think this is not quite accurate. Based on my understanding and kvm_gmem_handle_folio_put() in this other patch [1], only pages *in transition* from shared to private state are marked "guestmem", although it is true that no private folios or folios marked guestmem are expected here. > + if (WARN_ON_ONCE(folio_test_guestmem(folio))) { > + ret = VM_FAULT_SIGBUS; > + goto out_folio; > + } > + > + /* No support for huge pages. */ > + if (WARN_ON_ONCE(folio_test_large(folio))) { > + ret = VM_FAULT_SIGBUS; > + goto out_folio; > + } > + > + if (!folio_test_uptodate(folio)) { > + clear_highpage(folio_page(folio, 0)); > + kvm_gmem_mark_prepared(folio); > + } > + > + vmf->page = folio_file_page(folio, vmf->pgoff); > + > +out_folio: > + if (ret != VM_FAULT_LOCKED) { > + folio_unlock(folio); > + folio_put(folio); > + } > + > +out_filemap: > + filemap_invalidate_unlock_shared(inode->i_mapping); > + > + return ret; > +} > > [1] https://lore.kernel.org/all/20250117163001.2326672-7-tabba@google.com/