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 505B6C282D1 for ; Thu, 6 Mar 2025 22:46:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 05578280015; Thu, 6 Mar 2025 17:46:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0039028000A; Thu, 6 Mar 2025 17:46:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E107F280015; Thu, 6 Mar 2025 17:46:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C02DD28000A for ; Thu, 6 Mar 2025 17:46:11 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5C82E805F8 for ; Thu, 6 Mar 2025 22:46:12 +0000 (UTC) X-FDA: 83192610984.25.A42027C Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) by imf13.hostedemail.com (Postfix) with ESMTP id 8EF2720004 for ; Thu, 6 Mar 2025 22:46:10 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=dMRBOMxz; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of 3sSXKZwsKCGoIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3sSXKZwsKCGoIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741301170; a=rsa-sha256; cv=none; b=jCKaK5az7EBzZ8knMCCuca7b4wPnzQI7Mh0U/fxxbEexctXNsnhC1NOio1IKbqEcoIytJt UEZI2xkHNo6kfIxmPF5jkyVWGFB/lhpZ4P2BkEHlUrJfnSE+UfdbaeSKanBi2efHCoQiSA 1iqKozQisHc2IdhiJy+r6Kpm4gg3hJ4= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=dMRBOMxz; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of 3sSXKZwsKCGoIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com designates 209.85.214.201 as permitted sender) smtp.mailfrom=3sSXKZwsKCGoIKSMZTMgbVOOWWOTM.KWUTQVcf-UUSdIKS.WZO@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741301170; 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:dkim-signature; bh=Y0NsttGtPOa6aPjdJtUAKVOWBQ7pVkWFh+ciuZTdfp0=; b=nBQFnL9HlV3jNN2Jb027SAau3NDRz95pN02a8zK+1rPE798jfvhH1vt4K75NXCKtQ7INyn yRDlqYtFvxETTAjxdkLpkCkSo/o1CTdKJ/AXUCx2lLjyc8Y2CJpsZFfs5G6eXJ5KUweGDu VMM+yFvQoaQf/oJNlnYjLo8H/F0+nXA= Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2241e7e3addso10537625ad.1 for ; Thu, 06 Mar 2025 14:46:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741301169; x=1741905969; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date:from:to :cc:subject:date:message-id:reply-to; bh=Y0NsttGtPOa6aPjdJtUAKVOWBQ7pVkWFh+ciuZTdfp0=; b=dMRBOMxzbiUMHdgyW/kFjeWAxjwfB3Ep2TO0UmynEphkgAs3tPRv0iy3BWvAJ1Z2Ks wzXcTmK3YRHIJigImPdD9yXB+kMuRNnUfUC51TOennu4omasF+TCHcO0LjQvXEQuTV5y c1JEdbhXBaygeSQiVQRq7QkjodknU7aITb6HXEANX4mTTYDu3x22guVz4DcVF4zavO5Q vsf2G74ZqZmToeblImcqN6oGCsE34uTg4LqCbsY5c64oxywp0sNEgjIxX5Taj//Uj3Ex KFaDzgwCmMdDSuwTl9h/lRqPLquQVp2z7fNaoevdKjdxeBOGPIycGreyFWMC6720oD7p +QkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741301169; x=1741905969; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Y0NsttGtPOa6aPjdJtUAKVOWBQ7pVkWFh+ciuZTdfp0=; b=VbY/NsU7YI9+YafIhjOsemmkk4Bylvwzp2mOZfkBYcJtPb9OC8Sc+JiME8f4h/9ld1 S6DTRIKRYiEKK9zNHhkBnfdOD3F/cDRo9Km+WxSlnOXv0rqqFPnNDsmNNgxdIsDXaQSi TVINQYbRsbU405M4MclOcVfqSuefzxOFe4hzNbs/o01XwjWBZc7wdTFBnS8Bx+2EgCSL VspOyeNXUPhXVDCJHOdoPrNI1iPu+ghgImrQ6th0E3UukkolmOORKtbAbMN1OCE2fZ4C 3u8pREjIwL8nLMO906QURzOvJBrN1SpdFENCGWxQkTMePrGgiPixxRDvmDxEwwsQuhei CeJg== X-Forwarded-Encrypted: i=1; AJvYcCWK3LgdInjOtgDHYUMyRf+7I0/kvYzMRhKOwQWdqgiGNfvqfIbnIuakfA0abSRFE2MKqgYIwkiAjQ==@kvack.org X-Gm-Message-State: AOJu0Yyma4GDTnXLjjlFTP2ieyoQDeSztRZ7/H3/8obAWWtouZc0KQny 2w3V23i02fVGD+PycGDUTb5l9Xw9AdFopZD+Fva0919ZDiRm9ZMwjCEWXdNJuHQ0A0V5DQnJ8QK TwfLzwn6G4eDaDwVfE35LbA== X-Google-Smtp-Source: AGHT+IFemCZqo/G29BZRvL9EujlnBiad8J9v1NkFh754+RwKgvTtlkq1l41H+ZyGu1lpLJvNdp5teFxIgVrsU9Dk8w== X-Received: from pfbeb21.prod.google.com ([2002:a05:6a00:4c95:b0:736:3cd5:ba3f]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:2450:b0:1f3:3493:b64a with SMTP id adf61e73a8af0-1f544b163b9mr2425567637.21.1741301169176; Thu, 06 Mar 2025 14:46:09 -0800 (PST) Date: Thu, 06 Mar 2025 22:46:07 +0000 In-Reply-To: <20250303171013.3548775-4-tabba@google.com> (message from Fuad Tabba on Mon, 3 Mar 2025 17:10:07 +0000) Mime-Version: 1.0 Message-ID: Subject: Re: [PATCH v5 3/9] KVM: guest_memfd: Allow host to map guest_memfd() pages From: Ackerley Tng To: Fuad Tabba 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, tabba@google.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 8EF2720004 X-Stat-Signature: 6ppi31pujmkf5xziqbojkbt8f3yikbgj X-Rspam-User: X-HE-Tag: 1741301170-685423 X-HE-Meta: U2FsdGVkX19AT0ZQ4B2jnG5rCFK0a8HRTy7kXeFUwk1DMQQXFntMmNNk9YTIEBx5o+TRYqd6HPdTX2sIPIr9IMF69G4QKqZnLnDf6qKJHRYkHrRa8yYh31g1ArTNBnE71LgilFdm20Y0WcSuL9d29QJqTzbDT6MftRJSbp6JK1BmMRApZSMWmO9SA6HXiVMa6cZN+guuN1fsF66KxHuvUJ089xgALuilMv0K1+Yyn5EDqfTZLMGCPAzBv/wE/n9kNg86/Av6HyZaGqD4bj88WrBjdZNxI08TxmEQS7Cbw+r6KSE8L1vvdcCdRItaWw/Xy2Lh15JywQ1pKJiHGMdIvFL7JPDOVslzYit5NOWi9lNzJpTgt8cuiECjicGvLvyJjsWrmLWepw37/tFEARQ3TvXJRjQbLUgoJpQwv1IhlzqoeyZJ+IHJi8EprPt5JboEHLdxFpoNUVzC1PiUbNcL2ziwCI1/HmmqJ8AFuDboFZJaP+5pyBNJ1tEYDkYkpGPFq8rYsoufsoOhuBlw2fAafhgf1HYSTTjpQ3zOgOwpyrXNLMOs+3AtEjjC4H0DWbOJj25VKZS2ctNZ29r9u76SrVO8tVPlY9sf10avbzhAxXYaDurDxr8AduvAyAsTFc1298ethrlac40Shs9L848gqIC+Im2/Yas/CEXP3h0N6OCgKgx1bGNSt18VbPARHCZLP7wr+8XSkLdl4Ic4a2lN+3LAq0DOTFnl2RIuH2J+c9q6K5jEUq/UEI4y+aKT8NDIPGWlH7cmvEMK9E83RzXpLpZxglhT181FxfH5my60BGKJ08F+GjIWYHGR3Vdb9O9G405vez6t5tI8NETvA6bfyAW/IxbYWkkbdh+Ygv09u8EmrCzK9Ze3LRPexBSIcHuCjBC7UMGFMZ+v7Z4Keurw0n8CXjJZGJX33AxIygGNIDbsu6DtaIUELz4u6xhiY5V3X41aDKVPXDLBQ+M9fX8 GUb630Cz 4t8csOCcHSDg9K9DsRhZNNw64xuK8U90j+HO7dT1uFVClk9Ff6IxL6OzvV6rKMYqCObj2ewe79+Q5sqq0xUJU6sWRAhqswGUkEgZJFEaMUeKM38X7+2h9j8hp6HcXQd9yHx85l8SU9NycpZ1THCGfJTMP+Fc5N0fK+ivJXQ6ViZVGtH13k26by3CLmH97NxL1swyBf6ttvxrEIa9HrzSCD+AnDw2KauE89CVz2oqKKowHfqftUqZn1boZr4xw07BsRc8MoHV6yLkokrKTx9VieSt4Zx7x1d0w7XM8k3+6Xri81+DsBttmoh8qus3uZHe1wkBt80Td2GNxzqktTc8lCvs1S9QBgR/eZb239fZiCpUvmE/dERRvydW45i29z+hZr/xhhyAlOvZ+OdPhyWQs74jEt9KuMe+RFcAI4UsUtw8vbwb9CCvz+VeZEAq0Je1TJ/pJm5PloaWr4PwhrJSAo0IxVESIvoIGAz84xsErUu83rg2iJNCiztV4CuBv7ktwMrX5saxXML6STSCp9vD8K0OIsHb2kh2vwqIIBbvEXIBXJYZ+ymzyeaw3crmudNANe8uk4fCfXMyl0CqDZuXd2kAOSsnykVsT8D37Tl+Qwk2P/1vzKBcDpx9yCt3Gu88LRpegyzZSwvvJCle62NUPgXLthKBHw+5QshZwqq6+vomidNedt5WiajV4KA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Fuad Tabba writes: > Add support for mmap() and fault() for guest_memfd backed memory > in the host for VMs that support in-place conversion between > shared and private. To that end, this patch adds the ability to > check whether the VM type supports in-place conversion, and only > allows mapping its memory if that's the case. > > Also 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. > > This is controlled by the KVM_GMEM_SHARED_MEM configuration > option. > > Signed-off-by: Fuad Tabba > --- > include/linux/kvm_host.h | 11 ++++ > include/uapi/linux/kvm.h | 1 + > virt/kvm/guest_memfd.c | 105 +++++++++++++++++++++++++++++++++++++++ > virt/kvm/kvm_main.c | 4 ++ > 4 files changed, 121 insertions(+) > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index 7788e3625f6d..2d025b8ee20e 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -728,6 +728,17 @@ static inline bool kvm_arch_has_private_mem(struct kvm *kvm) > } > #endif > > +/* > + * Arch code must define kvm_arch_gmem_supports_shared_mem if support for > + * private memory is enabled and it supports in-place shared/private conversion. > + */ > +#if !defined(kvm_arch_gmem_supports_shared_mem) && !IS_ENABLED(CONFIG_KVM_PRIVATE_MEM) Is this a copypasta error? I'm wondering if this should be !IS_ENABLED(CONFIG_KVM_GMEM_SHARED_MEM). Also, would you consider defining a __weak function to be overridden by different architectures, or would weak symbols not be inline-able? > +static inline bool kvm_arch_gmem_supports_shared_mem(struct kvm *kvm) > +{ > + return false; > +} > +#endif > + > >