@@ -533,7 +533,7 @@ pub fn build_microvm(
533
533
534
534
#[ cfg( not( feature = "tee" ) ) ]
535
535
#[ allow( unused_mut) ]
536
- let mut vm = setup_vm ( & guest_memory) ?;
536
+ let mut vm = setup_vm ( & guest_memory, vm_resources . nested_enabled ) ?;
537
537
538
538
#[ cfg( feature = "tee" ) ]
539
539
let ( kvm, vm) = {
@@ -723,6 +723,7 @@ pub fn build_microvm(
723
723
payload_config. entry_addr ,
724
724
& exit_evt,
725
725
vcpu_list. clone ( ) ,
726
+ vm_resources. nested_enabled ,
726
727
)
727
728
. map_err ( StartMicrovmError :: Internal ) ?;
728
729
@@ -1260,6 +1261,7 @@ fn load_cmdline(vmm: &Vmm) -> std::result::Result<(), StartMicrovmError> {
1260
1261
#[ cfg( all( target_os = "linux" , not( feature = "tee" ) ) ) ]
1261
1262
pub ( crate ) fn setup_vm (
1262
1263
guest_memory : & GuestMemoryMmap ,
1264
+ _nested_enabled : bool ,
1263
1265
) -> std:: result:: Result < Vm , StartMicrovmError > {
1264
1266
let kvm = KvmContext :: new ( )
1265
1267
. map_err ( Error :: KvmContext )
@@ -1289,8 +1291,9 @@ pub(crate) fn setup_vm(
1289
1291
#[ cfg( target_os = "macos" ) ]
1290
1292
pub ( crate ) fn setup_vm (
1291
1293
guest_memory : & GuestMemoryMmap ,
1294
+ nested_enabled : bool ,
1292
1295
) -> std:: result:: Result < Vm , StartMicrovmError > {
1293
- let mut vm = Vm :: new ( false )
1296
+ let mut vm = Vm :: new ( nested_enabled )
1294
1297
. map_err ( Error :: Vm )
1295
1298
. map_err ( StartMicrovmError :: Internal ) ?;
1296
1299
vm. memory_init ( guest_memory)
@@ -1473,6 +1476,7 @@ fn create_vcpus_aarch64(
1473
1476
entry_addr : GuestAddress ,
1474
1477
exit_evt : & EventFd ,
1475
1478
vcpu_list : Arc < VcpuList > ,
1479
+ nested_enabled : bool ,
1476
1480
) -> super :: Result < Vec < Vcpu > > {
1477
1481
let mut vcpus = Vec :: with_capacity ( vcpu_config. vcpu_count as usize ) ;
1478
1482
let mut boot_senders: HashMap < u64 , Sender < u64 > > = HashMap :: new ( ) ;
@@ -1491,7 +1495,7 @@ fn create_vcpus_aarch64(
1491
1495
boot_receiver,
1492
1496
exit_evt. try_clone ( ) . map_err ( Error :: EventFd ) ?,
1493
1497
vcpu_list. clone ( ) ,
1494
- false ,
1498
+ nested_enabled ,
1495
1499
)
1496
1500
. map_err ( Error :: Vcpu ) ?;
1497
1501
@@ -1916,7 +1920,7 @@ pub mod tests {
1916
1920
1917
1921
let ( guest_memory, _arch_memory_info, _shm_manager, _payload_config) =
1918
1922
default_guest_memory ( 128 ) . unwrap ( ) ;
1919
- let vm = setup_vm ( & guest_memory) . unwrap ( ) ;
1923
+ let vm = setup_vm ( & guest_memory, false ) . unwrap ( ) ;
1920
1924
let _kvmioapic = KvmIoapic :: new ( & vm. fd ( ) ) . unwrap ( ) ;
1921
1925
1922
1926
// Dummy entry_addr, vcpus will not boot.
@@ -1939,7 +1943,7 @@ pub mod tests {
1939
1943
fn test_create_vcpus_aarch64 ( ) {
1940
1944
let ( guest_memory, _arch_memory_info) =
1941
1945
create_guest_memory ( 128 , None , Payload :: Empty ) . unwrap ( ) ;
1942
- let vm = setup_vm ( & guest_memory) . unwrap ( ) ;
1946
+ let vm = setup_vm ( & guest_memory, false ) . unwrap ( ) ;
1943
1947
let vcpu_count = 2 ;
1944
1948
1945
1949
let vcpu_config = VcpuConfig {
0 commit comments