Message ID | 20250303133011.44095-3-kalyazin@amazon.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 A685CC282CD for <linux-mm@archiver.kernel.org>; Mon, 3 Mar 2025 13:30:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B5256B0093; Mon, 3 Mar 2025 08:30:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2647B6B0095; Mon, 3 Mar 2025 08:30:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12CBE6B0096; Mon, 3 Mar 2025 08:30:57 -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 E76B16B0093 for <linux-mm@kvack.org>; Mon, 3 Mar 2025 08:30:56 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 3236D16099D for <linux-mm@kvack.org>; Mon, 3 Mar 2025 13:30:56 +0000 (UTC) X-FDA: 83180325312.03.AF97C94 Received: from smtp-fw-6001.amazon.com (smtp-fw-6001.amazon.com [52.95.48.154]) by imf26.hostedemail.com (Postfix) with ESMTP id 89FE5140011 for <linux-mm@kvack.org>; Mon, 3 Mar 2025 13:30:50 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=EE76lk97; spf=pass (imf26.hostedemail.com: domain of "prvs=150a0b0d2=kalyazin@amazon.co.uk" designates 52.95.48.154 as permitted sender) smtp.mailfrom="prvs=150a0b0d2=kalyazin@amazon.co.uk"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741008650; 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=J7/xtyBJVACA1f5rni1kJ1y38BiqCsgl928AjTc2EPg=; b=o7PzIqUM0UA6Q9oNTeMXmEHAdnVZnvsjoXeBGuwvgY4Kbp5GJVOQICbno0iI1v0zN7FMOr n26eVgj3I+jMXncsks+zYmHBF9RdshBf7i14OJX8FT5kltEfwlAYVqAsieWTElXVLmkhqr zk+/k5Um+qOU4owjrKWFwmd8fiS0xIM= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=EE76lk97; spf=pass (imf26.hostedemail.com: domain of "prvs=150a0b0d2=kalyazin@amazon.co.uk" designates 52.95.48.154 as permitted sender) smtp.mailfrom="prvs=150a0b0d2=kalyazin@amazon.co.uk"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741008650; a=rsa-sha256; cv=none; b=wPahdwwjEDyt2xRnsALh9WfZb4WMSlQaov2QGAQkvvmNPx3Lru9vHygmQFbRxW75g/YaXr JqA0/H7QkKclYpVjv8yTgUsdUOCBn0eOHdYVvD1AKDsr4ZDt97/ZorL0m1KS1q92XtIovy Bta02FsI3TrCR+VR3jFOnxC1uwhem1c= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1741008651; x=1772544651; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=J7/xtyBJVACA1f5rni1kJ1y38BiqCsgl928AjTc2EPg=; b=EE76lk97+6gXjNeC/Er8mlxx2nEdBVW5+5OiBa/QmpZiSiDgLIgc5vKB SZn/pSjtjxd3ukmFeWps3qlTB4KAsqdVjNwIrui5bSTI+nOPAJ2SE7ArE yNZsmuhoJbxPNPX6nkjiMuQv2A3F0khsLgPMe2uM3VROIMMuyUF4KEFuT Y=; X-IronPort-AV: E=Sophos;i="6.13,329,1732579200"; d="scan'208";a="467377029" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev) ([10.43.8.2]) by smtp-border-fw-6001.iad6.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2025 13:30:47 +0000 Received: from EX19MTAEUA001.ant.amazon.com [10.0.43.254:58431] by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.2.142:2525] with esmtp (Farcaster) id 95972e55-02f1-4ae5-bb4d-b9d69caeff17; Mon, 3 Mar 2025 13:30:45 +0000 (UTC) X-Farcaster-Flow-ID: 95972e55-02f1-4ae5-bb4d-b9d69caeff17 Received: from EX19D004EUA003.ant.amazon.com (10.252.50.230) by EX19MTAEUA001.ant.amazon.com (10.252.50.50) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14; Mon, 3 Mar 2025 13:30:42 +0000 Received: from EX19MTAUEA001.ant.amazon.com (10.252.134.203) by EX19D004EUA003.ant.amazon.com (10.252.50.230) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14; Mon, 3 Mar 2025 13:30:41 +0000 Received: from email-imr-corp-prod-iad-1box-1a-9bbde7a3.us-east-1.amazon.com (10.43.8.2) by mail-relay.amazon.com (10.252.134.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1544.14 via Frontend Transport; Mon, 3 Mar 2025 13:30:41 +0000 Received: from dev-dsk-kalyazin-1a-a12e27e2.eu-west-1.amazon.com (dev-dsk-kalyazin-1a-a12e27e2.eu-west-1.amazon.com [172.19.103.116]) by email-imr-corp-prod-iad-1box-1a-9bbde7a3.us-east-1.amazon.com (Postfix) with ESMTPS id 3176540617; Mon, 3 Mar 2025 13:30:40 +0000 (UTC) From: Nikita Kalyazin <kalyazin@amazon.com> To: <akpm@linux-foundation.org>, <pbonzini@redhat.com>, <shuah@kernel.org> CC: <kvm@vger.kernel.org>, <linux-kselftest@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>, <lorenzo.stoakes@oracle.com>, <david@redhat.com>, <ryan.roberts@arm.com>, <quic_eberman@quicinc.com>, <jthoughton@google.com>, <peterx@redhat.com>, <graf@amazon.de>, <jgowans@amazon.com>, <roypat@amazon.co.uk>, <derekmn@amazon.com>, <nsaenz@amazon.es>, <xmarcalx@amazon.com>, <kalyazin@amazon.com> Subject: [RFC PATCH 2/5] KVM: guest_memfd: add support for uffd missing Date: Mon, 3 Mar 2025 13:30:08 +0000 Message-ID: <20250303133011.44095-3-kalyazin@amazon.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250303133011.44095-1-kalyazin@amazon.com> References: <20250303133011.44095-1-kalyazin@amazon.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain X-Rspam-User: X-Rspamd-Queue-Id: 89FE5140011 X-Rspamd-Server: rspam09 X-Stat-Signature: zhbck19mig1z673tf9th6mewekohngmy X-HE-Tag: 1741008650-189777 X-HE-Meta: U2FsdGVkX1/UUArkfrgpw5WnNs5dACXD/V2N/+Pw6sKpEMHGiODn4/khO/tp7A9TbhgJhFqrpZvBiCm4mNz4frkBHdxE2sML+ZMOLdamJEEtsXB0m0BhOy6Ga4lu5NZrxImpKFS6Xe6K+zDF7026RfEWSFNmxrQ4jYrzvK9Pbe5JS2rXvDK+e6Za/XvRDuqho08L5Pc5ClFcZl9VEHBmcZiY6BqzhtLNYSbGzcay/af2S2PamZyrqtDT89QxX5gMMHCktrg3lXe+z1MbkbCqt/igJvPTdlsFv/DgBtQJaWgly4lTs6Z5uZ/sGfx8C4FNKd8G2ft+iWNzcW6LSFYOkLFpgvD3xpIY+W+A2v0rzy+yysH+M4o5lVMoe67+2Pt8RmsaBwmkIxthOGI8nkui4Dw9CnXsGhsiP3o+Na74gpCrSgzKkdY+r3sVaVCADWXrTvECXaJlGElb6f6sNTK40NRiI8HUn7tmAqXBldJZ8G4lPE7Z4MUDKC20QVeSm900O2l6Nby4RU7qDMItGXagYKt4YvBoiRsLBNlTnD2436S/ydH+vhrC9m2jR+wW+DarXE4B1kh+DZn/9VewwLT+IjZVzBthxFrmxNOdw89AkGu8uxRyihPr1/D2TGIBqm5CWqAmVRupG2I1mQCIaSSqwKhK/r3ZkAn5z/+t3kaGDBp1ubne8edHY3iDyRw62gP5BgOGv/b7tuJEarY//Y2Bat2W9oj/VHZ0j/9LIbivgS6AEeWK6q+nXmov9otkjLhggNN7b8dqlVmRO/3VaaFjE3S4f8aaQDv8I6VpAGoiTLwB8E8Ue4qMyyP2CuK/M87sqCoRTSSKro32duiD53tHJaWmuCcqbZcy7somWH5n63oENxtc/96kLC0IprwFO0MbDLHgUaYSNegfVUGSovtOMGaGEEoBBTdk1MFEzjucPJeQWPse733r9PvCCULwqrWK9hIpim6ApB2/ezlzSZD tbpGfTwy kwsB1qs/J7m4OVbikGSW0WRDzqFaB1XnNttggd3O/bsNUJgZax8RrFLnX07sFvzMDylveIDzfSEZGEKcnejXBkkD/EGDLWENIXy2RO4sn9YWI9L4oSNdFrCmH91SltcWlMV1QQv3vF46Sxlr0046Hrxg5DrZqjdpKZ+sKs4eftZPlmCI8Fx2BL87Beg9DrAGzNJQaiXm5ju/FDeZeMjXCZFn/HWcHLa2PIepCE2vbJwX/5Rpyq4y5TcLqKpo6z3YzPMuXCaA9kxne7xMVgwR83rXppOSqvUZd0ZFM6znDtSc2kJcfqQRdCE4xV48iZYQKTv7m3WQOsbjIBub81PrDo1Ud4aK4FJUj7aoTbh/iYNDyKq1g2yCQVK3mB2l3U+ZLLY3XgIgMa6+X8Em0e+7pV5m33uMMQ9EQ/sFF/iiON7T45APCLkGWF6Ty5ujjWF3H1x2SuKSXt+XOhe2VGh8hGxqEnQ46j7PdZFM6vTA793fglztHVLCOp9oH8rxOg6d3J3S5T8K7OuiaEgKccOMZTvyAcWbFZebppen0jQOHG1A5VW9cPFDKo7SVbStDuJdFQclzmKzdm/5+mco= 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
KVM: guest_memfd: support for uffd missing
|
expand
|
diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c index af825f7494ea..358c3776ed66 100644 --- a/virt/kvm/guest_memfd.c +++ b/virt/kvm/guest_memfd.c @@ -4,6 +4,9 @@ #include <linux/kvm_host.h> #include <linux/pagemap.h> #include <linux/anon_inodes.h> +#ifdef CONFIG_KVM_PRIVATE_MEM +#include <linux/userfaultfd_k.h> +#endif /* CONFIG_KVM_PRIVATE_MEM */ #include "kvm_mm.h" @@ -332,9 +335,16 @@ static vm_fault_t kvm_gmem_fault(struct vm_fault *vmf) struct folio *folio; vm_fault_t ret = VM_FAULT_LOCKED; + folio = filemap_get_entry(inode->i_mapping, vmf->pgoff); + if (!folio && userfaultfd_missing(vmf->vma)) + return handle_userfault(vmf, VM_UFFD_MISSING); + if (folio) + folio_lock(folio); + filemap_invalidate_lock_shared(inode->i_mapping); - folio = kvm_gmem_get_folio(inode, vmf->pgoff); + if (!folio) + folio = kvm_gmem_get_folio(inode, vmf->pgoff); if (IS_ERR(folio)) { switch (PTR_ERR(folio)) { case -EAGAIN:
Add support for sending a pagefault event if userfaultfd is registered. Only page missing event is currently supported. Signed-off-by: Nikita Kalyazin <kalyazin@amazon.com> --- virt/kvm/guest_memfd.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)