From patchwork Tue Feb 11 12:11:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fuad Tabba X-Patchwork-Id: 13969536 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 CA4F8C021A2 for ; Tue, 11 Feb 2025 12:11:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 67F84280007; Tue, 11 Feb 2025 07:11:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6083E280004; Tue, 11 Feb 2025 07:11:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C251280007; Tue, 11 Feb 2025 07:11:44 -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 1547F280004 for ; Tue, 11 Feb 2025 07:11:44 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C5BC7A1627 for ; Tue, 11 Feb 2025 12:11:43 +0000 (UTC) X-FDA: 83107549686.29.B0B0F8C Received: from mail-wr1-f74.google.com (mail-wr1-f74.google.com [209.85.221.74]) by imf25.hostedemail.com (Postfix) with ESMTP id C9572A0019 for ; Tue, 11 Feb 2025 12:11:41 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GguRqOKL; spf=pass (imf25.hostedemail.com: domain of 3fD6rZwUKCOkeLMMLRZZRWP.NZXWTYfi-XXVgLNV.ZcR@flex--tabba.bounces.google.com designates 209.85.221.74 as permitted sender) smtp.mailfrom=3fD6rZwUKCOkeLMMLRZZRWP.NZXWTYfi-XXVgLNV.ZcR@flex--tabba.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739275901; 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=q4c2azch4XGSzLhm4hVjhhxsYncTOG8CAgSFUNg+Wf8=; b=7zfkasRwBeI4+SCAuUB5oea6Bg7L2YLvEsvEOPaNVa9DSCQA2PT8DmVSELFiflb8JQNDBv W31vwhFlfGCFPU3Ay52hiusXEx+LLZgK7+fApULasaOQXecqhIUHutm+liw2A+ZNHGuNt+ ehq3eiCK8lOU43RqGRzlzxC18vP+Xys= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GguRqOKL; spf=pass (imf25.hostedemail.com: domain of 3fD6rZwUKCOkeLMMLRZZRWP.NZXWTYfi-XXVgLNV.ZcR@flex--tabba.bounces.google.com designates 209.85.221.74 as permitted sender) smtp.mailfrom=3fD6rZwUKCOkeLMMLRZZRWP.NZXWTYfi-XXVgLNV.ZcR@flex--tabba.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739275901; a=rsa-sha256; cv=none; b=GjqL3eWtJECLjdKeI3+OGWaq5s03yKmMeDUZhmYf2eFuGSjlvDAA/EVMG0LFsms5iUVoum j4Thk4ndfYQKw4oZnAy1W4ZZjTCw2e9S3awD6j2LmvMFTqtVKHuI1mrTCcsioyEf22LA5E yVbXugYQ38dXMsBWq5i5+Icqot7SXvo= Received: by mail-wr1-f74.google.com with SMTP id ffacd0b85a97d-38dcc9653a7so1695098f8f.0 for ; Tue, 11 Feb 2025 04:11:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1739275900; x=1739880700; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=q4c2azch4XGSzLhm4hVjhhxsYncTOG8CAgSFUNg+Wf8=; b=GguRqOKLv8hUvv+6piau9eGjiXe2071FuAWbCD/drwsQaPvGKA+/2vW46s7lxjSuca RQOB/RVYLqXrJHfl/PGwizqpJwhev3vYKCRivOJS3gdTTT4HN1uuD0DiZkCmpMK3wu/H 64XIM+hsYH8Savqi5ZCJNh7+W2yXQBY5b006YOpcP06ark9NhCu3gjhxWuNzVMHZoICn iP34ZlV1DojjhmjWGucMIGwaghT1CV+561qNh091xqaOIrSITCjydZTt8GmFzi0DN3X/ fMlq1+vFFkGkqxUOb/sgc38kdkrAFDxugI0y4Uy5HLDYYgp7m2P9Hli+18+jqlnQVCm0 pPiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739275900; x=1739880700; h=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=q4c2azch4XGSzLhm4hVjhhxsYncTOG8CAgSFUNg+Wf8=; b=e+SFO9U2ufZJbHs+kbUHKkS76K0oMJBwYLbLDJtvhkPog8Qee3hCnRu9SDj1xiA6mg g8Bsf/1hT9HY/Jd7eYQndg06NAzrQf+WPPR0HNhAoMK8QfUmmo5xePmVmi4BH+5wm5X+ BMHZpXZj9HlUMN0d+ToSYNPCvTk288HXFpBeSgNfKWy3EEwngIqKvN0btNTb5cSU4+Bd 15brRb1iZUxi+dJQHcjJwLig+2LS34GvR4jnKCKJA3loPBMuqWGZB5PP16xXhohSqTUJ owO3SecaRER9bhM9YbFEywjERSQzqOPdzFvhupFroqJuQGS6GL8bLJKM1TvoAXRYvg9+ QCPQ== X-Forwarded-Encrypted: i=1; AJvYcCUXwL/KzJTiUh4yJ2UFKA+rn8aKdPhJrJSOSZr+4YHObCHE44R5F1QYd8aHlsifWJdtPJ9Qf9EOlA==@kvack.org X-Gm-Message-State: AOJu0YwCcwfKqcSNZ2zVvfN1kQ6foZ+dOkzO4B4NxPcIg23INV4o/fUa NRitqlnYOHX6WTFTp7YIzkvnN6p3bdrqVLpACnmVYwQpyJg9pEW4fSAg9tSuGz5o0x2YpqNkDA= = X-Google-Smtp-Source: AGHT+IEZVlgZ7l4TTAOh1SBqdQFPpEAEB3+x5+ryB71coKgbya9elk4Zr5rIWpnyM79ic86FoQOK0Ptk8A== X-Received: from wmbet8.prod.google.com ([2002:a05:600c:8188:b0:439:5539:d861]) (user=tabba job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6000:1448:b0:38a:88bc:aea4 with SMTP id ffacd0b85a97d-38dc9233a6dmr12990245f8f.30.1739275900187; Tue, 11 Feb 2025 04:11:40 -0800 (PST) Date: Tue, 11 Feb 2025 12:11:21 +0000 In-Reply-To: <20250211121128.703390-1-tabba@google.com> Mime-Version: 1.0 References: <20250211121128.703390-1-tabba@google.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog Message-ID: <20250211121128.703390-6-tabba@google.com> Subject: [PATCH v3 05/11] KVM: guest_memfd: Handle in-place shared memory as guest_memfd backed memory From: Fuad Tabba To: kvm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mm@kvack.org Cc: 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, yu.c.zhang@linux.intel.com, isaku.yamahata@intel.com, mic@digikod.net, vbabka@suse.cz, vannapurve@google.com, ackerleytng@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, tabba@google.com X-Rspam-User: X-Rspamd-Queue-Id: C9572A0019 X-Stat-Signature: yxkt3m8m98fq4ojqne56xtqb8x6eh87a X-Rspamd-Server: rspam03 X-HE-Tag: 1739275901-267768 X-HE-Meta: U2FsdGVkX1/db/AkjNe5o81+90/L4xEVozlWybkvXlwIB4k1DZlkQkbcxF3LD7bpukI7qhSTTQ+BMHAMtzhkZAYvt/El3g74tf1Idwi5OYcQu/09rV9vWcjZm4f/Qsu0SFHb0N1uxsYZAZl94nKKdOSdVyVBb3SoflnHSJvtV17dgV3aXK8ara5VuRTt8XLfbO24THbeYogS7fzOnuT97lm8fPqWhm5hQVcoKnjTgWo+Z5uYiLIyuPczEDK2vjBatD/JC6FaFhAJyn4YZkVYATtyuriKSk1X1bgd62n+NztKsc3yTd0L28cXATv2HA74s3TBDa4xJgLdSzSkt4wbHHq7Xr3sKf+WjliEiUSjwBHygIY7htVBhmD+rQ1MYQvKOSA3IXet8dyRnaBK7wOsHVJpMNhUidQB15KBrWM9+8Xvs4UEc4XxA/1HU4kYAJMY7d0ELLD3OUyU+Aa+t7R1TnqQcbvUFRWtJObigzh5vkioEXOEjYctMckSlqhRmTofx1sU8QjyWjEGKrZNRheztxxOyY+oX7IijV+etbClB+ocZoVaB0n/kk1lNui3YQrAos1Rsu7Yt4+hgmF1NdzK2mRDOM2GWaOgwzDFo9H59uVvwvjEQKQg9J01wZzlkneB9njipGKjW1frsk/uvJ2WtumRJv4O0kKCqVfJaYFYD/Z3qtzCqiCgIZrh08zuwogwwLEAvEwRH31wzPsW+9ZgzHbS5LcXdYkgivIHEBnTiAicAd3wq98LThwkmyjh5amk+bEKqRB8XFZNXMEde+TgOMyrz9rWXUypndOW/eV53ufMyuBxpd7AY8OQ/hApcuktnfFKs7rJOGljqPLaZBkyDJGvjSHrJ6fwMpWYBqaIcrq1Bdv7h6Cet2xC1iQSGsxUYOEHlOTAHndtbTB03Dz4/9Lrpu2TJDXcfh+FYou/Kdq3e+JwyVD4ip85Jqw5m7lLhvLaduUqjLeMYvWnXJu /NMCyice ewfZoogf5tZt3oEr/vvEpozWXEw7i4KWeu0OEUSuJkCc2pFdKLaXbX8/0WfE6RI0CLUhydnEX91pMPdfYEih3/Euehpz6bS0mjUzWdoS4Hasr2uO1RXPsLLW9iEhh/IUII22KtyfgcuR5RwCHFZ1YMHzbZ7mlEeuh0skDYwal19q8vBrGVKXDaF0Ad7s1d2KtjVmIYr51ULTheK2oxO0yPDLA4qRLe586Y51uvNEWhZnhvSx1nyEQxMvB0fgFQtP7iEvx9ScZi7M2S7X0cYrnez/l38FwejhBqDuuPIrZe8TZrsCNxEZAdA93uR7NqLEPrwSJ4p+qyLJOPyGIENYK7oGT+o+rOKAymQJnKxBpCQdLG3Q2fIzPiWfksiewcs8Ul21am2Xg2Kzgm0JwbXA6Exq4ETLB6jADX1Rzn2j3fGWOENYnYhxpUlu+zXr9G1nHXYLewgL9vggM36JbpT3JAYl6S/7mA65XoaqHKxoYmpekWSGciiDPzh/HCCZwAn9EJS9GxuRGuTduKWX6U44vLA4zkA0qd3mvx/RBVQBSFU4GisJzR35WME581fgvTA1G6kl5x2ihDZWwSOceCURiOnmR6gDq+9Uo/MI1ndoKFW8S7Q+Cj0UxAOkWrUx8h9pbvfI5nvd+z8+I9N6YmPdEfyogfw== 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: For VMs that allow sharing guest_memfd backed memory in-place, handle that memory the same as "private" guest_memfd memory. This means that faulting that memory in the host or in the guest will go through the guest_memfd subsystem. Note that the word "private" in the name of the function kvm_mem_is_private() doesn't necessarily indicate that the memory isn't shared, but is due to the history and evolution of guest_memfd and the various names it has received. In effect, this function is used to multiplex between the path of a normal page fault and the path of a guest_memfd backed page fault. Signed-off-by: Fuad Tabba --- include/linux/kvm_host.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 438aa3df3175..39fd6e35c723 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -2521,7 +2521,8 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) #else static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) { - return false; + return kvm_arch_gmem_supports_shared_mem(kvm) && + kvm_slot_can_be_private(gfn_to_memslot(kvm, gfn)); } #endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */