@@ -13,16 +13,16 @@ use std::path::Path;
1313use std:: sync:: { Arc , Condvar , Mutex } ;
1414
1515use kvm_bindings:: {
16- KVM_MEM_GUEST_MEMFD , KVM_MEM_LOG_DIRTY_PAGES , KVM_MEMORY_ATTRIBUTE_PRIVATE , KVMIO ,
17- kvm_create_guest_memfd , kvm_memory_attributes , kvm_userspace_memory_region,
16+ KVM_MEM_GUEST_MEMFD , KVM_MEM_LOG_DIRTY_PAGES , KVMIO , kvm_create_guest_memfd ,
17+ kvm_userspace_memory_region,
1818} ;
1919use kvm_ioctls:: { Cap , VmFd } ;
2020use vmm_sys_util:: eventfd:: EventFd ;
2121use vmm_sys_util:: ioctl:: ioctl_with_ref;
2222use vmm_sys_util:: ioctl_iow_nr;
2323
24+ use crate :: arch:: host_page_size;
2425pub use crate :: arch:: { ArchVm as Vm , ArchVmError , VmState } ;
25- use crate :: arch:: { VM_TYPE_FOR_SECRET_FREEDOM , host_page_size} ;
2626use crate :: logger:: info;
2727use crate :: persist:: CreateSnapshotError ;
2828use crate :: utils:: u64_to_usize;
@@ -34,7 +34,8 @@ use crate::vstate::memory::{
3434use crate :: vstate:: vcpu:: VcpuError ;
3535use crate :: { DirtyBitmap , Vcpu , mem_size_mib} ;
3636
37- pub ( crate ) const KVM_GMEM_NO_DIRECT_MAP : u64 = 1 ;
37+ pub ( crate ) const GUEST_MEMFD_FLAG_SUPPORT_SHARED : u64 = 1 << 0 ;
38+ pub ( crate ) const GUEST_MEMFD_FLAG_NO_DIRECT_MAP : u64 = 1 << 1 ;
3839
3940/// KVM userfault information
4041#[ derive( Copy , Clone , Default , Eq , PartialEq , Debug ) ]
@@ -137,14 +138,7 @@ impl Vm {
137138 const MAX_ATTEMPTS : u32 = 5 ;
138139 let mut attempt = 1 ;
139140 let fd = loop {
140- let create_result = if secret_free && VM_TYPE_FOR_SECRET_FREEDOM . is_some ( ) {
141- kvm. fd
142- . create_vm_with_type ( VM_TYPE_FOR_SECRET_FREEDOM . unwrap ( ) )
143- } else {
144- kvm. fd . create_vm ( )
145- } ;
146-
147- match create_result {
141+ match kvm. fd . create_vm ( ) {
148142 Ok ( fd) => break fd,
149143 Err ( e) if e. errno ( ) == libc:: EINTR && attempt < MAX_ATTEMPTS => {
150144 info ! ( "Attempt #{attempt} of KVM_CREATE_VM returned EINTR" ) ;
@@ -371,28 +365,6 @@ impl Vm {
371365 & self . common . guest_memory
372366 }
373367
374- /// Sets the memory attributes on all guest_memfd-backed regions to private
375- pub fn set_memory_private ( & self ) -> Result < ( ) , VmError > {
376- if !self . secret_free ( ) {
377- return Ok ( ( ) ) ;
378- }
379-
380- for region in self . guest_memory ( ) . iter ( ) {
381- let attr = kvm_memory_attributes {
382- address : region. start_addr ( ) . 0 ,
383- size : region. len ( ) ,
384- attributes : KVM_MEMORY_ATTRIBUTE_PRIVATE as u64 ,
385- ..Default :: default ( )
386- } ;
387-
388- self . fd ( )
389- . set_memory_attributes ( attr)
390- . map_err ( VmError :: SetMemoryAttributes ) ?
391- }
392-
393- Ok ( ( ) )
394- }
395-
396368 /// Resets the KVM dirty bitmap for each of the guest's memory regions.
397369 pub fn reset_dirty_bitmap ( & self ) {
398370 self . guest_memory ( )
0 commit comments