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 D536BD3B9AC for ; Tue, 26 Nov 2024 16:05:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B4FB6B0082; Tue, 26 Nov 2024 11:05:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 63E0C6B0085; Tue, 26 Nov 2024 11:05:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4B76B6B0088; Tue, 26 Nov 2024 11:05:03 -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 296CF6B0082 for ; Tue, 26 Nov 2024 11:05:03 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CEE201C7F6A for ; Tue, 26 Nov 2024 16:05:02 +0000 (UTC) X-FDA: 82828719918.21.18697D5 Received: from smtp-fw-52004.amazon.com (smtp-fw-52004.amazon.com [52.119.213.154]) by imf30.hostedemail.com (Postfix) with ESMTP id C488480027 for ; Tue, 26 Nov 2024 16:04:51 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b="HS/uTytg"; dmarc=pass (policy=quarantine) header.from=amazon.com; spf=pass (imf30.hostedemail.com: domain of "prvs=0532fbfd9=kalyazin@amazon.co.uk" designates 52.119.213.154 as permitted sender) smtp.mailfrom="prvs=0532fbfd9=kalyazin@amazon.co.uk" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732637098; a=rsa-sha256; cv=none; b=PCMRMGLACG+fq0fzOBmlkvk5l5FMQL7vBKl2xbFNyijFG2nxPuT29jbhuzGjqmY6eJhZ1r FjTTAvfSbkgKKAiYOKgj1wCdYmPLv16RlUKRJ6JjAap0dJ9xyYneIEAvutJKOmmMFQUji8 Bj6h3ZX+VfFQn2gs8lau7sUPnrg8U50= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b="HS/uTytg"; dmarc=pass (policy=quarantine) header.from=amazon.com; spf=pass (imf30.hostedemail.com: domain of "prvs=0532fbfd9=kalyazin@amazon.co.uk" designates 52.119.213.154 as permitted sender) smtp.mailfrom="prvs=0532fbfd9=kalyazin@amazon.co.uk" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732637098; h=from:from:sender:reply-to: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=HRWp5MKfE6uueBU5wQW7RW/Kjbh6R68ifML8DEFIQdE=; b=gt9xlx+giJ1a7Lk8J9fWt2M/lqWGqW8IsGtboTjUIaId7iDtHaXKl7TwwEt1q3q3SDSc5i 6XA4ueUdrWtJ7dsCDlQa2r8VAohXwGOtBlYL04hcnlk5qwTksrMf32+UABxSBmljKzYPMQ qtGv//wh5dtDFyz09JCw5p6IsS9PtRk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1732637101; x=1764173101; h=message-id:date:mime-version:reply-to:subject:from:to:cc: references:in-reply-to:content-transfer-encoding; bh=HRWp5MKfE6uueBU5wQW7RW/Kjbh6R68ifML8DEFIQdE=; b=HS/uTytgsS8Pw2EjDxMN2CrtbZlkMZXid6pNe0bn2P2aHRaTbxkzb6lG 5aLKOrvzGkKo0gjE1RBIFoGaFwUFt7IW3VtiucIuOgx+I+TAjwNaMwttX wXGmy4Ptc/M8ne9PwdXrNTyqtL6yQv2nuqF1FLlBeDxJzqmGifji488CM w=; X-IronPort-AV: E=Sophos;i="6.12,186,1728950400"; d="scan'208";a="250358078" Received: from iad6-co-svc-p1-lb1-vlan2.amazon.com (HELO smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev) ([10.124.125.2]) by smtp-border-fw-52004.iad7.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Nov 2024 16:04:57 +0000 Received: from EX19MTAEUA002.ant.amazon.com [10.0.43.254:39943] by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.26.13:2525] with esmtp (Farcaster) id 704d7f83-a641-4c17-9c05-2a8b2b7eb302; Tue, 26 Nov 2024 16:04:54 +0000 (UTC) X-Farcaster-Flow-ID: 704d7f83-a641-4c17-9c05-2a8b2b7eb302 Received: from EX19D022EUC002.ant.amazon.com (10.252.51.137) by EX19MTAEUA002.ant.amazon.com (10.252.50.126) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.35; Tue, 26 Nov 2024 16:04:54 +0000 Received: from [192.168.5.6] (10.106.82.29) by EX19D022EUC002.ant.amazon.com (10.252.51.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1258.34; Tue, 26 Nov 2024 16:04:53 +0000 Message-ID: Date: Tue, 26 Nov 2024 16:04:52 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Reply-To: Subject: Re: [RFC PATCH 0/4] KVM: ioctl for populating guest_memfd From: Nikita Kalyazin To: David Hildenbrand , , , , , CC: , , , , , , , , , "Sean Christopherson" , References: <20241024095429.54052-1-kalyazin@amazon.com> <08aeaf6e-dc89-413a-86a6-b9772c9b2faf@amazon.com> <01b0a528-bec0-41d7-80f6-8afe213bd56b@redhat.com> <55b6b3ec-eaa8-494b-9bc7-741fe0c3bc63@amazon.com> <9286da7a-9923-4a3b-a769-590e8824fa10@redhat.com> <03a12598-74aa-4202-a79a-668b45dbcc47@amazon.com> <74cbda4a-7820-45a9-a1b2-139da9dae593@redhat.com> <8ac0e3e6-5af3-4841-b3ba-ab0458ab355b@amazon.com> Content-Language: en-US Autocrypt: addr=kalyazin@amazon.com; keydata= xjMEY+ZIvRYJKwYBBAHaRw8BAQdA9FwYskD/5BFmiiTgktstviS9svHeszG2JfIkUqjxf+/N JU5pa2l0YSBLYWx5YXppbiA8a2FseWF6aW5AYW1hem9uLmNvbT7CjwQTFggANxYhBGhhGDEy BjLQwD9FsK+SyiCpmmTzBQJj5ki9BQkDwmcAAhsDBAsJCAcFFQgJCgsFFgIDAQAACgkQr5LK IKmaZPOR1wD/UTcn4GbLC39QIwJuWXW0DeLoikxFBYkbhYyZ5CbtrtAA/2/rnR/zKZmyXqJ6 ULlSE8eWA3ywAIOH8jIETF2fCaUCzjgEY+ZIvRIKKwYBBAGXVQEFAQEHQCqd7/nb2tb36vZt ubg1iBLCSDctMlKHsQTp7wCnEc4RAwEIB8J+BBgWCAAmFiEEaGEYMTIGMtDAP0Wwr5LKIKma ZPMFAmPmSL0FCQPCZwACGwwACgkQr5LKIKmaZPNCxAEAxwnrmyqSC63nf6hoCFCfJYQapghC abLV0+PWemntlwEA/RYx8qCWD6zOEn4eYhQAucEwtg6h1PBbeGK94khVMooF In-Reply-To: <8ac0e3e6-5af3-4841-b3ba-ab0458ab355b@amazon.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.106.82.29] X-ClientProxiedBy: EX19D003EUB002.ant.amazon.com (10.252.51.90) To EX19D022EUC002.ant.amazon.com (10.252.51.137) X-Rspam-User: X-Rspamd-Queue-Id: C488480027 X-Rspamd-Server: rspam01 X-Stat-Signature: 511s31trj8gcaog484t36hs9aepw644g X-HE-Tag: 1732637091-533048 X-HE-Meta: U2FsdGVkX189vpeyg0O/3z2Wm4RJvg9LxOog5HSM8lnUwuKlt7kvz8ndOoNMbjGFBQ9lX51P8QyHlIF6Q+s7Tl+/vxiuAQGFykTLON4h0v8E/P92TUfDRWwG6YoT6HEy/b60u7jEjnbgphEi/sA6RsaXqJ9hnjBWbVcq65d5/yWnDEdwJtDO/OUDf5usufN7e18OfVC5bYhQzuTWlgX974rE3bvrMPvYibVzVhLKLXOOUUJOT/CFVL7NbhsyVY8yjTjb/xb7jNqOipZnW5JJwYl+QLmZWMQb8WbZ+oYBX4LH4IBVr2rubxIYEUFxw6rqxEN8pDZFbA4dIg6yjHGkfeEGVmtlYO+X/amAJmrFj2d7QlV0ABYBq9NUY+1/N2DBBWn5BDeZ+DBxE2ayTmbo/JhucLxvhTfZhRxOEuGlLNxMpS7ktkTK3ic5/mbiAPide1UuBD84QDvAvpW0IAW62SMP7SJ8UweT9W/lWhcZWKH7yB0bdMH0k8ZWvKf/Vawt5FTaN+PqSB9SNIFFyGf8gy9ln8pxs5pI5KeK74Px4xlRlYyo9ZxVCJ0QGiKuoieUN5QQjrTfY56gyDSDIDnN7oHiHCladV8UK6zpp8rbxyMNQijHqplC51v1qz8ty1776qCFuPXG7RiUhiwi652sUFBKx6cLV+ZdmIb/2uvoZcdce5o/lN5ICxVdTPyuGmoZ4W3XGeew8U8TZbVFVXVuXCSMInbBP8PGzB6dTekyAs14CKYn1mxr7iemHB4DQKxSLrL4+fU0RKrD95iX1GOoxip6goMT6x9Fa+u8NtgK/u1VmypbGZuiedFyoPzhKoNz4LoBw81nUDc/wDlVF4BWAuXi18R3sbNJBbl2MB/YKl8dLFw7yrEHQjmgECuXB0gwCXmiXohn+qgIJdUJ9wG/Rf4UZi6FZfFvLU++FH7mSFqs27ME0G3LKqHaduUUK2LqFV/FX7GXojUTzXTdBpF qwWfPiY7 UMxHzN9Fl4rcl1bRkKr1b6TLK3Pv628xa03xG8WpAehLaItVN76X9s6T+qBauIbKQ6HYV42FIvg9iKe34zjYRmhlAVCX3QU45kkwtf8fsHz03InYWoQYefLErPLweKcK5cIvd+NmrPMMudDMuUXigd2PeAXcQJxKNGUdzr+ln4V++lujciwQcRwmvY2I/CnBku8EZQGG8KyMb/d0a1oHDKnMaRbVj+ULXYMnF1+/ZHd0i7KH/HYZq+smDb/bV6BoCNGuwiLUBcOQjvsD025lvVFy/h9LIzA4WdBN6Q0jSSsUff/t+nUBxcf4vNRsSXHTsFecQQmWddkQebkbX8Hz5lTQGxcRSWRgbFne0gLJBlF5fO9K9zfKmToj+6/k4LrfDVXucf6wXBIT/FYGY7K8+wy26hcEiM250vQKrhQeszXTMqXSRE7Vj/j6W4bW0FhoIpQp21zFwLvKLBrJ55wz5TC4sv/Ven4aFmxNXPmmV81mP7ycqGaKzWR65Or/BAtVz5+ELUyoxdNJC5Vh3Jk3Dpi8LIQScTZl1FuJE/oa0L9BlN3OHsT2ep1S+C1d4Fn9ddpRVrH/G31muFkRBMfjuzwPB2FLO9ODK7eBbGeQMzfhGOZ4bSBjr6dAqwrj9o/Qc9dPfaqvTy/KbFakcapKzOwYMSFkzLxyhNpd7LwmwmnrNtbAMBdL1Q7oXEooaRsn9wFT5ZRoSopIN8HQYZD064UwzKIBzjugiX3npVWdGM50TZOFTEiM8OWOBmdnl6B7V3IBf9xf85qO7xKSfWcvzKZi34lCHHa10XBO3vU0o0QKMja63AaJx7LCiqRVOrNtSzpibd6gnDUFkrVeskLfEGQW2XhHPsIx+WBJ+yYMdFuUkHld5/HqDyabXuDC5PI50yHhTVhEAfvGUcAc= 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: On 21/11/2024 16:46, Nikita Kalyazin wrote: > > > On 20/11/2024 18:29, David Hildenbrand wrote: > > Any clue how your new ioctl will interact with the WIP to have shared > > memory as part of guest_memfd? For example, could it be reasonable to > > "populate" the shared memory first (via VMA) and then convert that > > "allocated+filled" memory to private? > > Patrick and I synced internally on this.  What may actually work for > guest_memfd population is the following. > > Non-CoCo use case: >  - fallocate syscall to fill the page cache, no page content > initialisation (like it is now) >  - pwrite syscall to initialise the content + mark up-to-date (mark > prepared), no specific preparation logic is required > > The pwrite will have "once" semantics until a subsequent > fallocate(FALLOC_FL_PUNCH_HOLE), ie the next pwrite call will "see" the > page is already prepared and return EIO/ENOSPC or something. I prototyped that to see if it was possible (and it was). Actually the write syscall can also do the allocation part, so no prior fallocate would be required. The only thing is there is a cap on how much IO can be done in a single call (MAX_RW_COUNT) [1], but it doesn't look like a significant problem. Does it sound like an acceptable solution? [1]: https://elixir.bootlin.com/linux/v6.12.1/source/fs/read_write.c#L507 > > SEV-SNP use case (no changes): >  - fallocate as above >  - KVM_SEV_SNP_LAUNCH_UPDATE to initialise/prepare > > We don't think fallocate/pwrite have dependencies on current->mm > assumptions that Paolo mentioned in [1], so they should be safe to be > called on guest_memfd from a non-VMM process. > > [1]: https://lore.kernel.org/kvm/20241024095429.54052-1- > kalyazin@amazon.com/T/#m57498f8e2fde577ad1da948ec74dd2225cd2056c > > > Makes sense. Best we can do is: > > > > anon: work only on page tables > > shmem/guest_memfd: work only on pageacache > > > > So at least "only one treelike structure to update". > > This seems to hold with the above reasoning. > > > -- >> Cheers, >> >> David / dhildenb >