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 21E26C282DE for ; Thu, 6 Mar 2025 15:48:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 169EC280002; Thu, 6 Mar 2025 10:48:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 11855280001; Thu, 6 Mar 2025 10:48:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F22FE280002; Thu, 6 Mar 2025 10:48:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D525F280001 for ; Thu, 6 Mar 2025 10:48:18 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 078F0161D33 for ; Thu, 6 Mar 2025 15:48:20 +0000 (UTC) X-FDA: 83191557960.27.31068C0 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) by imf25.hostedemail.com (Postfix) with ESMTP id 41708A0007 for ; Thu, 6 Mar 2025 15:48:18 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lh1bdfRf; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf25.hostedemail.com: domain of 3wMPJZwsKCLMTVdXkeXrmgZZhhZeX.Vhfebgnq-ffdoTVd.hkZ@flex--ackerleytng.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3wMPJZwsKCLMTVdXkeXrmgZZhhZeX.Vhfebgnq-ffdoTVd.hkZ@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741276098; 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=WN5n6yCvcOa+zM2USNjiOsagVXAB7Ffxj7AYdaUTQwM=; b=ZbyytDPEkBXjA+LqHU+2hSj6L8sv5G3OSlqUh+rleZwNYm26kUA5QQ5PMBEHLaJIB35J5N ovRQGPxzzdNAo6FxhUm0B0zmAfJ7k/WguLuMKN02JA9vXrzSdcBsyLh/6Le7DcWJG7Jkr9 0NTi/vPxAQRPqXq6ZRa4Jdwx+6yD2g8= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lh1bdfRf; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf25.hostedemail.com: domain of 3wMPJZwsKCLMTVdXkeXrmgZZhhZeX.Vhfebgnq-ffdoTVd.hkZ@flex--ackerleytng.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3wMPJZwsKCLMTVdXkeXrmgZZhhZeX.Vhfebgnq-ffdoTVd.hkZ@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741276098; a=rsa-sha256; cv=none; b=RmxF7IWttCf9Gyvx2uSGfMSmdTUmYuhgaafiLm9Lhajiq28z1QXPpOWAXB9l3mZwpEN15+ A59j/KRt3blEvHd42kymjvS71kva7Dsvle19SuTis2+L0hvzWpAoYai69BWZKB1jOyPr/X u1CpBA5wDRVb61B61F/MMUGjDPY2hJg= Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2ff799be8f5so160991a91.1 for ; Thu, 06 Mar 2025 07:48:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741276097; x=1741880897; 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=WN5n6yCvcOa+zM2USNjiOsagVXAB7Ffxj7AYdaUTQwM=; b=lh1bdfRfm/tcasCpx1/qBtRVMOndodBE0ZTm4wxpWJLtAYGyzhoryEaI6TVi/5zEpd jnu1Lv1fnKAGJ0imvHoo4tPH+klJmFHxX4lqq99zLbSIiWb0Ba6/KskC9UJUrr86DGux /IX567eRj8z3L1FXmL5Fe489rXixwgaGQO6ExYt0XyVTwJ3q1R4YJ4Kqpj2kmql82qMh TcJ3zvtbJWArp2lqdseaDp2G02I+3UAmMNKN0N6TDj0oj0SLQOpSv+ZM4hznTb8Yln/j SoUfo4qO6thDRqgRh9se7k81HcK5b0MgyygbR5ZYPWQuIBgCrQ4AYYBFHsz5bOg3EZzv VZgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741276097; x=1741880897; 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=WN5n6yCvcOa+zM2USNjiOsagVXAB7Ffxj7AYdaUTQwM=; b=U9Yh2TJIhwSP1nm81FHGPPFvC/q+/HM3qXuTi4qiI85bneHS7oU2KHh+DrKMJvQttr WgwNB++ouGS/o6KGvxW2hKB11s12K3CjWc8t2xvVU936zU2qco8zCLtjxVLqGGkCh+9H qv4nN5pGIozPJaJa6jyFMWXdtq7CY2RmBwqrFjL2FGEettFu5yDmqU8zOPSVbGQA1/D/ z1q9Uvw9cBv+1McH5PEN7hpYOHoEtVwLSG+7gchi2i6qdx51NWgAm5HVgU6pQ6aPVPa4 LLF3Gic/EzsyHUBVR6BHjTrkANHvBzFVj9kb62fEpNmxwWxJKfBnSJPfr6nBhKDKbdtJ tn7g== X-Forwarded-Encrypted: i=1; AJvYcCUfNSrUc46I/l8k4pAQCEuhvwhdiBacfJR6vbXafQEBx1vrDTeX3UfQLCOTwbfjh5hfhwulmP6W5g==@kvack.org X-Gm-Message-State: AOJu0YwLMxFdoLL301j+gAIfnveSPYxJRKVx2qnnKADLDsMtlMLnkP95 l3PR8XWL7XsBJ5WBUJhBYSvhxu/ksOM7yBBf2BKPjhdxMMU9JumZpKzaDB/Hej9/zPDjQBkX/OY 3enK3gfhTzeucrOzkdfOe6A== X-Google-Smtp-Source: AGHT+IGIpKIz67HLCauppdWF07A7kBE16hQeQDJtBmIWPGn65BdGHarhO9hkIPwx1gqSyqaBuxIwDSrAUaXKDp4m4A== X-Received: from pjbqa14.prod.google.com ([2002:a17:90b:4fce:b0:2fa:1fac:2695]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4a87:b0:2ff:682b:b759 with SMTP id 98e67ed59e1d1-2ff682bb96amr4351705a91.7.1741276096694; Thu, 06 Mar 2025 07:48:16 -0800 (PST) Date: Thu, 06 Mar 2025 15:48:15 +0000 In-Reply-To: <5c394c80-bb2b-4f9c-9b76-78b0696fa316@redhat.com> (message from David Hildenbrand on Fri, 28 Feb 2025 18:33:30 +0100) Mime-Version: 1.0 Message-ID: Subject: Re: [PATCH v4 04/10] KVM: guest_memfd: Add KVM capability to check if guest_memfd is shared From: Ackerley Tng To: David Hildenbrand Cc: tabba@google.com, peterx@redhat.com, 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, 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 Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 41708A0007 X-Rspam-User: X-Stat-Signature: dmkoi5aeysffn3apxuqyi5ctbstddnf6 X-HE-Tag: 1741276098-479828 X-HE-Meta: U2FsdGVkX1+ATpronStAhOh5KmaLX7hpDAtYtK/TwHgB0Nm9J2IOiIDTnj5/Rfo139wjRLEIw3Z4qX3j5HMC5XDhcKneFrBsxGtUCU83h0lqT7u2hIUHl+8gR2rMqBL7Dt6rycLHz3kh3D4ak8ZOQ4Un3yiubH8HHZVHWO1nyoNwE7HTNGtWGklDN41P1wQsv2YOzW2odqZZ/jSxjEkvuoa/QDWPlXSAE1jDB3mMN0+sKLcX64B+AmySZG5Bl6Y28l7y7xmi+VdFG8ghpaBolK7FLUBMKNLvsUp2VlS+PZImfCpdQJhZr0kbrrbMS/BfEyHrM6Gd1ixOp0+dCtkTMEOnRP6WyhHZ7KJD+1ZO2W8GmN6jUNJMg2YDGWP+sLciMZPxnHcLcpRDR8ry58xd86xvI8amfwfDd7SjlWSYx5ZPPQoRTY0L4V/5v3COEyKuncKysZLxzNmgntJkzeiQ4UNgMMHt9sMO7nGZRvfWJEN/0otppMLzxSBF3G1dA42Gitkj5sXSeWXzDKi3Fz0am3bdG2PyPlUejbrf1k7xUGR7F5nsOYmaxl1Zu1mZRFepcmbLYuBDbzSvNyXAg9RN69PH8yMiBaB2ITYa26abxsseBEDVwMtjnZ2cyTBfsWBLtt68UC1/gQEzBGq8Oj13LDVdH5aacUAFfeWEQfMFfeuOuI0NZjp5TalPQmK+Dk7uCvZsTieslhwu50cm2rohETxFzjqw1TbCOGESymvraKXObA78thWf33VyWh5qeaF0lb6f7t3xKGt95fqjmbV2CASZh1WcxFDWmBc9C/oeUlLkzlA3wBoU51rXJvi6keBhdUKOQ9szwOc1U+yZN6LPaZJtnDlIEmuYiqLajfoqkr9wj5BQ7wIeR7GjmdVd7B9REl24FBC+eNY2pTXqHB50B3MG06vdvkLkGqALNY5reUb5pZW+dczv68iozJwh7X/UhWnXWtVhQXNX4euiFYk frw59yUk We8G7B+gQEJ3iiWoM16vRDPrPLX+XQ00cmYU4MbaCj4ws92el2XitOIFr4jz62v3Pdn3c+0Ygk92k8wRAW9LEkT9XlydJh4ZaW9cwcgi/afpYuAFrfbyescwk4lVcx1s+ckoqYOCuHkxJTx/nf+BKbjqCd92+wTswUfy7ShWc9bKISyZoj9A1QAKQE8l+sCx+IFExHLLVASmnqwQYyhT0aHph9/BETjwkUKAZ0hyR6aQ+lhGIVE+TMUCOe1x5IKnZJXAWeRm49nWHQoVzA86Zu4wAjY7VVGbmlkrRJwYK1QlELDdSRG8rhKkt60KRLDym4TQZFZZaxuCl9DbLzq/V+5tiVttveYuBTZCVPijb3FQ5caSUb+XQYUPs2QyxWCjnKVpRC7b/QdXcyLriG/fRvstnhqunsmM8EYbrCnkXM5fO/01IP4hezdS2LPCIKgoUp2///nt9ZLqAV8CCBjVi5CrZpBcXHcIlRd4Nss1eDRna2BtrS5Ar5ybPB9/vRGb9FLDUxClwPYXCiZm2g6uZhDTcuZ1YjA4c/z5BWW/VOBxdTZq40tOS29X7AU/T580Lw2FKvXjjLcnQHUnK+MqlNvGscgivtJiji3CfxzT7ksQI4Buy6ulGPbvVY/R2WjTYNf7nnBVDIWlg7LJ2MVPx6WZ8996Ej6i6VdkoJoD4dC3SPi9yqSaHdmoQz9tn5k2Dv9Az7ukJ5mOZruU= 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: David Hildenbrand writes: > On 28.02.25 18:22, Fuad Tabba wrote: >> Hi Peter, >> >> On Fri, 28 Feb 2025 at 08:24, Peter Xu wrote: >>> >>> On Tue, Feb 18, 2025 at 05:24:54PM +0000, Fuad Tabba wrote: >>>> 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 >>> >>> I think SHARED_MEM is ok. Said that, to me the use case in this series is >>> more about "in-place" rather than "shared". >>> >>> In comparison, what I'm recently looking at is a "more" shared mode of >>> guest-memfd where it works almost like memfd. So all pages will be shared >>> there. >>> >>> That helps me e.g. for the N:1 kvm binding issue I mentioned in another >>> email (in one of my relies in previous version), in which case I want to >>> enable gmemfd folios to be mapped more than once in a process. >>> >>> That'll work there as long as it's fully shared, because all things can be >>> registered in the old VA way, then there's no need to have N:1 restriction. >>> IOW, gmemfd will still rely on mmu notifier for tearing downs, and the >>> gmem->bindings will always be empty. >>> >>> So if this one would be called "in-place", then I'll have my use case as >>> "shared". >> >> I understand what you mean. The naming here is to be consistent with >> the rest of the series. I don't really have a strong opinion. It means >> SHARED_IN_PLACE, but then that would be a mouthful. :) > > I'll note that Patrick is also driving it in "all shared" mode for his > direct-map removal series IIRC. > > So we would have > > a) All private > b) Mixing of private and shared (incl conversion) > c) All shared > > "IN_PLACE" might be the wrong angle to look at it. How about something like "supports_mmap" or "mmap_capable"? So like + KVM_CAP_GMEM_MMAP + CONFIG_KVM_GMEM_MMAP_CAPABLE + kvm_arch_gmem_mmap_capable() I'm just trying to avoid the use of shared, which could already mean + shared between processes + shared between guest and host