diff mbox series

machine: allow early use of machine_require_guest_memfd

Message ID 20240531112636.80097-1-pbonzini@redhat.com
State New
Headers show
Series machine: allow early use of machine_require_guest_memfd | expand

Commit Message

Paolo Bonzini May 31, 2024, 11:26 a.m. UTC
Ask the ConfidentialGuestSupport object whether to use guest_memfd
for KVM-backend private memory.  This bool can be set in instance_init
(or user_complete) so that it is available when the machine is created.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/exec/confidential-guest-support.h | 5 +++++
 include/hw/boards.h                       | 1 -
 hw/core/machine.c                         | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

Comments

Zhao Liu June 2, 2024, 5:47 a.m. UTC | #1
On Fri, May 31, 2024 at 01:26:36PM +0200, Paolo Bonzini wrote:
> Date: Fri, 31 May 2024 13:26:36 +0200
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH] machine: allow early use of machine_require_guest_memfd
> X-Mailer: git-send-email 2.45.1
> 
> Ask the ConfidentialGuestSupport object whether to use guest_memfd
> for KVM-backend private memory.  This bool can be set in instance_init
> (or user_complete) so that it is available when the machine is created.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  include/exec/confidential-guest-support.h | 5 +++++
>  include/hw/boards.h                       | 1 -
>  hw/core/machine.c                         | 2 +-
>  3 files changed, 6 insertions(+), 2 deletions(-)

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
diff mbox series

Patch

diff --git a/include/exec/confidential-guest-support.h b/include/exec/confidential-guest-support.h
index e5b188cffbf..02dc4e518f0 100644
--- a/include/exec/confidential-guest-support.h
+++ b/include/exec/confidential-guest-support.h
@@ -31,6 +31,11 @@  OBJECT_DECLARE_TYPE(ConfidentialGuestSupport,
 struct ConfidentialGuestSupport {
     Object parent;
 
+    /*
+     * True if the machine should use guest_memfd for RAM.
+     */
+    bool require_guest_memfd;
+
     /*
      * ready: flag set by CGS initialization code once it's ready to
      *        start executing instructions in a potentially-secure
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 2fa800f11ae..73ad319d7da 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -375,7 +375,6 @@  struct MachineState {
     char *dt_compatible;
     bool dump_guest_core;
     bool mem_merge;
-    bool require_guest_memfd;
     bool usb;
     bool usb_disabled;
     char *firmware;
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 17292b13e62..77a356f232f 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -1216,7 +1216,7 @@  bool machine_mem_merge(MachineState *machine)
 
 bool machine_require_guest_memfd(MachineState *machine)
 {
-    return machine->require_guest_memfd;
+    return machine->cgs && machine->cgs->require_guest_memfd;
 }
 
 static char *cpu_slot_to_string(const CPUArchId *cpu)