From patchwork Tue Feb 11 12:11:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fuad Tabba X-Patchwork-Id: 13969535 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 40880C021A4 for ; Tue, 11 Feb 2025 12:11:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E95A0280006; Tue, 11 Feb 2025 07:11:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E2951280004; Tue, 11 Feb 2025 07:11:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C98D8280006; Tue, 11 Feb 2025 07:11:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id A0C46280004 for ; Tue, 11 Feb 2025 07:11:41 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5A516B215C for ; Tue, 11 Feb 2025 12:11:41 +0000 (UTC) X-FDA: 83107549602.28.C7E02E0 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) by imf26.hostedemail.com (Postfix) with ESMTP id 87EEE140010 for ; Tue, 11 Feb 2025 12:11:39 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=P3sLAOx9; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf26.hostedemail.com: domain of 3ej6rZwUKCOccJKKJPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--tabba.bounces.google.com designates 209.85.128.74 as permitted sender) smtp.mailfrom=3ej6rZwUKCOccJKKJPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--tabba.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739275899; a=rsa-sha256; cv=none; b=5niwc2uBwGoEWKqrIWPLwiOLf/IzunaXGIgU4ywHYo0LmSkbO50/o+4Y6Elx6A9vC6zxia +gUr8vBWV32dG7RKvhEBAsgIKYlmNF+MW2JJ7EEUXFs4hEm+uE5PCerQiTO+XBIdG2j3fr UPNp+dFIysKLkfVIi43VXdv0Xd7oyAs= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=P3sLAOx9; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf26.hostedemail.com: domain of 3ej6rZwUKCOccJKKJPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--tabba.bounces.google.com designates 209.85.128.74 as permitted sender) smtp.mailfrom=3ej6rZwUKCOccJKKJPXXPUN.LXVURWdg-VVTeJLT.XaP@flex--tabba.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739275899; 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=VoOoWnCPGl4HcCb1I6zbkoc8AjEeP+ezJ3rNmGf66Z0=; b=nhYG2G+XaS2z+D/p8rfAPKkSSDeXoCU5/CWMaP/DF1fWnpaQbiVACrit8/avdZUYVjCbLq Z8Gsx00E3KpahjqDMCBp0bs+hv6mupkZzpDeHSvuF7fdS/59tgO7MDIVIhSQM6M1b7pXaJ NIc5XhMzU7TyCoSgIgzy3h0s/u1e42A= Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-4394b2c19ccso11115515e9.1 for ; Tue, 11 Feb 2025 04:11:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1739275898; x=1739880698; 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=VoOoWnCPGl4HcCb1I6zbkoc8AjEeP+ezJ3rNmGf66Z0=; b=P3sLAOx9YPS6lJA5Qb6OQRLF+DEuvlM9/5fsLwMQUQKBm4o9mluOziv1f3hOGyv0Sf 9R+tgRK7gxhKOSQosPN2IOfY3Z9p4slTK02uO/LtqpXMUVMGB+0v+PwRV2Bk/G15iQqk m/zMe4B/N1lkVgQyY6aNGuOhJ97dCysAFTJEcM5+zbbLwrJXOPY0+56fUnR2REWWQf7v n2SEtwh8T4NqQ+WMvz7kyVmC/gtD5V3chr2lRfe5q1vPFIeap7/a+bPeodOjt6mu4IDq QvH/ZlGRAI6NbkOQC1c1c/gM8QifTUTKJfLLdeFOKq0zU+10WTlql5muCCFTOWrbVbxB dy4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739275898; x=1739880698; 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=VoOoWnCPGl4HcCb1I6zbkoc8AjEeP+ezJ3rNmGf66Z0=; b=BayREGQUYyBQOp9ti3sLPv+ucjHY2UUL9qpC6WW1pbVoy+GKX+uv29wOXJurIQ96if 04n5v3yFxPAzHwF1Yw+t8+2mNTH00zHQSmPZXTJCmY219PYrJ+1P2ojUOjQztRaZE/Ne 8slkrCt5IaoDsMAhVv6m5v4ZIJqq4YZFJQ2s3E5AfdWtIABO+KChbmPKZZMcDXswfnYo jNGhWeIhtrOgf4vOkRAMm97t2+Oet0mCIvvjL0C64dcDUxSVWnKzK/b9RuLhgTpwyOyZ 9vGX16D71OF1InGKYH13gAwjstKLBiFoMGFekdYTcUfKTqj9clGkC4RuNtKOxlT/jWrh 6K4A== X-Forwarded-Encrypted: i=1; AJvYcCWNeb/rjjEcE2bQdRWlhbHLkmWs3PCC82CTJw94LAnjjOW0Lr4q/fmfd2jp+9Mpbwt3TsY8Qb0rzw==@kvack.org X-Gm-Message-State: AOJu0YwgDm5xzRW+eTtFcPGT97fqagMVV5HJEWMSKk0bJjf3DmTmvIN7 11wm5wU+tZKBu2v3KmwDWZp2dN8fkvrK4c8PuzZVN+mMBZa7XIeyANrfmZUrmkDaKSCW0qZaRg= = X-Google-Smtp-Source: AGHT+IH0eOMmKp8sDSfZvGefzukx2BbOVxp2ECFy0DQe4p4PevxPpr9NYmFYN4kr9FPJEdUBhdy96NX0RQ== X-Received: from wmbfm6.prod.google.com ([2002:a05:600c:c06:b0:439:40af:60e9]) (user=tabba job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:1c03:b0:439:4df5:5d41 with SMTP id 5b1f17b1804b1-4394df55f1emr27500045e9.11.1739275898177; Tue, 11 Feb 2025 04:11:38 -0800 (PST) Date: Tue, 11 Feb 2025 12:11:20 +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-5-tabba@google.com> Subject: [PATCH v3 04/11] KVM: guest_memfd: Add KVM capability to check if guest_memfd is shared 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-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 87EEE140010 X-Stat-Signature: kocoffa1y5pru31do8qmta6k88tawjwx X-Rspam-User: X-HE-Tag: 1739275899-546965 X-HE-Meta: U2FsdGVkX18wvIHJaMxI/TrFl2a9Ou7XKelGAcfC69ckfBFWWOO9X8O9JykickB+laNWmgsEYKHlzQOhZM9D990QFgG6t5hMuM+BAHlgaEx8QYjv/WE+tHfqLBlH04i1cyDCOx4MAnMVbZgQkmWGroafcrOvboH6/kPSRmOBl/kt5LF8nIBmKhpP71QH8UCEjhRVA6jzhs4wO4db0igs+zKC7o8433MFB68MSC39v0i/+OkZk4rHr3AbAFaiiuVtxopU2JIb/xqER1stBigWYKtsU7MJ6wVQzptsPfnXfisc24m9NxJ6+50GkD7BZGeTjmxcZF08oqtPLWmDcvBJh4eYnxl6emLHNEsjMS+r/wyUl4CL/y+hfllbs5SLcqj6zdJSWZFHflYUWsjNMtQz5UPlMT3je9Zumtt3SpAPeVJH6tR5FBFmPm00MAMNqcgLaR5PXVFxSqqJaS+N7Rkmp70UDBxY92gWDC29JgfzawBckBlUw3TSVU/XJ4IEFuXKEkEdzHxRWERPS4stFcY7yTs7w4cObEXddPxtwN0jvxb9pPan7ompFNDNyteH8i2ztMC3ovk1ca9/zyGGKk/DRxRk9DI9Hn86iDqjxZBrscNI7XkZ2Lm71eJG9mMTZ8RcSi/Z699ELfuYyVhngG/3NRte5dLkjhYP7bhGSsAzsylY0WOf+4xIzJIQN3Wwt/xiV7oLg7LXBvL5xrSW8II86Zcli9Kb5VDc3PAxdRO4MW8KjD7Q2khjOGPWCv3xkbgs1cXXhaOTlCv7tWnnUyeSUS0lcCd+Izcshbih6/TMbUgFdr2KZxm/itytIT+JPePQKaqEDcO4Fb8VWoPXLZUDY7q0hEI82Y6Jiso2VbbNN+4rHe+WFLN/2+hwj4Dv5FJK8/HLKd9Ya0FDTy+oCMZ9XRx+nfCXymV/+7lxy4QKT53JG4PvmT+nKpr/3mvl3zVlNCQPyPn1myOpS47OWQt 1cWYEQBR 5tks2PCsLV4ZtaFssNe6wjancHEPsWq2RAoBMCd9lTLkDXwxQ5UQfDSILfAKViAllst2KbC9Igs45cuEF1hh97t2kxPl5FKrMd+bj+U+rehI1cvQnGRHqe8tgvtf7Z/gzvDHWCWmBnLSTwOU7BnuWJhj3Z9B4KsY7mjCkBNLrEbW3eM6I6bc4q3+UdFZIw/Biuwu81LUGYPzkj3/nAI7bNrZ49l4+ZlGMp8LECWhe6M4nwZpLIqxEfJOTD+W1OJNyVCyMcJgjoF0+0sStR/rNKFoe5dDrecDG7h8vrJfNJK6cfyi49MNDjE3LInyBQHQefAg5skKCp6C+F6Vh1liReQVHXBBjJqTon24mkDlDHjzERi3cpzsukE/N233n2EuoouIKXM3GnsHBB8qzp24nKFcacte1pECv9H31aZrFAE8bUZMV5LMpOXyYmtENM5AHz4T6Z/98kdE65gw4uIESpetzYvvBWkkNy5X+jAS59ecx/xF0i9zgyQmXe3f5AnyE1uBL7wgNVxNtRXpyItuaz6cI7rCqNhXDuorWWDQRwD0kDX1v3ne8XB63o+ENXf7Kr4fQiiPBE51ImVwPLzFdRnPBL0dYsjH/fQi6ApDZvIuy2eZdv1YyNmH7KGv09w05yqE6oS4n66tjTDqmPsh5Znf1qw== 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: Add the KVM capability KVM_CAP_GMEM_SHARED_MEM, which indicates that the VM supports shared memory in guest_memfd, or that the host can create VMs that support shared memory. Supporting shared memory implies that memory can be mapped when shared with the host. Signed-off-by: Fuad Tabba --- include/uapi/linux/kvm.h | 1 + virt/kvm/kvm_main.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 45e6d8fca9b9..117937a895da 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -929,6 +929,7 @@ struct kvm_enable_cap { #define KVM_CAP_PRE_FAULT_MEMORY 236 #define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237 #define KVM_CAP_X86_GUEST_MODE 238 +#define KVM_CAP_GMEM_SHARED_MEM 239 struct kvm_irq_routing_irqchip { __u32 irqchip; diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index ba0327e2d0d3..38f0f402ea46 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -4830,6 +4830,10 @@ static int kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg) #ifdef CONFIG_KVM_PRIVATE_MEM case KVM_CAP_GUEST_MEMFD: return !kvm || kvm_arch_has_private_mem(kvm); +#endif +#ifdef CONFIG_KVM_GMEM_SHARED_MEM + case KVM_CAP_GMEM_SHARED_MEM: + return !kvm || kvm_arch_gmem_supports_shared_mem(kvm); #endif default: break;