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 2D166C282D1 for ; Thu, 6 Mar 2025 08:49:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 86A556B0083; Thu, 6 Mar 2025 03:49:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 816A56B0085; Thu, 6 Mar 2025 03:49:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6DF146B0088; Thu, 6 Mar 2025 03:49:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 51F246B0083 for ; Thu, 6 Mar 2025 03:49:20 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id CB3395693E for ; Thu, 6 Mar 2025 08:49:21 +0000 (UTC) X-FDA: 83190502122.23.A0AA472 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf15.hostedemail.com (Postfix) with ESMTP id 060A4A0009 for ; Thu, 6 Mar 2025 08:49:19 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=mC9hU4i4; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of tabba@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741250960; a=rsa-sha256; cv=none; b=4+mhmZPmelXVuKRCdkMmJjwbG/gblUFDOGy8POZkLe7+SvAjM2x39tJO0+thp2YdEA43fX XATWHMu1J1iKKYIOKbrMCcRbymb+e1UILzQ/NUDtK7tSKRrqXKtKD6bdjjAruoXbgGRwAw UhziLTcyHLu/cXDc4UfGHqlIwgRS2cI= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=mC9hU4i4; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf15.hostedemail.com: domain of tabba@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741250960; 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:references:dkim-signature; bh=YaJ5imc2Ngyr8E9KKVZNLqQ9tGVAPYT9wXbjUhwizE8=; b=DUiSty3PmTOHkbhV+7HeFn/FjaR4FQmToh5HMaLxacdUbB54+sfSH/z2XgftzBiaQW6GJe lD9CpZWIg51swOwQQR53yh0R6AUiklpNH8k0o7TdHeQDoyMMivOj0z6QhWQ3TusKDItssU 6YWbI2tY9WkCJyrM7wb5lNPAP8MCPOQ= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-4750a85a0ddso146491cf.1 for ; Thu, 06 Mar 2025 00:49:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741250959; x=1741855759; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=YaJ5imc2Ngyr8E9KKVZNLqQ9tGVAPYT9wXbjUhwizE8=; b=mC9hU4i45G4RRlvFKlQSv9a/V/FmUBu1FZsNQo8A4YwYl49UigZEPKdGpLLU1BhkIm yWqx6INH3yOmBdbXf+6JW90TcApGhCaElScqHlQUtkdhF70iuB7wmym7WPm2+9HWff6V 8rhdxND4YxPg4NK8RKqGdAP9LNL8qWhgifZ02Q4cuLpcowOSZ5Lev/fY6qmakzWxKiRA umjBF6i9cqTLjBJLylHRqz7y2pmxkMVeozKUhSvHf3dH8evMFWtSYNbJzHgPl9mkbPsn M0pATslwU2qLsR44UjatKjbasm/wQEzOz2eNWCMj+eUvox+7BN3geMtXnwBmvAjPGo8j rFcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741250959; x=1741855759; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YaJ5imc2Ngyr8E9KKVZNLqQ9tGVAPYT9wXbjUhwizE8=; b=qmG6b2SMNcLUcT6qXal/qBMUG9jWBdTVFs83qR4cz77NKzabF2J/HqrE6UG+y55tuW CHswi6MDWW0DQZkDFq7EGp+38GcA788pQ+n/Ejd54k/o2yvLzKW6Nw6bv9x4mXi54xYy GFa0GDx4IROgcxRZgdFKI0uW4hyr/zSO0z0jt4dZeuRNL/Z0gKt0ZgnLuLF1bCaQVhZJ QzSBtabFV7YxmJgvW2RD4gD1oQwr45V37sQfvCXqsZxsZjTSIUtAy8tXV2ITkjvd6Ugw hydFtkPwC9ajdyaKQSOMB5JKWmKmgh74R8dbV6/XNR6tU8EClEcUq3l2DGDP2TPsMWuz Rh5w== X-Forwarded-Encrypted: i=1; AJvYcCV+NrUs/CAWWVFdr8H/f7q7fhJ+jPiAP7+slJrLMGB/ZEmC8vj5EhDyYkEqL57EDWTXH8YmbXPO3w==@kvack.org X-Gm-Message-State: AOJu0YxykhNovrkKRmd7g+bLuJPBRHm1+mYj9B/VHIfk5PhLWVgoFcRw 2j789MaK/z3npQnMp/3yGIp3Vwq3tveYu8+lKSVOJollywj1MXsVpx0cvrxqfa4a1MWCnZ+ZN2F 0cbB25xzfnflScoxLVqa/e4iwN8CNIhNS0xia X-Gm-Gg: ASbGnctHDy+lXePmLop9wD8HRnwOLauFR0H7RJiTRU9N6JUmmaATwGBrWEwweYO+w8p ELN3GP+SjIFzV1RbR6899Hk/nv0ibeB+jgXjeCthIoMrv7bx30XigLKrHxu7JzU2qjTtoH7am6o q/S0n9mAoYwkd1hlCpao9n7T0X X-Google-Smtp-Source: AGHT+IFVQ5+MnT7k0zC/yN7YRHNio4wgp4bB/nSw7B4UORXArvo/ohKiKOdEwTR0GaYylL+N9lYiPAGglmshKYyXfr0= X-Received: by 2002:a05:622a:11d6:b0:474:b32b:8387 with SMTP id d75a77b69052e-4751b019d48mr3161521cf.4.1741250958810; Thu, 06 Mar 2025 00:49:18 -0800 (PST) MIME-Version: 1.0 References: <20250303171013.3548775-4-tabba@google.com> In-Reply-To: From: Fuad Tabba Date: Thu, 6 Mar 2025 08:48:41 +0000 X-Gm-Features: AQ5f1JqHOa32gTN9SxcdVcOqUtRaTjP8QpQ0nQ6Rs8sRUeR-mnCOcOtr8-vKQjM Message-ID: Subject: Re: [PATCH v5 3/9] KVM: guest_memfd: Allow host to map guest_memfd() pages To: Ackerley Tng 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 Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 060A4A0009 X-Stat-Signature: mtziaxccxxgj6knzhcpnjjqaqjiidtku X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1741250959-547044 X-HE-Meta: U2FsdGVkX18ab5wfq6oLVMFYKkybDaq0fBXZezTeTQtLtf1xVjlYAFCyqJWHwu2hQZ7EedpebNU2/GrdchzW/jF0amA3vllO8doomVU0Q5bkM56yXzTGN613w8OgrqvWFvEARCL1+sKy9S09ozMFjm5GZg13dQdaSKQs5gPghNKDPemRX178EWj0+hsvlIiNWwJ9D8OwEPYbf6cEpffW0HrX6O6GiXgXuF8BH4wDkvZQ743kTAg7C94zB9zelYAH0Se9eDALCzzZ70O0l3outxIUTZCRLO+GxH4K0Nb09/8xpUpXqDrCqsXT5FGqvR5pvP1s7qM4oozG5HLSHzao1Zy8Fy/Xlhqvxk/EO+vXZGgSArC/fxxwgzbZXKNYcauwCjuJK8XirIxvwJQ/M/S3NwTsfBVKu25IrtUkPk/OJaey5az3pX7tNMjQZkfgmqtKjHfmqw/KIWL7VXvHRJSGfj8Kvi4B953YEOjt1/fKZ/mzS25LK/ve4oiuu3/4UUxx3zkw13ZUK6L+DKBOO1xvFExjdDgfYiuGHKKinkgoTad2gburrLrVf8bOxrzOq1mmsRacp9lOxzDH+f9qQws/q2Z5bcw6SPpa9EVpo4o8AaDrdFcRD2TfXrQt30Gqyz7ahJbdSwRGpurWjDrfJwf5++VuIfiRl4FGTTLkBaWNYteYO4WeZse+FZQ0lgvS+Kd22ht0a9YIHRiZCkhfjqIQrdUaJieNFsLsw7iqVnjTioqQcvOJ6kDpbHsrUjnv9tOM+B6Vj6tUuTRFMUVOiHZVshJ0WGMuHjuVRLLVqOwgAuJ3FJN2tNfsEu7iJ+To3GfpZjuetU6mQhv9A4M414Q0ayEpFs0IbGpv8K6DiCgjEwMa4wSWHPPMVd4/I/qZuvQl0ZeYVwFnBpFDC6qhonSbYLTjA0jWL2V1u24SdgJ3VWpYl656EF7qXxVLO9nkdDAinSwi8hJd1KCo7E2haK9 vH+VIOjp 4BDjYeDiEaAGehhjNWsRdmlnpSdZsUSJ3pBn42nlXDsGLVIeSkZeUijefp4DzWhij2P9rauthxpSr7dSzHrexLhAKZLDhVI0h5C3YRksSJ3k03RcY4pu5WJVhF4O8mzw+pb2uKaAQq0FzT6lLU3KqtaqIdOSln5yv1GAR0PV61ePlRqG/pfCyf5EU6K3fUok9Knh2dOf/pevj6JUFiWNJ8ivH7OKQE5xDgsA46xmoxKsADD/a+sSEkk0idK12CdZgz/wdvzAqj9p+T26nRENoD0KHA7RFGPb5M+Eh/HbY9qBLbZOvjEtx2J7blpSVgGjs4MF7U/FMIPKWj03p4W+oG6bZHMwh98zg0+zV4YAila7969E= X-Bogosity: Ham, tests=bogofilter, spamicity=0.001113, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Ackerley, On Thu, 6 Mar 2025 at 00:02, Ackerley Tng wrote: > > 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. Technically, pages in transition are private as far as the host is concerned. This doesn't say that _all_ private pages are marked as guestmem. It says that only private pages are marked as guestmem. It could be private and _not_ be marked as guestmem :) I probably should rephrase something along the lines of, "no shared folios would be marked as guestmem". How does that sound? Thanks, /fuad > > + 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/