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 2C64EC677C4 for ; Wed, 11 Jun 2025 13:34:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 392856B00AD; Wed, 11 Jun 2025 09:34:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 368926B00AE; Wed, 11 Jun 2025 09:34:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 230046B00AF; Wed, 11 Jun 2025 09:34:07 -0400 (EDT) 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 F06BE6B00AD for ; Wed, 11 Jun 2025 09:34:06 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B166B120C6B for ; Wed, 11 Jun 2025 13:34:06 +0000 (UTC) X-FDA: 83543213292.10.7ADB358 Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) by imf05.hostedemail.com (Postfix) with ESMTP id CC9DB10000A for ; Wed, 11 Jun 2025 13:34:04 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eKXx0cpH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of 3y4VJaAUKCEY1ijjiowwotm.kwutqv25-uus3iks.wzo@flex--tabba.bounces.google.com designates 209.85.221.73 as permitted sender) smtp.mailfrom=3y4VJaAUKCEY1ijjiowwotm.kwutqv25-uus3iks.wzo@flex--tabba.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749648844; 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=fr60yTRM3Le7KlhcyzAIwAP1RCDbA7i9ZnNcPDG0Gps=; b=qxFQmxRmEG2iCSfJ6uMa0wHeyy/6u4tkygXB+CWnKBrJIxjWATZuRjhnOIQF1InyylZTTB YT03lQsxYjc6QG+AyKhwkHTdqGGPDG3RYA3c4EuQuJFa4sccYPCakznQy0DKkhZdN4sFiF 42hphub3Q8B6oHgCLDe3jnEBx/XBRQM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749648844; a=rsa-sha256; cv=none; b=E+1Yf0ZoiEIwPYgHCygog+7QYCZl56MT363DBnhYdONvxXLhZex4ORCXYlHqbwmILdfKR4 nLBy5CiIqs/3RTZS2U3Rueop+fQlvd3T2tlhU+1bfIU2hZS/4iyeLg0Bg8vzkBLCCd19KP JBf9rMnxztcmaxuYjIW9qyIOmdEvq7w= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eKXx0cpH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of 3y4VJaAUKCEY1ijjiowwotm.kwutqv25-uus3iks.wzo@flex--tabba.bounces.google.com designates 209.85.221.73 as permitted sender) smtp.mailfrom=3y4VJaAUKCEY1ijjiowwotm.kwutqv25-uus3iks.wzo@flex--tabba.bounces.google.com Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-3a4eee2398bso3099158f8f.1 for ; Wed, 11 Jun 2025 06:34:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749648843; x=1750253643; 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=fr60yTRM3Le7KlhcyzAIwAP1RCDbA7i9ZnNcPDG0Gps=; b=eKXx0cpHV7S+h37AUnVfB5LJvUp22eemq8mUz+pt01xNwyrT0sZXqohgOHBOXT/gxX 8gm5XqQu7eg6burfQV/vMEwER6aTGpm3s5rJ4sfhbuc5rK7v+Fyl+Pl4AMduIqfTHv93 u1933F0Gx+fSISmNakztq3onJQBdF+dKy6WK7sRV8NyKLyHILXmbjgMkSEtlKiyzK7Gd 74nD/6P/zDMYZ0f7/0n8PzxTkJQy+l+PaUXfFSfYAMVQOKOFfA4YioyOBb3VP5gEcT/a V+zFojKQaNHXgBx1NUd4iKBZm2b9aaU5KIod17aCGkdAJbrBsCoILxh5E5X3SH+oJ5A+ yywQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749648843; x=1750253643; 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=fr60yTRM3Le7KlhcyzAIwAP1RCDbA7i9ZnNcPDG0Gps=; b=SWClGAMmOOLOJE6kurA9HBMTsvrX52Fbcxvk90yqOpd084YtFaNaG5zYa5e4idkcXL 4S0lkow7nQSmmIq4w48lh4pVO/hGPry2jiB5w3ThpmcUhIS/oQbu8k3oeylMQjuTZguQ RrX/nWDUHKkzukdQYY0W2zyJnRtlQqraEl/YPhJ4FTBUISSQV8XPfw1SwTFVsgV6Irus MiCxfB2Tfzn4D3dqP86Uc81I/divWwiOZx/I4EjyAqTUQzidxHReGIbEL83sfpD0hses AO0GBLpZzuX8TwG7ua2qXOrTcpYnTPcqhRrK2rEShI5U2ub0qU72LpjMdfaLAIriWPzo RH8g== X-Forwarded-Encrypted: i=1; AJvYcCU13R2QdLkuVV1Ld63cP/x8xGBsMFx9EHtSSlNJfbCA4S4tW8UK/vMl5oKJjxJNO1/PeVEXS967eg==@kvack.org X-Gm-Message-State: AOJu0Yy4QA6Gbc/4mfI0JP8i3jmefbE7CNDgLTpjslB/RXqhPOrIMmVZ z1qLiVxb2qMHPBQPC9Co5uBCEwvXm0lAxFtSJetdI9Xj42cS2PiW3X0UwaxmRaLMV6vKwnpRUWb ozQ== X-Google-Smtp-Source: AGHT+IH14t+wSkhybtHuLmzZkceSzcjY9wgExM45VH1zSci1aRvRXa2k0A1lOzdSmzXE1XT7zgcgV0z25g== X-Received: from wmsd14.prod.google.com ([2002:a05:600c:3ace:b0:43d:1873:dbaf]) (user=tabba job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6000:144a:b0:3a5:2cca:6054 with SMTP id ffacd0b85a97d-3a558691a5amr2274572f8f.4.1749648843428; Wed, 11 Jun 2025 06:34:03 -0700 (PDT) Date: Wed, 11 Jun 2025 14:33:27 +0100 In-Reply-To: <20250611133330.1514028-1-tabba@google.com> Mime-Version: 1.0 References: <20250611133330.1514028-1-tabba@google.com> X-Mailer: git-send-email 2.50.0.rc0.642.g800a2b2222-goog Message-ID: <20250611133330.1514028-16-tabba@google.com> Subject: [PATCH v12 15/18] KVM: arm64: Enable host mapping of shared guest_memfd memory From: Fuad Tabba To: kvm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mm@kvack.org, kvmarm@lists.linux.dev 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, 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, peterx@redhat.com, pankaj.gupta@amd.com, ira.weiny@intel.com, tabba@google.com Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: bdn53yze994b8ub4bcwuwycateieqw4b X-Rspamd-Queue-Id: CC9DB10000A X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1749648844-613459 X-HE-Meta: U2FsdGVkX1/3FADDGVuA0rXKAPyc60cheCE5fUtzkSvarUk7v8T3QBzF0eZDmt5lMWoIItMAMmI7Qp4xh0w68X9x6P8gWPp94OWkHnb9Ke2sDHgh4dkV4zi11Heu1RajzPJu5yRuT8EGzPjc2vsGSsiIvNSrJe7POAOpBaFP6l5X3Pg7uAeqJZWK9TiNroaNDG54H15sc4tk8Yd1kH7LIWB3e1tlOftZ75BKw4Sg7QaOk9arB6alWA1v9xKKXWc7PB1FIWxRq81cQXqOnf2XkCoKwHCZoRr/hJ+f8v2FPyGsbj0p1mHf8Jkz9lxB6fOlEtB5yHn/c2Lg2pP+Cxo/X2WjLlYu7ZgvebMHyJSOWiUvJFwJbFoOfsaRkuYDAb8ia5/+RHbugf49zjIPp55yu1w12Q74Uc6BRPGC0pqlhmq4eIW13wukvHN8aXU60qm4YefHNYkTpfVioqn8i2PRVLw7hwXF9KHCIV5J91TelBkT1aBwO969v1NJaHWbA+jyZSiODCZTa/WejY+wv2sSwl2TTQPDbnUtZJeJKtZau8A0lNEN7A/rJhqxlXpOerInBcj9t1cYlTF5n6M7z0WhPYf0xCpmOfPxwHoyDB/GOP+0z9gZngg+rEZsTE9gufIxeVQRY8BtZ3ub9+nGiiy8CNCXnavwHaWa6mffxNRhXeMUcyiseCck/Sq9tYmmW7RbHDUewDV6I17DCrZCZGNCPUF33anH27TCD+nqMlsDcgYaVfTWKhVLOJgqRxaiKLPQRAubl3NZLLdzUU0Q5QNCKtVXDUkUJwbkxvpUOvRPGnnG6MdoqYEgr/+663i4RKPtCDS4HYt9uY8YidRN6uhNu4gVvZecMd2ZWuRWp+WGwO/zJDr/AF6Jh+eVux8AOE+RTPCTyAZEBOyv2WU/5roSaHIaMWupHOW61UMcaJDjtOeL/G2gZogGtexVviKVIN92NPK+GCSGis7FiaPAtaz FiE54Iig W4yoa5l3eQ9AgIAzWkHhsdueGFfSWPFDA0nqzr0DM8IZz/No/7do4SZY/5My4rLcB/wz3v45cp7veLuOBgIJchpt+LYkbedVXHBbsrm4oFBbK6n/MKOI/mAvfYqiBpAyMOyzW/UuoVGXREM7dS0FKCv0Wf8KD471Ydmsf6OtrrqCQfaoUmbwJh65IC+KA+LJLshlLH23S0VBdR1xbCa456HfHxh6icMh27L5Sccl5+Y3VJfrx/wy0/Y/brk5bNjgf7l3GT10H9LPHihfQ/mqzOxn0p7VRHlaJUq2qTselzC5gxVtA3QKguBmK28WqOtmdhBe0ybGylgCOwWZ30cAleIWw2qgD71bkIGqCtnuCwIXTOki7k4A1+fN5ct8DfGjZPZYd/QdRRQNDQ9c84FoBgX+mzMc7Wy1C7PBqBvilE8dtewY6GBDujLkUvmWwgY/DWrMKAqpx1rGnmf/K+GtXEgRxoE1rYHzoPYbZMA3im8lJ1r5bG2EIjLjx9P2FhMlRdSESsAjrlUNQO3e9LJYKvF+45LCIDJd7tP32PvCEIT8QHt/raPb1TO4dk3mVw/R8Jewtci8FmHxzVPf3FofAzF+Sb07099kU9RbzEAyWa+CpUutp/nkyOSBMyLOmPol0BTILjFZU0RB31eMnnB8qj4I/XcvZGV8L8mI3A5wnXFu17Ak= 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: Enable the host mapping of guest_memfd-backed memory on arm64. This applies to all current arm64 VM types that support guest_memfd. Future VM types can restrict this behavior via the kvm_arch_gmem_supports_shared_mem() hook if needed. Reviewed-by: James Houghton Reviewed-by: Gavin Shan Acked-by: David Hildenbrand Signed-off-by: Fuad Tabba --- arch/arm64/include/asm/kvm_host.h | 4 ++++ arch/arm64/kvm/Kconfig | 1 + arch/arm64/kvm/mmu.c | 7 +++++++ 3 files changed, 12 insertions(+) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 6ce2c5173482..0cd26219a12e 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -1655,5 +1655,9 @@ void compute_fgu(struct kvm *kvm, enum fgt_group_id fgt); void get_reg_fixed_bits(struct kvm *kvm, enum vcpu_sysreg reg, u64 *res0, u64 *res1); void check_feature_map(void); +#ifdef CONFIG_KVM_GMEM +#define kvm_arch_supports_gmem(kvm) true +#define kvm_arch_supports_gmem_shared_mem(kvm) IS_ENABLED(CONFIG_KVM_GMEM_SHARED_MEM) +#endif #endif /* __ARM64_KVM_HOST_H__ */ diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 713248f240e0..87120d46919a 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -37,6 +37,7 @@ menuconfig KVM select HAVE_KVM_VCPU_RUN_PID_CHANGE select SCHED_INFO select GUEST_PERF_EVENTS if PERF_EVENTS + select KVM_GMEM_SHARED_MEM help Support hosting virtualized guest machines. diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 71f8b53683e7..55ac03f277e0 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -2274,6 +2274,13 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, if ((new->base_gfn + new->npages) > (kvm_phys_size(&kvm->arch.mmu) >> PAGE_SHIFT)) return -EFAULT; + /* + * Only support guest_memfd backed memslots with shared memory, since + * there aren't any CoCo VMs that support only private memory on arm64. + */ + if (kvm_slot_has_gmem(new) && !kvm_gmem_memslot_supports_shared(new)) + return -EINVAL; + hva = new->userspace_addr; reg_end = hva + (new->npages << PAGE_SHIFT); -- 2.50.0.rc0.642.g800a2b2222-goog