diff --git a/crates/daemon/src/reconcile/guest/mod.rs b/crates/daemon/src/reconcile/guest/mod.rs index 6e0e015..01f503b 100644 --- a/crates/daemon/src/reconcile/guest/mod.rs +++ b/crates/daemon/src/reconcile/guest/mod.rs @@ -231,7 +231,7 @@ impl GuestReconciler { let start_status = guest.state.as_ref().map(|x| x.status()).unwrap_or_default(); let result = match start_status { GuestStatus::Starting => self.start(uuid, &mut guest).await, - GuestStatus::Exited => self.exited(&mut guest).await, + // GuestStatus::Exited => self.exited(&mut guest).await, GuestStatus::Destroying => self.destroy(uuid, &mut guest).await, _ => Ok(GuestReconcilerResult::Unchanged), }; @@ -289,7 +289,7 @@ impl GuestReconciler { starter.start(uuid, guest).await } - async fn exited(&self, guest: &mut Guest) -> Result { + async fn _exited(&self, guest: &mut Guest) -> Result { if let Some(ref mut state) = guest.state { state.set_status(GuestStatus::Destroying); Ok(GuestReconcilerResult::Changed { rerun: true }) diff --git a/crates/runtime/src/channel.rs b/crates/runtime/src/channel.rs index 7aeaf36..982375b 100644 --- a/crates/runtime/src/channel.rs +++ b/crates/runtime/src/channel.rs @@ -375,7 +375,6 @@ impl KrataChannelBackendProcessor { }; ring_ref = self.use_reserved_ref.unwrap_or(ring_ref); - break (ring_ref, port); } } diff --git a/crates/runtime/src/launch.rs b/crates/runtime/src/launch.rs index 5e9cd13..1d28ba8 100644 --- a/crates/runtime/src/launch.rs +++ b/crates/runtime/src/launch.rs @@ -138,12 +138,7 @@ impl GuestLauncher { } else { None }; - let cmdline_options = [ - "earlycon=xen,keep", - "earlyprintk=xen,keep", - "debug", - "elevator=noop", - ]; + let cmdline_options = ["earlyprintk=xen,keep", "console=hvc0", "debug"]; let cmdline = cmdline_options.join(" "); let guest_mac_string = container_mac.to_string().replace('-', ":"); diff --git a/crates/xen/xenclient/src/lib.rs b/crates/xen/xenclient/src/lib.rs index 0779452..c1ddd66 100644 --- a/crates/xen/xenclient/src/lib.rs +++ b/crates/xen/xenclient/src/lib.rs @@ -493,7 +493,7 @@ impl XenClient { ("virtual-device", id.to_string()), ("device-type", "disk".to_string()), ("trusted", "1".to_string()), - ("protocol", "x86_32-abi".to_string()), + ("protocol", "x86_64-abi".to_string()), ]; self.device_add( diff --git a/crates/xen/xenclient/src/x86pvh.rs b/crates/xen/xenclient/src/x86pvh.rs index d39d794..fbc2284 100644 --- a/crates/xen/xenclient/src/x86pvh.rs +++ b/crates/xen/xenclient/src/x86pvh.rs @@ -670,7 +670,15 @@ impl BootSetupPlatform for X86PvhPlatform { domain .consoles .push((evtchn, special_pfn(SPECIALPAGE_CONSOLE))); + domain + .phys + .clear_pages(special_pfn(SPECIALPAGE_CONSOLE), 1) + .await?; domain.store_mfn = special_pfn(SPECIALPAGE_XENSTORE); + domain + .phys + .clear_pages(special_pfn(SPECIALPAGE_XENSTORE), 1) + .await?; Ok(()) } diff --git a/os/internal/stage1.sh b/os/internal/stage1.sh index 83e238a..79e88c5 100755 --- a/os/internal/stage1.sh +++ b/os/internal/stage1.sh @@ -16,10 +16,7 @@ done apk add xen xen-hypervisor -for SERVICE in xenconsoled xenstored -do - rc-update add "${SERVICE}" default -done +rc-update add xenstored default for MODULE in xen-netblock xen-blkback tun tap do