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 30CD6C3600C for ; Thu, 3 Apr 2025 11:33:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A2A8C280003; Thu, 3 Apr 2025 07:33:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D66F280001; Thu, 3 Apr 2025 07:33:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 84FFD280003; Thu, 3 Apr 2025 07:33:22 -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 63D62280001 for ; Thu, 3 Apr 2025 07:33:22 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 966B2AB45D for ; Thu, 3 Apr 2025 11:33:22 +0000 (UTC) X-FDA: 83292521844.05.D412A41 Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) by imf30.hostedemail.com (Postfix) with ESMTP id C502E80014 for ; Thu, 3 Apr 2025 11:33:20 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=fPJfxp3g; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf30.hostedemail.com: domain of tabba@google.com designates 209.85.160.182 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743680000; a=rsa-sha256; cv=none; b=vllqYp48RloDx6DDew5bDfZYQ0XSWgKTt7Yh/iGB4ih31NtAhH4SRaHpFN1+kPORxymczK L9ZsZuvhABftvWpfYxaSyUoLFjeD8efXEit52oGosnOYI7ipeg5oboGB/k8Fbc1900ItXL HAeHQKXvifHHzJ55XYz1dNhnXWN8b8w= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=fPJfxp3g; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf30.hostedemail.com: domain of tabba@google.com designates 209.85.160.182 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=1743680000; 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=gEMObUoyn3JUJ1C/U9ykdrbpQA2uh4Mz7RwOIB0uCd8=; b=uqLO1Y6m/5luIL0Mc+ce6jvwvfxwx9QDixXXi8xxjgnRQ+mLAEyK1huoyw+QE/Aj+6bU6D gMiP8qkZmPchxC76IpKA8t72yGcaGlm7VxWwiUO7WYUkJ8AedqhnaKP5Cj/Ml1md7qQsj3 a4Vb8e/oQrrhSfxYssVhWDpFxMaiSoc= Received: by mail-qt1-f182.google.com with SMTP id d75a77b69052e-4774611d40bso507271cf.0 for ; Thu, 03 Apr 2025 04:33:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743680000; x=1744284800; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gEMObUoyn3JUJ1C/U9ykdrbpQA2uh4Mz7RwOIB0uCd8=; b=fPJfxp3goFW3KzUpJFg/2TwqmkDjaX7vmxA01W33X9Teisp4o8JgmRqNJ7VSW6jbf4 5Quf9aGwxk0YLM2M/QFuKwOG8KZpJP5xTe/zBBEk57HW/FfYyp87K6VegDR7Fa27wiqz pe5Jh/MhonFeoGH11iZ4dIBCRAE1Ge+xpIDVuYkPhc3OPY4/qa4taggtygJM081OLfWM 9HhFfs3DDkCQSFmV3wbojdC3DjYkqOobos5hPNHynCmcOWZZkLEDGMtpzvcQ0q5XL0iH EDkQ1ox5sypQy4rN9TVWROajo1jdPcjY9dcxXgAdkx4O6LYqiDzdG9TY4bfkn4C3dbxC jyDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743680000; x=1744284800; h=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=gEMObUoyn3JUJ1C/U9ykdrbpQA2uh4Mz7RwOIB0uCd8=; b=RwTNTIhIjZ1tWJcBXv/zD0hWlTkT66+TCZYC7K+mYN647ZB+iwtYWmzl/5t5XnNKLe FF+YRRe/NqSnr8P0xut4fhlMw4af/l+aqrTaxw/PC4e+v9ldGLDSm8+Jjv56uliSdLSI 7FLSLgrsXuQMEdPNiLhjNyfihIObv2iFrF6QBZRJxemZV0o+Zizu72cPHn2zvUO7ic7t v9BNQNi+qQnkxuSnt7hS1oBjmcP3Lkof8sbsonmzHVIVhyyY/y2JxOiz7vkYQlHimZ1+ 9qhiVVo1Tb5VXPmgEbG63gIsqKjjFx1vIv0VIvbBxjgEkOp4XL42ob9YSUUXuZfv4rHw BKEQ== X-Forwarded-Encrypted: i=1; AJvYcCWJEhP1rjzHClr/EBuFYEH87otiv7dWDtQZyCnTngdM21i/2zNfGmNkaJgz9Q2Uf4+63AzCAHf00A==@kvack.org X-Gm-Message-State: AOJu0YwVUp2fiBWn6oCdQbw6lNo/B+kG41t4DACunY0yG0ibuKNf1TfJ 3N4fsXQhfjTfM0nnHbEDka7rEF3jq0Z8xZbB6DYk/S7f2ezLCMcaYVeBsN1KtC/yrgkD1QZSyrZ /LuVZzSHk0fYGEfeMJaB5USEO2FDp+u7satlt X-Gm-Gg: ASbGnctfwWZqr8fcmyX6HJj69G/3zzuM7BLvxESfHqBc+uHmvOPpmFFz4VWRKliVYy8 1oouOk5QtckWOtkwQYTRc0TnjeliN1q/2uZy9iwyfhloeeXyzEtz+LNwQCOlDEuHsuAQnakj5az iU7/+ATeYqeRtoA4F1bEe9yfK2KA== X-Google-Smtp-Source: AGHT+IFomZU1HMl8dHzvwzaPBWQoixQ5c08Z91Ow3ggUIuXK//3qzyPh36fz8VwRQ2X3bgMszlZm14KOtw6OkXzulBI= X-Received: by 2002:ac8:5809:0:b0:477:c4f:ee58 with SMTP id d75a77b69052e-4791752498fmr4216301cf.24.1743679999618; Thu, 03 Apr 2025 04:33:19 -0700 (PDT) MIME-Version: 1.0 References: <20250328153133.3504118-8-tabba@google.com> In-Reply-To: From: Fuad Tabba Date: Thu, 3 Apr 2025 12:32:42 +0100 X-Gm-Features: ATxdqUEPebUlHzj5-92DkCj0iX8Rt4t2SxCxCMdVt6zFFuAFssAocEZowoZO9AY Message-ID: Subject: Re: [PATCH v7 7/7] KVM: guest_memfd: Add a guest_memfd() flag to initialize it as shared To: Ackerley Tng 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, pankaj.gupta@amd.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: C502E80014 X-Stat-Signature: effehfed8qch86np3o157cupiha6s6kt X-Rspam-User: X-HE-Tag: 1743680000-780151 X-HE-Meta: U2FsdGVkX1+4w+FDYZVdqLE8cCmb95B1QsrwdsxdnFmUWL4SQMgYpNYCkrLrCHH1ADnPUuxrBAazN6wDqANdmt+k2NA0pxvCKm4bjkFdmQ56J4Hh8ZfANwMAwk3xQ8PyNc3MYlh4L16pu8AUwniiTMVEtReFfbxXvWWLj1pYEI1e1r9L6nD3QaqDJ8tUNA0dR9oZaQii2ndofDSBEswK/MbZklg8tdusOxVPGRAna9HZdwb9GCXAr5b7o+AIhQA5GxtxhcUgps8NQ5Lyo3YRMljmmAu3HM1J8fdEdQQSpcm/h3TiHMqeqXJT2E110045jUhUJHWix149jqZp1DprSqhfQvhPFotUYeTH3VZk/Ay98Vyvn0pRaDpcSxI+6IRRMTXP8DOA7YTQdP2veUcgP032Wgs6d6rPafE/PzjKcqTTOINw8SzWrajVP2MC8mPGYCifV/rCnyJDgMXKIowhYwrTybRzaihUu0aZXhe7GQYRfQf7o7hETy4MKvJR8YQdH2NWgDyMvd5pAw93QHvXuir1t8xEWs95ej6zfF23xIzvJNarfvuTGV7fGr5wqMYREXmWmHoE/QguJi/aRkKxplWp6BN75azgjlq9280wTnYaPGqqAfQva7xGrrXPklsS7CkIU1F09W9rfzCVD/bSsvNZX8E8V9T9RB2PSsPjjQRWEPC09StVaCDEYXiiPziB6qjvEAnqTHeXiKtvLtdEhNOMVjj87usY0LOVOrKA9kvXIhX4bZCry7v4J0P/KbFbDYpUAwlmym80+5lFICvSf7GymUOZZTRe4P4nbXJiLCiXnmwnw3r0pzpYx5iVftN8345gTXvbWC3C+4tVjP4kFEY/1hK42RUdCAzsYrAs5eh7/9Cp5OSIjWSuj0xgmbl+WQg1F+PjAl7fQn6b6CSftFc6bkqkxrxeQsbPgE6PPnZWy1oRHpkH1PbhYGHR1MysUpyCUaoU141iwvxbHeM oDLZjnnT yhDT7BzD0ua/hQLbAE0fUWw8oYSq+sNGJbYmLGIM38RRnFHtwKqKTONED1D4MPstbsDj3VCax3p/qLqurL6MblsuNAf3TmUyXx6FvQ260E+3IDfmqaDgxtL0WWqGkzR2p6wKi4fg138GVjxMXDV+dfIhEM4yyeVtrfY9OihCDa3ll0IWLAY2XQbnrT7YUX3BKD3OSofr5nd6FuvvkSFP28MSf5GWvdDAjiBOFdr55NuhVXzC0qT11nA4qbD55ODZEex82le9ddPo+9icJAICcY5/XD+mrkZxtPjiLpCYJOU+RLax3EL1EGTUggXbsB5b8jTca4VqEdJqNegLpFLfkreJWs3YaLuWeWd7v28o3R4shKvQ= 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 Ackerley, On Thu, 3 Apr 2025 at 00:03, Ackerley Tng wrote: > > Fuad Tabba writes: > > > Not all use cases require guest_memfd() to be shared with the host when > > first created. Add a new flag, GUEST_MEMFD_FLAG_INIT_SHARED, which when > > set on KVM_CREATE_GUEST_MEMFD initializes the memory as shared with the > > host, and therefore mappable by it. Otherwise, memory is private until > > explicitly shared by the guest with the host. > > > > Signed-off-by: Fuad Tabba > > --- > > Documentation/virt/kvm/api.rst | 4 ++++ > > include/uapi/linux/kvm.h | 1 + > > tools/testing/selftests/kvm/guest_memfd_test.c | 7 +++++-- > > virt/kvm/guest_memfd.c | 12 ++++++++++++ > > 4 files changed, 22 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c > > index eec9d5e09f09..32e149478b04 100644 > > --- a/virt/kvm/guest_memfd.c > > +++ b/virt/kvm/guest_memfd.c > > @@ -1069,6 +1069,15 @@ static int __kvm_gmem_create(struct kvm *kvm, loff_t size, u64 flags) > > goto err_gmem; > > } > > > > + if (IS_ENABLED(CONFIG_KVM_GMEM_SHARED_MEM) && > > + (flags & GUEST_MEMFD_FLAG_INIT_SHARED)) { > > + err = kvm_gmem_offset_range_set_shared(file_inode(file), 0, size >> PAGE_SHIFT); > > I think if GUEST_MEMFD_FLAG_INIT_SHARED is not set, we should call > kvm_gmem_offset_range_clear_shared(); so that there is always some > shareability defined for all offsets in a file. Otherwise, when reading > shareability, we'd have to check against GUEST_MEMFD_FLAG_INIT_SHARED > to find out what to initialize it to. Ack. Thanks! /fuad > > + if (err) { > > + fput(file); > > + goto err_gmem; > > + } > > + } > > + > > kvm_get_kvm(kvm); > > gmem->kvm = kvm; > > xa_init(&gmem->bindings); > > @@ -1090,6 +1099,9 @@ int kvm_gmem_create(struct kvm *kvm, struct kvm_create_guest_memfd *args) > > u64 flags = args->flags; > > u64 valid_flags = 0; > > > > + if (IS_ENABLED(CONFIG_KVM_GMEM_SHARED_MEM)) > > + valid_flags |= GUEST_MEMFD_FLAG_INIT_SHARED; > > + > > if (flags & ~valid_flags) > > return -EINVAL;