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 574C9C3ABAC for ; Tue, 6 May 2025 12:16:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 729E76B0082; Tue, 6 May 2025 08:16:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6B36D6B0085; Tue, 6 May 2025 08:16:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5536B6B0088; Tue, 6 May 2025 08:16:12 -0400 (EDT) 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 388896B0082 for ; Tue, 6 May 2025 08:16:12 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 168A458434 for ; Tue, 6 May 2025 12:16:14 +0000 (UTC) X-FDA: 83412380268.14.F820F5C Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf23.hostedemail.com (Postfix) with ESMTP id 32C8A140016 for ; Tue, 6 May 2025 12:16:11 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=uHCvrP3J; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf23.hostedemail.com: domain of tabba@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746533772; 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=6f8Pkog9VRKxqJVqX7zIYOBYdtx7uWBL1I7B160ljq4=; b=UKCPjJf41EIqvNo41zfYK5VfdA/EhX9jqAzLfwEfocjbGaptEKFyqy0dXgllCzSrr4SXVE naBHQR2K05gv2mabx3YhgUZfYKr+jjyEbnF+YpkTqwI73tgGk2yrljj/e+aiNct4fZ75TA K0ziGfzW9D/0Nw9aypFCU2GgT1TRgTY= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=uHCvrP3J; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf23.hostedemail.com: domain of tabba@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746533772; a=rsa-sha256; cv=none; b=e03rqZNWXgaMA5s/bmyVOSJh/i1DxpPykcJ6o3wvePxMzzqMq3AnBfO7uNkZCj+UWsIZwg lnrJU7CpPxjNflMCNVcr8RAObPKga8Fy81eQLATIgk3xhmTIemVdiF0P591psiJplThMby dtXRr7qdJ/tX3U3lHvWBFgQCa8Blaik= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-4774611d40bso305271cf.0 for ; Tue, 06 May 2025 05:16:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746533771; x=1747138571; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=6f8Pkog9VRKxqJVqX7zIYOBYdtx7uWBL1I7B160ljq4=; b=uHCvrP3JaG1XybG23+p5LRhQNv3KtNSMsl54kk02Pl82fcmaznlXq/I+7LFTYuuAA3 TBBFp88BAushuuLoWTr+aIWQfN/iT45CWIQzKDDioAswJ5dDYE7bqsOoykPsVR52DIKT PPoj/BsDuT4e+RilRxV9c59dIGuZ7CmJ0gTmgf7FPV/nKAeANPr9V6oMURFhowxrgYCB r8Xu8drvWtXzO08Yk2uEi5dk8RNB0GPpJKQoa5RnihIuMkqTjb+b3sPPr7UN+dLmStn2 XvoGDB1LVIjdqrZ4d6//U6PUr34zhqWzGXziSsqoYxyh8HBON14lBmldco/v4IMIcOEa EXcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746533771; x=1747138571; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6f8Pkog9VRKxqJVqX7zIYOBYdtx7uWBL1I7B160ljq4=; b=nfs1AsD4NWkrsKYROCUOxhHtF8GnHEmmVGnqGE8kht9dToWdSxOXKGVN4AugezvUCF a5Y2nE1vAwjMyJ8ttAeor6C29hUWC443zKZVB5YbHb+ts34qya0ybh2EbxAlv4D3OOV1 XZUm8EV4h/jYgsvDhBTunomRwmWarWsamcKL2eGf28dlJ20TsWE+8qeAPnr9q1KhiaiT sgnEMfw8zu3ymHKXU9UU9Zv/jiLhCrt5CwmaGoqAw4rh50lL5L7Aux4zfuhJV7xU3BU7 V8nGZnN0ptLezGbxqzYK2Of3WsQ4YCy2ppbYYjxA8L1NrNjzhaFcAS4ESgUifD6qS9xf eSTw== X-Forwarded-Encrypted: i=1; AJvYcCXEYpegAQWazJbBlrepK7jsmtsrP/6ZR0LPxT15QR/Pvaic8RaJqkPBC+RBCc55pABhY8nurcFYvw==@kvack.org X-Gm-Message-State: AOJu0YzE0iavreQNwBujN2VLy0+0U+sSIuzwaVqI5lp8ClDN7eCGxPlX lLpDuwTHVMcViHgkg9XzwTgvV+tTXcDvhP3EM7G2FgvpK/q8QI94kEhnf8W2LTcSL4/Rsb1TsMc f6M7CZwHMTPC75HSzmL0Xqf0N/XVc+z+Mgq0H X-Gm-Gg: ASbGncutWfSJzrho4b/aDr6cggz7WAZTuno4JjeMgOLRgC2DAEQWBpwgAdOWUeLvRmb CwGbFkeRkn4m+kNNtUJC31CPIlwZosxBaiqHJsLNeMPt/OZdUCSBSh8b0LQDFv+k1ss5U4R0zlx trXA9vdnKyKT3KVpGRfhs/PykpkKPRiwiJTxztaneeFQqg5t5FASk= X-Google-Smtp-Source: AGHT+IEe8eF4GziUIN/tZf4C7cxJ7AWiVvXbtx1ZH0D0GFwoa/koUU4cjSVlt3/dzy7oD7pGBcV8s+6Nzx0ShmO/HV8= X-Received: by 2002:a05:622a:553:b0:486:8d63:2dfc with SMTP id d75a77b69052e-490f4729ab9mr4853121cf.2.1746533770768; Tue, 06 May 2025 05:16:10 -0700 (PDT) MIME-Version: 1.0 References: <20250430165655.605595-1-tabba@google.com> <20250430165655.605595-9-tabba@google.com> <6819283cc31f0_28880f2944f@iweiny-mobl.notmuch> In-Reply-To: <6819283cc31f0_28880f2944f@iweiny-mobl.notmuch> From: Fuad Tabba Date: Tue, 6 May 2025 13:15:33 +0100 X-Gm-Features: ATxdqUH8kDs1bsapOMm1wv2xmE__aC-8T_lWieo1BBZsq2lh3T9YXMXc-QxkqaQ Message-ID: Subject: Re: [PATCH v8 08/13] KVM: guest_memfd: Allow host to map guest_memfd() pages To: Ira Weiny 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, 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 78c8c38fhrys66q59rjjwapirsetwmx3 X-Rspamd-Queue-Id: 32C8A140016 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1746533771-961924 X-HE-Meta: U2FsdGVkX1/afKrkDivoZertgbIHLNguWwSh7bJ4wOZ+qfEJJEQdps0dHUGTJSMGzL8FGIXzrfXqDcIfE0OrGJYk3vSazAVUszOTsxXB7jARKVEF1ja8okzc5ll6ZwTX7RxALvmBD3WfJ9VI6owOYssrgqak4bI/AykvX5x8DsBsLjeGcgI1miIhdB71X2AZXlS/Z2i/4ynPxiqGTs/K/S8c7Pwpcfpr1DJut/M4UCybT2siAZneJelInrh87kTUophltgYzntLMOtAtzyqu+72OTZYZa+LAZdIpwAonYl6XIi5G+QX0THgJDmAPW+0bIZ2sm9EYC2GWwwcPKv2eI3uyYI81513RDzJyjvfv+iOox+Id22tx119PtSilrBinw7bS++TCBS/6ggxGDPiW0mC/1L9n3JSQPHyAyWwvM/vtWPbAcYCbDyviq04q3wrH1S2rjsCrGNr1WXr0mAdvfE0NGqfomElskqNzxRDspXN0JeXw0aeC1osO+wcsU2AQ9xtseFJTFc70tKOjphNbjqIMnOLYV2lAvGx9EY6H3xlhXGYuWRkS4612+PyqlHTvak/pUM2f6IxI9g40sdEIihP+eaXT/HkGXbid162GIGS1I0Q7/tLdC6NPl6BwOPblmmDrqRiZlhpwVjVuYo/9mFK6i5VEEm1U7eJHmq0+ULIQV4ma57kBHIcFg8JebsfgsrY8bprviqjeA8idxW+8QRLRuUBlLwohpgFfFSpe2izgHgKu8JAH2y/Ep1U7CQz65j9aGdQ67CIrBFKugmQmGBVsoyUz/OEunn32XZnk8RhYRzY3sHj9nueC5NyzyXG7cVsVptbQql0B0NPoFeRrF2R1jxwBgLB1Lt8neRP33vaZ3jhSZWRa/8hmVskjiXgNT4E0b8xuSPNJrzfydvjMbQ0XieB4jUnbq7YK6p5Ru4K55ZALBgk0iDmMDHORjd5Gat6keRB1qgLqGTtSBaS QcNtQymu hWoDxnCGcHY/L0AEZZx1RLA+inYHI65AqeUmHHRclor4y54L40iRxFClkAXWq8sUcy5L6p/49DBV4MQRl1dTDLgBiQCIqrIC/yJ85AoDCXpOUjnecB96rhOcAl+tnpN97xn0hjbJrLkceQb13IEuuDXdSTUMH2ZW4qUM09j9n6RPQFSZrqHfH6SUHxWIhEj14QUH7Mvv7Ud+fZ5ZJmlWgZNDfXGgGS4GDy4eI8q8vf6SJhzb5VDT14rDC8N14WRVSb4Jdl52BT2jPz97vXst9RcWcd7rpKdvJmgBSvge85/mhnsRv77FBBp6Zn0x6uCvyt7Ufc/HHntKPZKEFaJiPFoETZiBUqKZyJZIcHWLFJLc94MM= 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: Hi Ira, On Mon, 5 May 2025 at 22:05, Ira Weiny wrote: > > Fuad Tabba wrote: > > 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. > > > > This patch introduces the configuration option KVM_GMEM_SHARED_MEM, > > which enables support for in-place shared memory. > > > > It also introduces the KVM capability KVM_CAP_GMEM_SHARED_MEM, which > > indicates 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/linux/kvm_host.h | 15 ++++++- > > include/uapi/linux/kvm.h | 1 + > > virt/kvm/Kconfig | 5 +++ > > virt/kvm/guest_memfd.c | 92 ++++++++++++++++++++++++++++++++++++++++ > > virt/kvm/kvm_main.c | 4 ++ > > 5 files changed, 116 insertions(+), 1 deletion(-) > > > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > > index 9419fb99f7c2..f3af6bff3232 100644 > > --- a/include/linux/kvm_host.h > > +++ b/include/linux/kvm_host.h > > @@ -729,6 +729,17 @@ static inline bool kvm_arch_supports_gmem(struct k= vm *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 c= onversion. > > + */ > > +#if !defined(kvm_arch_gmem_supports_shared_mem) && !IS_ENABLED(CONFIG_= KVM_GMEM_SHARED_MEM) > > Perhaps the bots already caught this? > > I just tried enabling KVM_GMEM_SHARED_MEM on x86 with this patch and it f= ails with: > > || In file included from arch/x86/kvm/../../../virt/kvm/binary_stats.c:8: > || ./include/linux/kvm_host.h: In function =E2=80=98kvm_mem_from_gmem=E2= =80=99: > include/linux/kvm_host.h|2530 col 13| error: implicit declaration of func= tion =E2=80=98kvm_arch_gmem_supports_shared_mem=E2=80=99 [-Wimplicit-functi= on-declaration] > || 2530 | if (kvm_arch_gmem_supports_shared_mem(kvm)) > || | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > || make[4]: *** Waiting for unfinished jobs.... > > > I think the predicate on !CONFIG_KVM_GMEM_SHARED_MEM is wrong. > > Shouldn't this always default off? I __think__ this then gets enabled in > 11/13? You're right. With the other comments from David and Ackerley, this functions is gone, replaced by checking a per-vm flag. Thanks, /fuad > IOW > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > index f3af6bff3232..577674e95c09 100644 > --- a/include/linux/kvm_host.h > +++ b/include/linux/kvm_host.h > @@ -733,7 +733,7 @@ static inline bool kvm_arch_supports_gmem(struct kvm = *kvm) > * Arch code must define kvm_arch_gmem_supports_shared_mem if support fo= r > * private memory is enabled and it supports in-place shared/private con= version. > */ > -#if !defined(kvm_arch_gmem_supports_shared_mem) && !IS_ENABLED(CONFIG_KV= M_GMEM_SHARED_MEM) > +#if !defined(kvm_arch_gmem_supports_shared_mem) > static inline bool kvm_arch_gmem_supports_shared_mem(struct kvm *kvm) > { > return false;