|
|
Log in / Subscribe / Register

KVM: guest_memfd: use write for population

From:  Nikita Kalyazin <kalyazin-AT-amazon.com>
To:  <pbonzini-AT-redhat.com>, <shuah-AT-kernel.org>
Subject:  [v3 PATCH 0/2] KVM: guest_memfd: use write for population
Date:  Mon, 03 Mar 2025 13:08:36 +0000
Message-ID:  <20250303130838.28812-1-kalyazin@amazon.com>
Cc:  <kvm-AT-vger.kernel.org>, <linux-kselftest-AT-vger.kernel.org>, <linux-kernel-AT-vger.kernel.org>, <michael.day-AT-amd.com>, <david-AT-redhat.com>, <quic_eberman-AT-quicinc.com>, <jthoughton-AT-google.com>, <brijesh.singh-AT-amd.com>, <michael.roth-AT-amd.com>, <graf-AT-amazon.de>, <jgowans-AT-amazon.com>, <roypat-AT-amazon.co.uk>, <derekmn-AT-amazon.com>, <nsaenz-AT-amazon.es>, <xmarcalx-AT-amazon.com>, <kalyazin-AT-amazon.com>
Archive-link:  Article

This series is rebased on top of Fuad's v4 for shared mapping of
guest_memfd [1].

Change since v2 [2]:
 - David/Mike D: Only compile support for the write syscall if
   CONFIG_KVM_GMEM_SHARED_MEM introduced in [1] is enabled.

In non-CoCo use cases where the host can access guest memory,
guest_memfd can be allocated and populated via the write syscall.  Even
though the same can also be achieved via userspace mapping and memcpy
from userspace, write provides a more performant option because it 1)
avoids double initialisation as the kernel does not need to zero pages
and 2) does not require setting up page tables.

Nikita

[1] https://lore.kernel.org/kvm/20250218172500.807733-4-tabba...
[2] https://lore.kernel.org/kvm/20241129123929.64790-1-kalyaz...

Nikita Kalyazin (2):
  KVM: guest_memfd: add generic population via write
  KVM: selftests: update guest_memfd write tests

 .../testing/selftests/kvm/guest_memfd_test.c  | 85 +++++++++++++++--
 virt/kvm/guest_memfd.c                        | 94 ++++++++++++++++++-
 2 files changed, 170 insertions(+), 9 deletions(-)


base-commit: 005f6404708d430abab7fab9b422d0daf6e0c2fe
-- 
2.47.1




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds